[Xorp-users] Bugs? recursive malloc, fib2mrib doesn't update nexthop vif, and PIM RP never initiates a Register-Stop

A.H.T ahthamrin at gmail.com
Thu Aug 24 22:53:05 PDT 2006


On 8/22/06, Pavlin Radoslavov <pavlin at icir.org> wrote:
>
> Interesting. Could you send me the "route add/change/delete" commands
> how to replicate the problem.

I added debugging code in routing_socket_utils.cc to show the netmask value.

I used route add command to add AAAA:BBBB:fad:dead:bee8::/77 prefix
route. After that, zebra deleted AAAA:BBBB:10a::/64 route, but the
routing socket sends a netmask with masklen /77, which I believe is
what's left from my route add command.

%route -n add -inet6 AAAA:BBBB:fad:dead:bee8:: -prefixlen 77
fe80::2e0:81ff:fe02:fa52%em0
add net AAAA:BBBB:fad:dead:bee8::: gateway fe80::2e0:81ff:fe02:fa52%em0

[ 2006/08/25 10:40:44  ERROR xorp_fea:18632 FEA +512
routing_socket_utils.cc rtm_get_to_fte_cfg ] RTM type: 1 prefix
AAAA:BBBB:fad:dead:bee8:: mask ffff:ffff:ffff:ffff:fff8:0:603:600
masklen 77 nexthop fe80::2e0:81ff:fe02:fa52
[ 2006/08/25 10:44:03  ERROR xorp_fea:18632 FEA +512
routing_socket_utils.cc rtm_get_to_fte_cfg ] RTM type: 2 prefix
AAAA:BBBB:10a:: mask :: masklen 77 nexthop fe80::2e0:81ff:fe02:fa52
[ 2006/08/25 10:44:03 WARNING xorp_fib2mrib XrlFib2mribTarget ]
Handling method for fea_fib_client/0.1/delete_route6 failed:
XrlCmdError 102 Command failed Cannot delete route for
AAAA:BBBB:10a::/77: no such route
[ 2006/08/25 10:44:03  ERROR xorp_fea:18632 FEA +550 xrl_fti.cc
send_fib_client_route_change_cb ] Error sending route change to
fib2mrib: 102 Command failed Cannot delete route for
AAAA:BBBB:10a::/77: no such route
[ 2006/08/25 10:44:04  ERROR xorp_fea:18632 FEA +512
routing_socket_utils.cc rtm_get_to_fte_cfg ] RTM type: 1 prefix
AAAA:BBBB:10a:: mask :: masklen 64 nexthop fe80::2e0:81ff:fe02:fa52

So based on this observation, it seems that the kernel only gives good
netmask value in n * 32bits boundary.

> This might not be the right solution, because sometimes the IPv6
> prefix length can be legitimately bigger than 64. E.g., the loopback
> ::1 address has prefix length of 128.

AFAIK, a link prefix in the global unicast routing address space is
/64. So there should be no prefixlen > 64, right? Need to confirm with
the spec, though.
for ::1/128 (host route), isn't it handled by
if (rtm->rtm_type & RTF_HOST) {
    if (dst_mask_len == 0)
        dst_mask_len = IPvX::addr_bitlen(family);
}
?


regards,
-- 
<husni>



More information about the Xorp-users mailing list