続々・uIPでUDP

前回(http://d.hatena.ne.jp/yasunoxx/20090902/1251898033)
の続き


ここまでのあらすじ:
オプティマイズ社製品(http://www.itplaza.co.jp/opti/spi_ether/spi_ether.htm)で
 ARMとENC28J60で稼働実績がある(と思われる)uIP-0.9を
 CQ-STARM基板で動かすべくゴニョゴニョしているぞ
・でもbroadcastでしか動かないぞ
ARPはどないなってんねん


ここまでにやったこと:
DHCPは動くようになった
 renewalは付けない事にしたw
・uip_process()内部でunicast前提になっている所を
 フラグでバイパスするのをやめた
・その代わりARP(uip_arp.c)にいくつか改造を施した
 broadcastについてはAd-hocな手で逃げた
 (ヒント:ARPテーブルの初期値)


気を付けておく事:
ARP requestはuip_arp_out()で出している
ARPテーブルに無い送信先の場合
 ARP requestだけ送信してくれるので
 本来送信したいパケットが出ない
 (ウソだと思ったらuip_arp_out()の
 『if( i == UIP_ARPTAB_SIZE )』以降を読んでみよう
・上記はbroadcast(前述の改造を含む)なら問題ないのだけど
 unicastの時は応答待ちしてリトライするような
 工夫が必要になるね
 (TCPならハンドシェークするから問題ないかも)


今思っている事:
・uIP-1.0はどうなっているんだろう?