LAN, PPP, WLANなど複数のデバイスを扱いたい

弊社TCP/IPプロトコルスタック「μNet3」に関するご質問
返信する
アバター
eForce技術担当
記事: 178
登録日時: 2014年4月24日(木) 14:18

LAN, PPP, WLANなど複数のデバイスを扱いたい

投稿記事 by eForce技術担当 » 2020年10月16日(金) 15:40

μNet3では複数のネットワークデバイスを収容することが可能です。
アプリケーションはソケットAPI実行時にデバイス番号を指定します。

まずコンフィグレーションでCFG_NET_DEV_MAXにデバイス数を設定します。
次ににデバイスごとに定義している、アドレス定義、デバイス定義 、通信パラメータの
配列要素をCFG_NET_DEV_MAX数分定義します。

■アドレス定義
T_NET_ADR gNET_ADR[] = {
{0x0, 0x0, 0x0, 0x0, 0x0}, /*1つ目のデバイスのアドレス */
{0x0, 0x0, 0x0, 0x0, 0x0}, /*2つ目のデバイスのアドレス */
 :
};

■ デバイス定義
T_NET_DEV gNET_DEV[] = {
{
"lan0", /* Device Name */
1, /* Device Number */
NET_DEV_TYPE_ETH, /* Device Type */
:
:
},
{
"lan1", /* Device Name */
2, /* Device Number */
NET_DEV_TYPE_PPP, /* Device Type */
0, /* Status */
0, /* Flags */

■ 通信パラメータ
T_NET_CFG gNET_CFG[] = {
{
TRUE, /*最初の要素の先頭がTRUEの場合、2つ目以降設定不要です*/
 :  /* デバイス毎にMTUなどの設定を変える場合はFALSEにして各要素を定義します*/


最後にプロトコルスタック初期化後にそれぞれのデバイスを初期化して下さい。

net_init(); /* プロトコルスタック初期化*/
net_dev_ini(1); /* デバイス1初期化*/
net_dev_ini(2); /* デバイス2初期化*/
 :
 :

※デバイス番号は1オリジンでデバイスの定義順で決定しますが
 番号0 (ANY)を指定した場合は1が選択されます。

返信する