[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