From: KUROSAWA T. <fwk...@mb...> - 2005-05-24 03:27:31
|
黒沢です. At Tue, 24 May 2005 02:41:20 +0900 (JST), Junji SATO wrote: > で,route.cを見てみたのですが,このフラグってip6_null_entry > のrt6i_flagsのような気がします. そのようですね…… 調査どうもありがとうございます. > と呼ばれるが,該当するエントリがないのでルートエントリ > (ip6_route_table)が返ってきて,ルートエントリに対して > forで回すが,skb->dev->ifindexがxcst6tnl0のifindexのため > デフォルトルートが選択されないのかな,という気がします. とても正しそうに思います. そういえば,以前「アドレスは別にして渡すのに,ifindex は skb->dev の ifindex 使うのはかなりまずそうな気がするなぁ.まぁ問題が出たら 直そう」とか思っていた部分でした. 以下のような感じの手順で直せそうですが,こんな感じでよさそう でしょうか?ほかにアイデアありましたらお願いします. (1) カプセル化されたパケットを受けとったときのインタフェースの ifindex を skb のどこかに覚えておくように変更する (たぶん skb->xcast6 の下). (2) ip6_route_input_byaddr() に ifindex を与える引数を追加する. (3) xcast6_branch() は (1) で覚えておいた ifindex を使って ip6_route_input_byaddr() を呼び出すように変更する. |