[BitVisor-devel:67] Re: Bitvisor上でのlwIPの使い方について

Hideki EIRAKU hdk @ igel.co.jp
2015年 12月 4日 (金) 12:26:09 JST


海野様

榮樂です。こんにちは。

From: umino tomoki <t.umino.nit @ gmail.com>
Subject: [BitVisor-devel:66] Bitvisor上でのlwIPの使い方について
Date: Thu, 3 Dec 2015 22:36:26 +0900

> サンプルのecho-client.cとechoctl.cを読んだところ、通常のlwIPのrawAPIを用いた関数
> tcpip_beginのコールバックとして実行すればよいのではないかと思い
> 上記のプログラムを参考に5秒毎にサーバーへデータを送るテストコードを作成し
> 実行してみましたが、起動直後に
>>> PCI: finding devices...
> PCI: 21 devices found
> MCFG [0] 0000:00-FF (E0000000, 10000000)
>>> とログに出力され、また、tcpip_beginに渡したコールバックも実行されませんでした。
> そこで、質問なのですが、bitvisor上でのlwipの使い方は、rawAPIを用いた関数を
> tcpip_beginのコールバックとして実行するというもので間違いないでしょうか
> もし、間違っているならば、正しい使い方を教えていただけるとありがたいです。

BitVisor に組み込まれた lwIP の使い方としては、あっていると思います。
他に気をつけるところは、IP アドレスを設定した後でなければならないとこ
ろです。ログに IP address changed: 0.0.0.0 -> 10.0.0.1 のような内容が
出力されますので、それ以降に使用する必要があります。

まずは、サンプルの echo サーバー・クライアントを試してみてください。サ
ンプルは最初から BitVisor に組み込まれており、dbgsh から echoctl とい
うコマンドを実行すると、echo サーバーを開始したり、echo クライアントを
テストしたりすることができます。ネットワーク上に相手となるホストを用意
する必要はあります。

サンプルもうまく動かない場合、BitVisor の設定を間違えている可能性があ
ります。ネットワークのドライバーとして vmm.driver.pci に
"driver=pro1000, net=ip" のような設定が、ip.use_dhcp, ip.ipaddr,
ip.netmask および ip.gateway に IP アドレスの設定が必要です。特にドラ
イバーが正しく設定されていない場合、ネットワークのスレッドが開始しない
ので、tcpip_begin のコールバックが実行されないということにもなります。

-- 
Hideki EIRAKU <hdk @ igel.co.jp>


BitVisor-devel メーリングリストの案内