lwIP

車載ネットワーク

【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。
車載ネットワーク

【Ethernet】車載ネットワーク その43【lwIP疑似受信⑥】

IPフラグメントの受信フレーム順違いに対応するための設計手法。 IPフラグメントの順番入れ替えの判定のソースコードと該当関数説明。 Ethnertフレームを連結リストで管理。 連結は常にソートされた状態。 開始位置と完了位置を持ってパケットの完全性を評価している。
車載ネットワーク

【Ethernet】車載ネットワーク その42【lwIP疑似受信⑤】

IPフラグメントの受信フレーム順違いを再現する疑似受信結果。 IPフラグメントの受信フレーム順番入れ替えをしても受信した。 ログも確認したが、最終フレームで打ち切ってることはしていない。
車載ネットワーク

【Ethernet】車載ネットワーク その41【lwIP疑似受信④】

IPフラグメントの受信フレーム順を変える疑似受信コード作成。 渡す受信フレームの順番を入れ替えるだけ。 組み込み系として、この仕様は重くないか? 重いが、割とよくある話でもあり、lwIPも対応しているであろうと楽観視。