メイン Network Layer Settings: IP, QoS, Queuing & Scheduling IPv6におけるLink Layer Notification | 投稿するにはまず登録を |
題名 | 投稿者 | 日時 |
---|---|---|
IPv6におけるLink Layer Notification | kyama | 2006/2/10 16:12 |
Re: IPv6におけるLink Layer Notification | puruta | 2006/2/14 10:24 |
Re: IPv6におけるLink Layer Notification | kyama | 2006/2/20 12:07 |
Re: IPv6におけるLink Layer Notification | forum_support | 2006/2/20 22:13 |
Re: IPv6におけるLink Layer Notification | kyama | 2006/2/22 16:26 |
» Re: IPv6におけるLink Layer Notification | forum_support | 2006/2/24 21:39 |
Re: IPv6におけるLink Layer Notification | kyama | 2006/2/27 17:23 |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
forum_support | 投稿日時: 2006/2/24 21:39 |
モデレータ 登録日: 2005/5/17 居住地: 東京都中野区中央4-5-3 ?構造計画研究所 投稿: 322 |
Re: IPv6におけるLink Layer Notification 引用:
お返事がおそくなりました。 ソースコードを調べてみましたが、QualNetのIPv6のコードには NetworkIpSetMacLayerStatusEventHandlerFunction()に相当する関数は見当たりません。 つまり、IPv6ではLink Layer Notificationはサポートされていません。ただ、ソースに手を 入れて実装できないことはないと思います。必ず目的が達成できるという保証はありませんが、 ソースコードに手を入れられる際の参考までに、私どもで解析した情報を載せておきたいと思 います。 ipv6.cppのソースを見ると、以下のようにMAC層からのコールバック関数はNULLに設定されて います。
NetworkIpSetMacLayerStatusEventHandlerFunction()はip.cppの中に定義されている関数で、 MAC層からのパケットドロップ通知時にコールバックされる関数をインタフェース構造体に 登録する関数です。このIPv4用の関数を使えば、一旦NULLに設定されたIPv6用コールバック 関数のポインタを設定できるはずです。
これと対になっているのが、NetworkIpGetMacLayerStatusEventHandlerFunction()で、 こちらの関数は既にインタフェース構造体に登録されたコールバック関数を読み出すの に使われます。(コードは省略) 以上の2つの関数ですが、どちらもip.cppに定義されているものの、IPv4に特化した関数 にはなっていません。また、MAC層は直接にはNetworkIpNotificationOfPacketDrop()を 呼び出します。こちらもまたip.cppに定義されていて、 NetworkIpSetMacLayerStatusEventHandlerFunction()で設定された関数ポインタを、 NetworkIpGetMacLayerStatusEventHandlerFunction()を呼び出して取得し、その関数を 呼び出しているだけです。 MAC層では以下の関数でコールバックを行っています。コードを読むと、IPv6ではコール バックは行われていません。IPv6でもコールバックされるようにするには、この部分を 改造してあげる必要があります。
以上のことから、ルーティングプロトコル等でNetworkIpSetMacLayerStatusEventHandlerFunction() を呼び出してプロトコル固有のコールバック関数を登録すれば、IPv4であろうがIPv6で あろうが関係なくコールバックしてくれるはずです。 IPv4とIPv6のデユアルIPにする場合には更に改造が必要になると思いますが、ここでは 割愛します。 以上、回答になりましたでしょうか。 |
フラット表示 | 前のトピック | 次のトピック |