車載ネットワーク

【Ethernet】車載ネットワーク その64【lwIP+npcap⑩】

npcapのパケットフィルタ有効化APIについて説明。 pcap_compileとpcap_setfilterはセットで使うAPI。 文字列で式を指定し、計測前にバイナリ変換する方式は割と一般的。センサ電圧を物理値(圧力とか流量とか)にリアルタイムで変換する場合など。
車載ネットワーク

【Ethernet】車載ネットワーク その63【lwIP+npcap⑨】

npcapのフィルタ文字列コンパイルAPIについて説明。 フィルタ文字列仕様はtcpdumpのフィルタ書式と一緒。 tcpdumpのフィルタ書式はかなり数が多いため、良く使用しそうなものに限定。MACアドレスフィルタ。 IPアドレスフィルタ。 IPアドレとポートをフィルタ。
車載ネットワーク

【Ethernet】車載ネットワーク その62【lwIP+npcap⑧】

npcapのデバイスのリンクタイプ取得APIについて。 pcap_datalinkはリンクタイプ取得API。 リンクタイプはbpf.hで定義されている。 引数はpcap_open_liveで取得したディスクリプタを渡すのみ。 Ethernetの場合は"DLT_EN10MB"が戻り値となる。
車載ネットワーク

【Ethernet】車載ネットワーク その61【lwIP+npcap⑦】

pcap_next_ex以外にキャプチャ用のAPIが存在。pcap_loop関数。 pcap_loopを使用したサンプルはudpdump。udpのみをフィルタしてキャプチャするサンプルプログラム。 今回は使用しないが、今後フィルタすることもあるえるため、こちらの実装方法を採用。
車載ネットワーク

【Ethernet】車載ネットワーク その60【lwIP+npcap⑥】

ネットワークシミュレーションに向けてnpcap初期化処理の話。 npcap初期化コードに必要なAPI説明。 pcap_findalldevs。 pcap_open_live。 ※ 両方とも以前説明済み。 npcap初期化コードを作成。サンプルコードのpcap_next_exをベースに抜き出してきた。
車載ネットワーク

【Ethernet】車載ネットワーク その59【lwIP+npcap⑤】

ネットワークシミュレーションに向けてlwIPの送信インターフェース実装の話。 連結リスト復習。 送信データを連結リストからリニアバッファに変換するコード作成。 エラーコードも調べて適切なエラーハンドリング実施。 エラーコード各種はerr.hで定義されてる。
車載ネットワーク

【Ethernet】車載ネットワーク その58【lwIP+npcap④】

ネットワークシミュレーションに向けてlwIPの送信、受信のインターフェースの特定をする。 lwIPの受信インターフェースは以前やった。 送信インターフェースはやってなかった。 netifのlinkoutputってメンバ変数に登録するコールバック関数が送信インターフェース。ただし、連結リストのバッファを渡す必要がある。
車載ネットワーク

【Ethernet】車載ネットワーク その57【lwIP+npcap③】

lwIPのソースコード修正。以前のlwIP疑似受信の時の情報を流用。 VisualStudio 2017でlwIPのソリューションとプロジェクトを作成。フィルタをフォルダ構成に合わせておくと見やすいかも。
車載ネットワーク

【Ethernet】車載ネットワーク その56【lwIP+npcap②】

ネットワークシミュレーションのビルド環境は実績のあるVisualStudio 2017 express。 lwIPとnpcap-SDKも入手しておく。 デバッグ/検証をし易くするようWiresharkもインストールしておく。
車載ネットワーク

【Ethernet】車載ネットワーク その55【lwIP+npcap①】

太郎くん思い付きのシミュレーション構成。lwIPの下にnpcapを置くことでプロトコルスタックのシミュレーション。 目的はlwIPにアドオン済みのHTTPサーバの動作。 中間の動作確認用にpingことICMPも搭載しておく。 システム構成は大雑把なところから書いてOK。