[Xorp-users] IPv4 PIM-SM and SSM (was Xorp debug messages)

Martin Hoffmann mh5942@bris.ac.uk
Wed, 08 Mar 2006 17:04:39 +0000


Hi all,

I solved my problem regarding the Hello messages. I set up a new
machine, running Xorp-1.2-RC and a properly configured 2.6.10 kernel.
Xorp and Click now successfully exchange PIM Hello messages.

I'd like to built a Source Path Tree now. My testbed look like this:

IGMPv3 Receiver <-> Click router <-> Xorp router <-> Sender

1. The sender sends a (S,G) stream to the Xorp router
As a result, "show pim mfc" and "show pim join" return the following lines:

martin@ubuntu> show pim mfc
Group           Source          RP
232.2.2.2       192.168.40.1    0.0.0.0
    Incoming interface :      eth1
    Outgoing interfaces:      ..O
martin@ubuntu> show pim join
Group           Source          RP              Flags
232.2.2.2       192.168.40.1    RP_ADDR_UNKNOWN SG SPT DirectlyConnectedS
    Upstream interface (S):    eth1
    Upstream interface (RP):   UNKNOWN
    Upstream MRIB next hop (RP): UNKNOWN
    Upstream MRIB next hop (S):  UNKNOWN
    Upstream RPF'(S,G):        UNKNOWN
    Upstream state:            Joined
    Register state:            RegisterJoin RegisterCouldRegister
    Join timer:                4
    KAT(S,G) running:          true
    Local receiver include WC: ...
    Local receiver include SG: ...
    Local receiver exclude SG: ...
    Joins RP:                  ...
    Joins WC:                  ...
    Joins SG:                  ..O
    Join state:                ..O
    Prune state:               ...
    Prune pending state:       ...
    I am assert winner state:  ...
    I am assert loser state:   ...
    Assert winner WC:          ...
    Assert winner SG:          ...
    Assert lost WC:            ...
    Assert lost SG:            ...
    Assert lost SG_RPT:        ...
    Assert tracking SG:        O.O
    Could assert WC:           ...
    Could assert SG:           ..O
    I am DR:                   O.O
    Immediate olist RP:        ...
    Immediate olist WC:        ...
    Immediate olist SG:        ..O
    Inherited olist SG:        ..O
    Inherited olist SG_RPT:    ...
    PIM include WC:            ...
    PIM include SG:            ...
    PIM exclude SG:            ...

Is that ok so far?

2. The IGMPv3 receiver sends an "Include" report to the Click router and
requests an (S,G) stream. The Click routers adds this information to its
forwarding cache. A PIM join message is generated and sent to the Xorp
router.

2.1 I used the PIM neighbors unicast address to sent the PIM join
message to. This is mentioned in section 4.3.4 and 4.5.3 in
draft-ietf-pim-sm-v2-new-11.txt.

Xorp complains and asks for a multicast address.
[ 2006/03/08 16:28:57 WARNING xorp_pimsm4 PIM ] RX PIM_JOIN_PRUNE from
192.168.30.6 to 192.168.30.2 on vif eth2: destination must be multicast

2.2 Sending the PIM join message to the group address (232.2.2.2 in this
case) does not work either.
Xorp adds an entry to its MFC, the Join/Prune message is not reckognised.
martin@ubuntu> show pim mfc
Group           Source          RP
232.2.2.2       192.168.30.6    0.0.0.0
    Incoming interface :      eth2
    Outgoing interfaces:      ...

The PIM join message format is (tethereal output):
-----
Frame 4 (72 bytes on wire, 72 bytes captured)
    Arrival Time: Mar  8, 2006 16:39:59.819030000
    Time delta from previous packet: 0.009573000 seconds
    Time since reference or first frame: 0.121406000 seconds
    Frame Number: 4
    Packet Length: 72 bytes
    Capture Length: 72 bytes
    Protocols in frame: eth:ip:pim
Ethernet II, Src: 00:30:48:52:fe:b3, Dst: 00:09:5b:e4:23:7a
    Destination: 00:09:5b:e4:23:7a (192.168.30.2)
    Source: 00:30:48:52:fe:b3 (192.168.30.6)
    Type: IP (0x0800)
Internet Protocol, Src Addr: 192.168.30.6 (192.168.30.6), Dst Addr:
232.2.2.2 (232.2.2.2)
    Version: 4
    Header length: 24 bytes
    Differentiated Services Field: 0xc0 (DSCP 0x30: Class Selector 6;
ECN: 0x00)
        1100 00.. = Differentiated Services Codepoint: Class Selector 6
(0x30)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 58
    Identification: 0xf45f (62559)
    Flags: 0x00
        0... = Reserved bit: Not set
        .0.. = Don't fragment: Not set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 1
    Protocol: PIM (0x67)
    Header checksum: 0x6686 (correct)
    Source: 192.168.30.6 (192.168.30.6)
    Destination: 232.2.2.2 (232.2.2.2)
    Options: (4 bytes)
        Router Alert: Every router examines packet
Protocol Independent Multicast
    Version: 2
    Type: Join/Prune (3)
    Checksum: 0x1c60 (correct)
    PIM parameters
        Upstream-neighbor: 192.168.30.6
        Groups: 1
        Holdtime: 65535 (infty)
        Group 0: 232.2.2.2/32
            Join: 1
                IP address: 192.168.40.1/32 (SW)
            Prune: 0
-----

2.3 draft-ietf-pim-sm-v2-new-11.txt mentions 0.0.0.0 as a valid
destination address, see section 4.5.3. This did not work on Xorp.

2.4 My last try was to send the Join message to 224.0.0.13, the PIM
routers' address.
As a result I get the following line:
[ 2006/03/08 16:55:17 WARNING xorp_pimsm4 PIM ] RX PIM_JOIN_PRUNE from
192.168.30.6 to 224.0.0.13: invalid source/RP flags for (192.168.40.1,
232.2.2.2): 0x6

I'm not sure where to continue now, any suggestions and explanation is
highly appreciated.

Thank you so far,
Martin