[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
Mon Aug 14 03:46:19 PDT 2006
Hi,
I am using XORP 1.3-Release for PIM-SMv6 and Zebra 0.95 for unicast
routing on FreeBSD 6.1.
The situations are:
1. xorpsh sometimes issues recursive malloc calls, causing segmentation fault.
2. XORP doesn't update its nexthop vif on multicast routing table If
Zebra updates a routing entry.
show route table ipv6 multicast fib2mrib shows that the nexthop
vif is not changed even though the nexthop address is.
I am not sure whether this problem is intermittent or not.
3. I am wondering if this is a bug or not. I set the
switch-to-spt-threshold to a non-0 value, and my PIM RP never
initiates a Register-Stop, i.e.:
a. The RP doesn't issue a Register-Stop when it receives PIM
Register packets for multicast group without any Join state.
b. The RP doesn't issue a Register-Stop for PIM Register packets
when there's a Join state but no oif (i.e. the last-hop router
switched to SPT and the RP is not a router in the SPT).
c. The RP only issues a Register-Stop if it receives a Join(S,G) message.
If it is a bug, I guess the below snippets are enough to make RP
issues a Register-Stop.
%rcsdiff -u pim_proto_register.cc
===================================================================
RCS file: RCS/pim_proto_register.cc,v
retrieving revision 1.1
diff -u -r1.1 pim_proto_register.cc
--- pim_proto_register.cc 2006/08/14 09:21:51 1.1
+++ pim_proto_register.cc 2006/08/14 10:27:40
@@ -302,8 +302,7 @@
// messages reaches the configured threshold.
//
if (is_sptbit_set
- || (pim_mre->is_switch_to_spt_desired_sg(0, 0)
- && pim_mre->inherited_olist_sg().none())) {
+ || pim_mre->inherited_olist_sg().none()) {
//
// "send Register-Stop(S,G) to outer.src"
//
%rcsdiff -u pim_mre_data.cc
===================================================================
RCS file: RCS/pim_mre_data.cc,v
retrieving revision 1.1
diff -u -r1.1 pim_mre_data.cc
--- pim_mre_data.cc 2006/08/14 09:20:51 1.1
+++ pim_mre_data.cc 2006/08/14 09:21:42
@@ -101,6 +101,11 @@
if (! (is_wc() || is_sg() || is_sg_rpt()))
return (false);
+ //
+ // RP SPT switch
+ //
+ if (i_am_rp())
+ return (true);
mifs = pim_include_wc();
if (pim_mre_sg != NULL) {
mifs &= ~pim_mre_sg->pim_exclude_sg();
regards,
--
<husni>
More information about the Xorp-users
mailing list