[Xorp-hackers] Assert with multicast routing in fea, pif_index collision with "register_vif"
Ben Greear
greearb at candelatech.com
Wed Jun 4 23:34:36 PDT 2008
I am working on adding support for multiple multicast routing tables to
Linux & Xorp.
I think I have it mostly implemented, but I'm still in heavy debugging....
Today, I got to the point where I was getting an assert in FEA due to
what appears
to be a vif-index collision:
[ 2008/06/04 17:48:50 INFO xorp_fea MFEA ] Interface enabled Vif[rddVR2]
pif_index: 6 vif_index: 2 addr: 3.3.3.3 subnet: 3.3.3.0/24 broadcast:
3.3.3.255 peer: 0.0.0.0 Flags: MULTICAST BROADCAST UNDERLYING_VIF_UP
MTU: 1500 DOWN IPv4 ENABLED
[ 2008/06/04 17:48:50 INFO xorp_fea MFEA ] Interface started:
Vif[rddVR2] pif_index: 6 vif_index: 2 addr: 3.3.3.3 subnet: 3.3.3.0/24
broadcast: 3.3.3.255 peer: 0.0.0.0 Flags: MULTICAST BROADCAST
UNDERLYING_VIF_UP MTU: 1500 UP IPv4 ENABLED
[ 2008/06/04 17:48:50 INFO xorp_fea MFEA ] Interface added:
Vif[register_vif] pif_index: 6 vif_index: 3 addr: 3.3.3.3 subnet:
3.3.3.3/32 broadcast: 3.3.3.3 peer: 0.0.0.0 Flags: PIM_REGISTER
UNDERLYING_VIF_UP MTU: 1500
[ 2008/06/04 17:48:50 FATAL xorp_fea:5016 FEA iftree.cc:1673
insert_ifindex ] Assertion (iter->second == ifp) failed
The 'register_vif' interface has same pif_index, so it hits this assert
if iftree.cc
(well, I'm running my own patches in fea, so that *could* be the
problem, but
the code below is from the official tree, and looks like it would have
the same problem.)
Any ideas on this? I can paste my entire xorp config if someone is
interested...
void
IfTree::insert_ifindex(IfTreeInterface* ifp)
{
IfIndexMap::iterator iter;
XLOG_ASSERT(ifp != NULL);
if (ifp->pif_index() == 0)
return; // Ignore: invalid pif_index
iter = _ifindex_map.find(ifp->pif_index());
if (iter != _ifindex_map.end()) {
XLOG_ASSERT(iter->second == ifp); /// This is what hits ///
iter->second = ifp;
return;
}
_ifindex_map[ifp->pif_index()] = ifp;
}
--
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc http://www.candelatech.com
More information about the Xorp-hackers
mailing list