自局パケットもFWパケットもip_finish_output()とip_finish_output2()の間で
mtuとの比較でフラグメント必要と判断されると、ip_fragment()関数が挟まれる
自局送信のフラグメント
- 自局送信は既にsocketでデータだけskbに分けてコピーされており
shared_infoのflag_listにlistされる - ip_fragment()で、すでにわかれているskbの各データに
ipヘッダだけ作成して1つ(1パケット)ずつip_finish_output2()で送信する
FWパケットの送信
- fwパケットは、skbがわかれていないため、
1パケットずつskbをallocしてそこにデータをコピーし、
ipヘッダを作成して送信関数(ip_finish_output2()で)送信されていく - 最後に、もともとのskbはfreeされる