DHCPに触らずにPXE

できた。4011/udpは待ち受けなくてもいいらしい。67/udpに飛んできたDHCPDISCOVERに対して、Vendor Optionsのtag 6(PXE_DISCOVERY_CONTROL)に8(第3ビットが1)を指定して、filenameとsiaddrにTFTPサーバーのアドレスを指定したDHCPOFFERを返すと、動いた。

とりあえずIntelNIC(PRO/1000)とVMwareで動いた。他のNICはまだ試してない。…と言っても、どのNICに積んであるPXEの実装も、実は全部Intelのものだったりして!
3comNICがない。あと試せるのはnForceとMarvell Yukonか。nForcePXE対応してたっけ?

※追記
nForceマザーボードに載っているMarvell Yukonに実装されたNVIDIA Boot Agentでブートに成功。…チップはMarvellでPXE担当はNVIDIAオンボードNICは一筋縄ではないらしい。
Option 67でブートファイル名を指定するときのオプション長は、\0の分を入れないといけない。