[Xorp-hackers] Assert with multicast routing in fea, pif_index collision with "register_vif"
Ben Greear
greearb at candelatech.com
Thu Jun 5 08:46:20 PDT 2008
Bruce M Simpson wrote:
>
> Hi,
>
> The register vif is a virtual interface in the MROUTING code which is
> used to send PIM register messages upstream to the Rendezvous Point
> (RP) with the correct encapsulation.
>
> The FEA code does not give the register vif any special handling, to
> avoid introducing a lot of special cases into the code. If you look at
> mfea_node.cc you will see the code which allocates a vif index in FEA
> space for the register VIF.
>
> However: The MROUTING vif numbers are unrelated to ifindex, they do
> NOT occupy the same space. By the looks of it you've hit the assertion
> where the MFEA has allocated a VIF index inside the FEA, where there
> is a 'real' system interface sharing the same index.
>
> Unfortunately the MROUTING code does not allocate a real interface
> descriptor from the underlying system. If you look at the MROUTING
> code you will see it has a 32 vif limitation due to the API used.
>
> This is why I strongly recommended looking at the other issues in
> MROUTING first before attempting to add multiple FIB support.
Well, I haven't actually tested multiple routing tables yet...just
working on a single one. The FEA seems to assume that there
is no duplication of pif-index, but it seems that the fake register_vif
interface just steals a pif_index from a physical interface.
I don't think this has anything in particular to do with the multicast
vif-index, at least not for the assert that I hit.
I'll have to fix that somehow..maybe make it use a negative of the
stolen pif-index or some hack like that...
Has anyone attempted multicast routing since Pavlin put in his fea
interface hashing code?
I'll look into it in more detail today.
Thanks,
Ben
--
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc http://www.candelatech.com
More information about the Xorp-hackers
mailing list