gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

MLDv2の実装

2009-12-13 15:22:00 | ノンジャンル
パッチは、完成した。とにかく、mcastreadコマンドを使ってマルチキャストの受信と停止ができるようになった。このパッチは,FreeBSD 8と9で有効である。完全にはソースは理解で来ていないが問題の無い直し方だと思う。もともとの作者に今、メールを送ったので、そのうちコメントがくるだろう。

このパッチが欲しい人がおられたら連絡をください。
それでは。



MLDv2の実装

2009-12-13 00:30:00 | ノンジャンル
FreeBSD 8のカーネルのmld6.cとmld6_var.hを修正して、
  Allow_new_sources
Block_old_sources
をしゃべれるようにしようとしている。

両方実装されているようなのだが、
 (1)Changed to include をむりやり上記2つに書き換える
(2)最初からある上記2つの実装ぽい関数を呼ぶように変更する
の2つをやってみた。

まずは(1)は、ジョイン側、すなわち、Allow_new_sourcesは簡単に出せたが、リーブ側、Block old sourcesは簡単にはいかなかった。しかたがないので、(2)にも挑戦することにした。

ついでに、カーネルコンパイル時に
options KTR
をやってみた。IPv6でKTRを有効にするために、
  /etc/sysctl.conf
に以下を設定した。これは、IPv6のマスクである。
debug.ktr.mask=0x10000000
FreeBSDのVirtualBoxを作ってやっているので、コンパイルはCPUを2つうまくつかえないみたいだが、再起動の時間ははやい。VBOX側にはEmacsとtsharkだけをいれた。

KTRは、mld6.c のKTR_MLDを自分で宣言しないと、ちゃんと/var/log/messagesにでてくれない。
#define KTR_MLD KTR_INET6
をいれることにした。