Date: Wed, 18 May 2011 19:34:43 +0400 From: "Alexander V. Chernikov" <melifaro@ipfw.ru> To: "Jack Shang(hongzhang)" <jack.shang@huawei.com> Cc: "freebsd-net@freebsd.org" <freebsd-net@freebsd.org> Subject: Re: =?gb2312?b?tPC4tDogSXMgaXQgYSBidWcgb2YgUkFESVggPz8/Pz8=?= Message-ID: <4DD3E713.3070008@ipfw.ru> In-Reply-To: <78D2B330B6A30B4CB554FD2EC08D7434F3668E@szxeml508-mbx.china.huawei.com> References: <1305721909414-4406356.post@n5.nabble.com> <4DD3C17E.9070903@ipfw.ru> <78D2B330B6A30B4CB554FD2EC08D7434F3668E@szxeml508-mbx.china.huawei.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 18.05.2011 19:15, Jack Shang(hongzhang) wrote: > I do these by call the radix routine such as rn_addroute and rn_delete directly. Okay. Can you provide FreeBSD version and a piece of code triggering such a situation? IMHO radix assumes destination address to have host bits cleared, code in rtrequest1_fib does this via rt_maskedcopy(). Are you sure you need to pass 0x360AD0A2/30 0x360ADFEC/20 0x360AD082/30 instead of: 0x360AD0A0/30 0x360AD000/20 0x360AD080/30 ? > ________________________________________ > 发件人: Alexander V. Chernikov [melifaro@ipfw.ru] > 发送时间: 2011年5月18日 20:54 > 到: Jack Shang(hongzhang) > Cc: freebsd-net@freebsd.org > 主题: Re: Is it a bug of RADIX ????? > > On 18.05.2011 16:31, JACK wrote: >> After inserting the following IPv4 routers: >> >> 0x360AD0A2/30 >> 0x360ADFEC/20 >> 0x360AD082/30 >> >> I try to delete the above routes, when delete the second >> route(0x360ADFEC/20), the operation fail. > Can you specify exact commands you are issuing to add/remove routes? > (or "route monitor" output if you are doing this from some dynamic > routing software) > > The following order works for me (8.2-STABLE): > > 16:44 [0] bibi# route add -net 54.10.208.162/30 10.11.0.1 > add net 54.10.208.162: gateway 10.11.0.1 > 16:45 [0] bibi# route add -net 54.10.223.236/20 10.11.0.1 > add net 54.10.223.236: gateway 10.11.0.1 > 16:46 [0] bibi# route add -net 54.10.208.130/30 10.11.0.1 > add net 54.10.208.130: gateway 10.11.0.1 > > 16:46 [0] bibi# netstat -rn -finet | grep 54 > 54.10.208.0/20 10.11.0.1 UGS 0 0 em0 > 54.10.208.128/30 10.11.0.1 UGS 0 0 em0 > 54.10.208.160/30 10.11.0.1 UGS 0 0 em0 > 16:46 [0] bibi# route delete 54.10.208.0/20 > delete net 54.10.208.0 > 16:48 [0] bibi# route delete 54.10.208.128/30 > delete net 54.10.208.128 > 16:49 [0] bibi# route delete 54.10.208.160/30 > delete net 54.10.208.160 > 16:49 [0] bibi# netstat -rn -finet | grep 54 > 16:49 [0] bibi# > > >> struct radix_node * rn_delete (........) >> { >> ... >> /* >> * Delete our route from mask lists. >> */ >> if (netmask != NULL) { >> if ((x = rn_addmask(netmask, TRUE, head_off)) == NULL) >> return (NULL); >> netmask = x->rn_key; >> while (tt->rn_mask != netmask) >> if ((tt = tt->rn_dupedkey) == NULL) >> return (NULL); // rn_delete return here!!! >> } >> ... >> } >> >> but, if I delete as the following order, all routers was deleted >> successfully: >> >> 0x360AD0A2/30 >> 0x360AD082/30 >> 0x360ADFEC/20 >> >> >> so, is it a bug of RADIX? >> >> /jack >> >> >> >> >> -- >> View this message in context: http://freebsd.1045724.n5.nabble.com/Is-it-a-bug-of-RADIX-tp4406356p4406356.html >> Sent from the freebsd-net mailing list archive at Nabble.com. >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4DD3E713.3070008>