ip_fastforward
FreeBSD5.3からIP Fastforward(IPv4)という機能があるらしく,これを有効にすると早く処理できるらしい.
http://people.freebsd.org/~andre/FreeBSD-5.3-Networking.pdf
# sysctl net.inet.ip.fastforwarding=1
ソースはsys/netinet/ip_fastforward.cで,コメントが非常に丁寧なので中身見ればOK.あとはしゅううさんの記事見ればOK.http://d.hatena.ne.jp/syuu1228/20081020
やっていることは,パケットの正常性確認,自宛処理,NAT/FW,ネクストホップ探索,TTL減算・チェックサム更新とか.
この内,NAT/FWはpfil_run_hooks()に,ネクストホップ探索はip_findroute()に丸投げ.
あと,自宛確認をin_localip()でやってたりもする.