[Armadillo:07509] Re: armadillo420 ルーティングテーブルの更新周期と更新中の動作について

内山光公 email@hidden
2011年 9月 3日 (土) 14:04:05 JST


Yasushi SHOJI 様

 ありがとうございました。がんばって読んでみます。


内山



At Wed, 31 Aug 2011 14:58:25 +0900,
内山光公 wrote:
>
> 質問1
>  linux-2.6.x/net/ipv4/route.c の中に
>     static int ip_rt_gc_interval __read_mostly	= 60 * HZ;
>  という変数定義を見つけたのですが、ここに定義されている60という値がルー
ティ
> ング
>  テーブルの更新周期で、60秒をあらわしているのでしょうか?

そうです。routing table のベージコレクタが動く間隔です。60秒から 120秒
の間に動きます。詳しくは↓こちら
http://book.chinaunix.net/special/ebook/oreilly/Understanding_Linux_Network_
Internals/0596002556/understandlni-CHP-33-SECT-7.html#understandlni-CHP-33-S
ECT-7.3


> 質問2
>  ルーティングテーブルを更新中に届いたパケットのルーティング処理はどのよう
な
> 動きを
>  するのでしょうか?
>  一般的に考えると更新中はパケットのルーティングを一時停止するように思うの
で
> すが。

routing table を呼び出す側は、rcu によって保護されているようです。です
ので、更新が終るまでは、古い情報が見えるはずです。rcu_read_lock で
route.cの中を検索すると見付かると思います。たとえば↓

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.26.y.git;a=blob;f
=net/ipv4/route.c;h=96be336064fb1f5f3851cb440a051e2c190de617;hb=HEAD#l283
--
             yashi






armadillo メーリングリストの案内