[Xorp-hackers] PIM-SM / PIM-Bidir doubt about (*,G) entries.
Pavlin Radoslavov
pavlin at icir.org
Sun Feb 18 13:24:27 PST 2007
> As per your reply regarding setting the bidir-bit so as to differentiate
> between the PIM-SM and PIM-Bidir (*,G) entries ,we are not very clear about
> how the (*,G) entries are stored in PIM_SM as per your implementation.(We
> tried searching for those in PIM_MRE.hh ,PIM.h,IPv4.h.)So we are unable to
> decide the setting of the Bidir-bit for (*,G) entries.
>
> Can we use a flag along with the (*,G) entries and store both of them
> together in the templates????
The PimMre class is defined in pim_mre.hh. This class is used for
any type of multicast routing entries, so you have to add the
bidir flag to that class.
> 2.)Also as per the PIM-SM RFC (Protocol Independent multicast-Sparse
> mode(PIM-SM):Protocol specification(Revised))
> Encoded-Group addresses take the following format:
>
> 0 1 2 3
> 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> | Addr Family | Encoding Type |B| Reserved |Z| Mask Len |
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> | Group multicast Address
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...
>
> [B]idirectional PIM
> indicates the group range should use Bidirectional PIM [12]. For
> PIM-SM defined in this specification, this bit MUST be zero.
>
> We have a doubt as how the bidirectional bit is handled in PIM_SM and where
> exactly is it handled.
The Encoded-Group addresses are encoded/decoded by the
PUT_ENCODED_GROUP_ADDR() and GET_ENCODED_GROUP_ADDR() macros defined
inside pim_proto.h. Currently those macros don't implement the
[B]idirectional PIM flag, so you need to modify them (and their
usage).
> 3.)Could we use the same templetes(MRT and MRE)as used in PIM-SM for
> storing the Tables for PIm-Bidir,or do you feel that writing our own
> templates would be easier????
No need to rewrite, just add your modifications incrementally to
what is already there.
> 4.)Could you also elucidate the implementation of the Packet
> headers.(i.eplz tell the files in which we should be looking for it).
The handling of PIM Hello messages is done inside pim_proto_hello.cc
The handling of PIM Join/Prune messages is done inside
pim_proto_join_prune.cc and pim_proto_join_prune_message.cc
Regards,
Pavlin
More information about the Xorp-hackers
mailing list