4. 自作プロトコルスタックの移植(後編)
自作プロトコルスタックの残りのモジュール(IP・ARP・ICMP・UDP・TCP)を順次xv6へ移植していきます。
前編と同じく、micropsのコードをcpでコピーして必要な箇所だけ修正するスタイルで進めます。各モジュールは相互に依存していますが、net.cの初期化呼び出しをコメントアウトで制御することで、1モジュールずつ動作を確認しながら移植できます。
Note
本体への修正は、
ip.hのIP_TOTAL_SIZE_MAXをMTU(1500)に縮める点だけです(4.1で実施)。これによりip.c・icmp.c・udp.c・tcp.cはいずれもそのまま移植できます。ip.cだけは、まだ移植していないARP・ICMPへの依存を一時的にコメントアウトし、後続の節で解除していきます。プラットフォーム依存のコード(タイマー・スケジューラなど)は必要になったタイミングでplatform/xv6-riscvに追加します。