Ethernet

車載ネットワーク

【Ethernet】車載ネットワーク その37【lwIP⑬】

lwIPのEthnertFrameの疑似受信について説明。ethernet_input関数を呼び出すだけだが引数が曲者。pbufという連結リストのバッファにパケットをコピーする必要がある。
車載ネットワーク

【Ethernet】車載ネットワーク その36【lwIP⑫】

lwIPのUDP受信の説明。受信用APIは存在せず、受信コールバック設定用APIが存在する。受信コールバックでデータを取得可能。送信元IPアドレス、ポート番号もコールバック時に取得できる。
車載ネットワーク

【Ethernet】車載ネットワーク その35【lwIP⑪】

lwIPのIPアドレス、ポートへのBindについて。Bindという用語について調べた。lwIPのIPアドレス、ポートへのBindについて説明。IP_ANY_TYPEを指定すると、全インターフェースに紐づく。ポート0を指定すると自動割り付け。送信用Socketの場合に利用されることが多い。
車載ネットワーク

【Ethernet】車載ネットワーク その34【lwIP⑩】

lwIPのUDP Socket生成についての説明。内部で固定長メモリプールでメモリ領域の確保をしている。固定長メモリプールはITRON等のRTOSにも実装されている高速な動的メモリ取得解放のロジック。公開されているITRON4.0仕様を参照してみるのも良い。
車載ネットワーク

【Ethernet】車載ネットワーク その33【lwIP⑨】

lwIPのリンクアップについて説明。アップ(UP)が物理層。リンクアップ(link-up)がデータリンク層。余談的にリンクローカルアドレスの説明。
車載ネットワーク

【Ethernet】車載ネットワーク その32【lwIP⑧】

lwIPのネットワークインターフェースの初期化について説明。netif_set_up関数を使用する。ネットワークインターフェースをUP状態にするもの。実は呼ばなくてもOKな疑惑があるが、流儀としては呼び出しておくべき。
車載ネットワーク

【Ethernet】車載ネットワーク その31【lwIP⑦】

lwIPのマルチキャストグループの参加について説明。igmp_joingroup_netif関数を使用。上記関数を呼び出すとIGMPでグループ参加を通知するためのパケットが送信される。
車載ネットワーク

【Ethernet】車載ネットワーク その30【lwIP⑥】

lwIPのネットワークインターフェースの追加について説明。netif_add関数を使用する。引数はIPアドレス、ネットマスク等のIP層の他、データリンク層由来のものもある。データリンク層初期化関数はコールバック関数initに渡す。
車載ネットワーク

【Ethernet】車載ネットワーク その29【lwIP⑤】

lwIPの初期化について。lwIPの初期化関数はlwip_init。lwip_initの内部は#if~#endifで必要最低限の初期化が可能。include/lwip/opt.hで使用する機能の有効/無効の切り替えができる。
車載ネットワーク

【Ethernet】車載ネットワーク その28【lwIP④】

lwIPをPC上で無理やり動作させる準備の話。lwIPの制御手順概要を説明。一般的なSocketと違ってネットワーク関連の初期化も必要。IPフラグメントはIP層の仕様に組み込まれているので利用側は特に何もしなくてOK。