![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kyama | 投稿日時: 2006/2/10 16:12 |
新米 ![]() ![]() 登録日: 2006/1/11 居住地: 投稿: 13 |
IPv6におけるLink Layer Notification IPv6においてLink Layer Notificationを使いたいのですが、
どのようにすればよいでしょうか?? |
puruta | 投稿日時: 2006/2/14 10:24 |
半人前 ![]() ![]() 登録日: 2005/7/13 居住地: 福岡 投稿: 39 |
Re: IPv6におけるLink Layer Notification 興味があったので Link Layer Notification をキーワードに、
Googleで調べてみたら、OLSRがらみでしか見つからなかった です。 http://www.olsr.org/docs/report_html/node132.html こういうことなんでしょうか?? LL(MAC) で コネクションが確立した (or その他のイベント) で、直接上位層のインターフェース(関数)を呼び出すには? ってゆうことなんでしょうか? その場合、何かしらのイベントタグを作ってあげて、そのイベント に対するIP層のディスパッチャ(switch - case 文)を作成し、 かつその switch - case から呼ばれる関数を定義してあげれば よさそうな気がします ※抽象的な説明で_(._.)_ |
kyama | 投稿日時: 2006/2/20 12:07 |
新米 ![]() ![]() 登録日: 2006/1/11 居住地: 投稿: 13 |
Re: IPv6におけるLink Layer Notification 返信ありがとうございます。
返信送れて済みません。 御指摘の通りの機能を実現したいのですが、 QualNetにおいて、 IPv4の場合は、それを実現する関数が実装されています。 しかし、IPv6の場合には、そのような関数が見当たりません。 また、IPv6についてはオブジェクトファイルのみが提供され ておりまして、ソースコードを変更することができません。 そこで、本フォーラムに投稿しました。 |
forum_support | 投稿日時: 2006/2/20 22:13 |
モデレータ ![]() ![]() 登録日: 2005/5/17 居住地: 東京都中野区中央4-5-3 ?構造計画研究所 投稿: 322 |
Re: IPv6におけるLink Layer Notification 引用:
ということですが、IPv4のどの関数がそれに相当するのかお教え いただけないでしょうか。そうすれば、それに相当するIPv6の 関数を調べる手がかりになります。別スレッドでご質問いただい ているNetworkEmptyForwardingTable()関数ではないですよね。 引用:
ということなのですが、SNT社の方針?で、大学向け(QUP)にはIPv6の ソースコードが提供されていないようです。弊社にはソースが あるので、調べて(もしあれば)関数名をお知らせできると思いま す。 |
kyama | 投稿日時: 2006/2/22 16:26 |
新米 ![]() ![]() 登録日: 2006/1/11 居住地: 投稿: 13 |
Re: IPv6におけるLink Layer Notification 返信ありがとうございます。
引用:
知りませんでした。ありがとうございます。 引用:
関数名は、NetworkIpSetMacLayerStatusEventHandlerFunction関数です。 よろしくお願いします。 |
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にする場合には更に改造が必要になると思いますが、ここでは 割愛します。 以上、回答になりましたでしょうか。 |
kyama | 投稿日時: 2006/2/27 17:23 |
新米 ![]() ![]() 登録日: 2006/1/11 居住地: 投稿: 13 |
Re: IPv6におけるLink Layer Notification 返信ありがとうございました。
大変参考になります。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |