MACヘッダーの直後のファイルの先頭にFPGAによって追加された独自の記述子を含む、キャプチャされたpcapファイルを読み取る必要があります
したがって、パケット形式は次のとおりです。
?
記述子に余分な 2 バイトを追加し、書き戻します。
では、独自の記述子は 2 バイト長くなり、ペイロードを 2 バイト下に移動しますか?
Linuxでlibpcapライブラリを使用してCでこれを実装しようとしています。バッファを書き込むために pcap_dump_open() と pcap_dump() を呼び出す必要があるというのは正しいですか?
それがおそらく最も簡単な方法です。
また、pcap_dump でバッファを書き込む前に、それに応じて pcap_pkthdr から caplen と 'len' をインクリメントする (2 を追加する) 必要があるのは本当ですか?
パケットに 2 バイトを追加する場合は、パケットを書き出す前に、構造体のcaplen
とlen
フィールドの両方を 2 ずつインクリメントする必要があります。pcap_pkthdr
問題の 2 バイトを追加するポイントまで、MAC ヘッダーとすべてのデータを独自の記述子に含めるのに十分な大きさであることが確実にわかっていない限り、caplen
それが次のことも確認する必要があります。そうでない場合は、問題のパケットを変更せlen
ずcaplen
、その特定のパケットの のみを変更し、 を変更しないでください。