Showing posts with label Multicasting. Show all posts
Showing posts with label Multicasting. Show all posts

Monday, June 26, 2017

Debugging Local Multicast on EXOS

Debugging Multicast Issues

Local Multicast address packets are handled differently when compared to data packets. Multicast forwarding/flooding mechanism is based on following three configurations;


1. Ingress vlan is L3 Vlan/L2 Vlan.
2. Snooping enabled/disabled.
3. Local Multicast forwarding configuration slow-path/fast path.
Forwarding behavior for Local multicast packets as well as data packets is as follows.


Configuration
224.0.0.x
IP address not configured(L2 vlan)
Fast-path flood
IP address configured(L3 vlan)
Slow-path flood


Configuration
Multicast stream
IGMP snooping enabled
Fast-path forward
IGMP snooping disabled
Fast-path flood

Debugging Issues with Local Multicast Packets(224.0.0.x) forwarding

L3 Vlan - vlan with IP address assigned.

All packets are flooded via software(slow-path) alone. There will be no cache entry in the hardware/HAL for these streams. Cache entry will be present only in Kernel and software. The following things are to be checked.
1. show mcast cache . In this output, check whether the proper source IP, group IP, egress ports, egress vlan of the stream is present.
If the entry is fine in software, then check whether the corresponding entry is present in Kernel.
2. !cat proc/net/snoop_mr_cache . In this outputs, check whether (S,G) entry is there and corresponding ingress port/egress ports are programmed properly.
In some rare cases, (S,G) information is present but not the ports details. Then this cache is just an unresolved cache and will not be used for packet forwarding.
If the (S,G) entry is not present in both software and kernel, check whether the packets are hitting the CPU using the below command.
To abort the capture, use (Ctrl+C). In case the packets are not at all hitting the CPU, then check whether the filters are installed in hardware properly.
check whether appropriate filter is installed in the ingress port. To proceed finding the hardware acl, follow the steps below.
  1. Open another telnet session, lets say session
  2. Now get into the BCM shell in the session
  3. From the session 1, execute the below command.
6. fp show entry <eid> , whereas <eid> is derived from above step(step 5 command).
If the hardware ACL is not installed in that port, this could be issue with ACL or the configuration part like igmp filter configuration, snooping configuration etc. Check “show configuration mcmgr” output.

Tuesday, May 16, 2017

MLAG - PIM support

MLAG  - PIM Support


ExtremeXOS allows configuring PIM on both MLAG peers. PIM adjacencies between each MLAG vlan are established across the ISC link.
This synchronization is required because multicast traffic only sent to one of lag port as below.




• The checkpoint PIM state between MLAG peers. This should include all MLAG egresses.
• You can verify that PIM functionality for MLAG is present by issuing the following show command:
show pim cache {{detail} | {state-refresh} {mlag-peer-info} {group_addr}{source_addr}}
• Additionally, the existing show pim cache command displays ingress VLAN information for all MLAG peers.


The output of the command is shown below:


* core1.67 # show pim cache
Index  Dest Group      Source             InVlan   Origin
[0001] 239.1.1.100     192.168.100.101 (S) data     Dense   Not Pruned


Number of multicast cache = 1

* core2.38 # show pim cache
Index  Dest Group      Source             InVlan   Origin
[0001] 239.1.1.100     192.168.100.101 (S) data     Dense   Not Pruned


Number of multicast cache = 1

* dist1.18 # show pim cache
Index  Dest Group      Source             InVlan   Origin
[0001] 239.1.1.100     192.168.100.101 (S) data     Dense   Not Pruned


Number of multicast cache = 1

* dist2.25 # show pim cache
Index  Dest Group      Source             InVlan   Origin
[0001] 239.1.1.100     192.168.100.101 (S) data     Dense   Not Pruned


Number of multicast cache = 1

Wednesday, March 8, 2017

IGMP

The Internet Group Management Protocol (IGMP) is a layer-2 protocol that runs between hosts and their immediately neighboring multicast routers.
Routers implement IGMP to allow hosts to signal to the network their desire to receive multicast traffic for a specific group. This enables the routers to learn about the presence of group members on their directly attached subnetworks.
This receiver-initiated join process has excellent scaling properties since, as the multicast group increases in size, it becomes ever more likely that a new group member is able to locate a nearby branch of the multicast distribution tree.


IGMP Query-Response Process
IGMP uses a query-response process to allow a multicast router to determine which multicast groups are active on their local subnetworks.
IGMP query messages are addressed to the all-hosts group address (224.0.0.1) and have a Time to Live (TTL) value of 1.
The router periodically multicasts an IGMP membership query to the “all hosts” multicast group, on the local subnetwork.
All hosts that support IGMP are automatically members the all hosts group and accept packets address to the all hosts group.
All hosts receive the membership query and one or more hosts, host 2 in our example, respond by multicasting an IGMP Membership Report to the multicast group, of which the host is a member.
(225.1.1.1) This report tells the router on the subnetwork that a host is interested in receiving multicast traffic for group 225.1.1.1. The host responds within the configured Host Response Interval.
The multicast router promiscuously accept all possible multicast addresses, updating its IGMP multicast group table with each new update.
After a multicast router knows what multicast groups that its leaf subnetworks require, it then use a multicast  routing protocol to communicate with other routers to ensure that the correct multicast group traffic is delivered from the source.
Routers maintain an IGMP multicast group table for each interface.
IGMP Host Membership Reports and Host Membership Queries, are sent with a TTL of 1. The default query interval is 125 seconds. The default response interval is 10 seconds.

Querier Election
In a multi-access network there may be more than one router that is IGMP enabled. Only one
multicast querier (router) can exist for each LAN at a time. So, there needs to be an election to determine which router becomes the IGMP querier.
IGMP v1 does not have an election mechanism and relies on the routing protocol to select a designated router.
IGMP v2 uses a General Query message on start-up. When routers receive the General Query messages they compare the source IP address with their own. The router with the lowest IP address is elected the IGMP querier. General query messages are sent to the all-routers multicast group using address 224.0.0.2.


Sunday, January 29, 2017

PIM Sparse Mode

PIM Sparse Mode Overview
Protocol Independent Multicast (PIM) is the de-facto standard for routing multicast traffic over the Internet. PIM does not depend on a particular unicast routing protocol for its operation. Also, it does not have any mechanism of its own for route discovery. PIM operation is based on the routing table being populated by another routing protocol, or by the user. This provides flexibility in routing unicast and multicast traffic based on a common database. PIM has two flavors, sparse and dense mode, that are deployed in different topologies. These two flavors, called PIM-SM and PIM-DM, are different in operation. PIM-SM is based on a "join protocol", where traffic is not forwarded on a segment unless an explicit request originates (typically through IGMP) from the network segment. PIM-DM is based on a "flood and prune" mechanism, where everyone receives traffic until they explicitly inform (through the PIM-DM prune mechanism) that they do not want that particular stream. Thus, PIM-DM is typically deployed in topologies where listeners are densely populated. And PIM-SM is typically deployed where the receivers are sparsely populated over the network, so that most of the network segments’ bandwidth is conserved. You can configure dense mode or sparse mode on a per-interface basis. After they are enabled, some interfaces can run dense mode, while others run sparse mode.

PIM-SM is an explicit join and prune protocol, which means that multicast receivers, and the routers that support them, must join multicast groups before they receive multicast traffic. When all receivers on a network branch leave a multicast group, that branch is pruned so that the multicast traffic does not continue to consume bandwidth on that branch. PIM-SM supports shared trees as well as shortest path trees (SPTs). PIM-SM is beneficial for large networks that have group members that are sparsely distributed.


PIM Sparse Mode Operation
Using PIM-SM, the router sends a join message to the rendezvous point (RP). The RP is a central multicast router that is responsible for receiving and distributing the initial multicast packets. You can configure a dynamic or static RP.

Use the below command to verify the RP information and RP unicast routing information.
# Mapping of RP and Group information verification. #
* FHR.4 # sh pim rp-set
Group           Mask            C-RP            Origin    Priority  Timeout   
239.1.1.1       255.255.255.255 2.2.2.2         Bootstrap 254       90  
     
* FHR.5 # sh pim rp-set 239.1.1.1
Group           Mask            C-RP            Origin    Priority  Timeout   
239.1.1.1       255.255.255.255 2.2.2.2         Bootstrap 254       146       
        Elected RP is 2.2.2.2

# Verification of unicast routing for RP #
* FHR.6 # rtlookup 2.2.2.2
Ori  Destination        Gateway         Mtr  Flags         VLAN       Duration
#oa  2.2.2.2/32         192.168.102.1   14   UG-D---um--f- A102       3d:22h:5m:20s



When there is multicast traffic from directly connected senders into routers (FHR: First Hop Router), the router elected as PIM Designated Router,  one with highest IP address, has responsibility of transporting the received multicast traffic into RP so that end receiver can receive the traffic.  PIM DR router encapsulates the original multicast packet in a unicast message and sends it to the RP. The RP decapsulates the multicast packet and distributes it among all PIM member routers.

Use the below command to verify the source registration in RP.
# FHR is indicating that it is unicasting “Source Register” messages to the RP and receiving “Source Register Stop” messages from RP as well. #
* FHR.3 # show pim
PIM Enabled, Version 2
PIM CRP Disabled
BSR state           : ACCEPT_PREFERRED ; BSR Hash Mask : 255.255.255.252
Current BSR Info    : 2.2.2.2 (Priority 254) expires after 83 sec
Configured BSR Info : 0.0.0.0 (Priority 0)
CRP Adv Interval    : 60 sec ; CRP Holdtime: 150
BSR Interval        : 60 sec ; BSR Timeout : 130
Cache Timer         : 210 sec ; Prune Timer : 210
Assert Timeout      : 210 sec ; Register Suppression Timeout,Probe: 60, 5
Generation Id       : 0x5425aebf      Dense Neighbor Check : On
PIM-DM State Refresh TTL                  : 16
PIM-DM State Refresh Source Active Timer  : 210
PIM-DM State Refresh Origination Interval : 60
Threshold for Last Hop Routers: 0 kbps
Threshold for RP              : 0 kbps
Register-Rate-Limit-Interval  : Always active
PIM SSM address range         : None
PIM Register Policy           : None
PIM Register Policy RP        : None
PIM IP Route Sharing          : Enabled
PIM IP Route Sharing Hash     : Source-Group
Register Checksum to exclude data
Active Sparse Ckts 12 Dense Ckts 0 State Refresh Ckts 0

 Global Packet Statistics ( In              Out             Drop )
 C-RP-Advs                  0               0               0              
 Registers                  0               3246783         0              
 RegisterStops              5253917         0               0                 

# Correspondently RP is indicating that it is receiving and sending “Source Register” and “Source Register Stop” messages. #
RP.10 # sh pim
PIM Enabled, Version 2
PIM CRP Enabled on 1 interfaces
BSR state           : ELECTED ; BSR Hash Mask : 255.255.255.252
Current BSR Info    : 2.2.2.2 (Priority 254) expires after 51 sec
Configured BSR Info : 2.2.2.2 (Priority 254) in vlan ALO
CRP Adv Interval    : 60 sec ; CRP Holdtime: 150
BSR Interval        : 60 sec ; BSR Timeout : 130
Cache Timer         : 210 sec ; Prune Timer : 210
Assert Timeout      : 210 sec ; Register Suppression Timeout,Probe: 60, 5
Generation Id       : 0x5425b02e      Dense Neighbor Check : On
PIM-DM State Refresh TTL                  : 16
PIM-DM State Refresh Source Active Timer  : 210
PIM-DM State Refresh Origination Interval : 60
Threshold for Last Hop Routers: 0 kbps
Threshold for RP              : 0 kbps
Register-Rate-Limit-Interval  : Always active
PIM SSM address range         : None
PIM Register Policy           : None
PIM Register Policy RP        : None
PIM IP Route Sharing          : Enabled
PIM IP Route Sharing Hash     : Source-Group
Register Checksum to exclude data
Active Sparse Ckts 9 Dense Ckts 0 State Refresh Ckts 0

 Global Packet Statistics ( In              Out             Drop )
 C-RP-Advs                  5405            5405            0              
 Registers                  491365962       0               0              
 RegisterStops              0               5151321         0           


When a router determines that the multicast rate has exceeded a configured threshold, that router can send an explicit join to the originating router. In EXOS, SPT cutover threshold is 0 kbps by default which means RP and LHR(Last Hop Router) will switch to SPT right after first multicast packets from the source.

# SPT Threshold #
RP.10 # sh pim
PIM Enabled, Version 2
PIM CRP Enabled on 1 interfaces
BSR state           : ELECTED ; BSR Hash Mask : 255.255.255.252
Current BSR Info    : 2.2.2.2 (Priority 254) expires after 51 sec
Configured BSR Info : 2.2.2.2 (Priority 254) in vlan ALO
CRP Adv Interval    : 60 sec ; CRP Holdtime: 150
BSR Interval        : 60 sec ; BSR Timeout : 130
Cache Timer         : 210 sec ; Prune Timer : 210
Assert Timeout      : 210 sec ; Register Suppression Timeout,Probe: 60, 5
Generation Id       : 0x5425b02e      Dense Neighbor Check : On
PIM-DM State Refresh TTL                  : 16
PIM-DM State Refresh Source Active Timer  : 210
PIM-DM State Refresh Origination Interval : 60
Threshold for Last Hop Routers: 0 kbps
Threshold for RP              : 0 kbps
Register-Rate-Limit-Interval  : Always active
PIM SSM address range         : None
PIM Register Policy           : None
PIM Register Policy RP        : None
PIM IP Route Sharing          : Enabled
PIM IP Route Sharing Hash     : Source-Group
Register Checksum to exclude data
Active Sparse Ckts 9 Dense Ckts 0 State Refresh Ckts 0

 Global Packet Statistics ( In              Out             Drop )
 C-RP-Advs                  5405            5405            0              
 Registers                  491365962       0               0              
 RegisterStops              0               5151321         0              

When this occurs, the receiving router gets the multicast directly from the sending router and bypasses the RP.

# FHR is now transmitting native multicast stream via SPT consisting of vlan A102 with flags FW(Forward), SM(Sparse Mode) and S ((s,g) received). #
*FHR.3 # sh pim cache 239.1.1.1 192.168.91.2
Index  Dest Group      Source             InVlan   Origin
[0001] 239.1.1.1       192.168.91.2 (S)   A991     Sparse         
      Expires after 194 secs UpstNbr: 0.0.0.0
      RP: 2.2.2.2 via 192.168.102.1 in A102
      EgressIfList =  A102(193)(FW)(SM)(S)


# IR has (S,G) entry in its own PIM cache as well and please see InVlan for RPF check and EgressIfList for SPT based on the unicast routing information. #
*IR.4 # sh pim cache 239.1.1.1 192.168.91.2
Index  Dest Group      Source             InVlan   Origin
[0001] 239.1.1.1       192.168.91.2 (S)   A102     Sparse         
      Expires after 194 secs UpstNbr: 192.168.201.2
      RP: 2.2.2.2 via 192.168.102.1 in A102
      EgressIfList =  A201(192)(FW)(SM)(S)

Understanding PIM Trees
In PIM-SM, there are two different trees built upon receiver’s request to join (igmp)/source registration. and PIM join for the shortest path to the source. The first tree is called RPT (Rendezvous Point Tree) which is rooted at RP and the second tree is SPT (Shortest Path Tree) rooted at source - FHR(First Hop Router). We’ll have a look at the two different phases to find out how it is expected in EXOS.

- Verification of RPT
o Recievers at LHR
LHR (Last Hop Router) joins the shared tree towards the RP regardless of multicast existence. RP and LHR always maintains this status as long as there are receivers. “EgressIfList” is indicating where the receivers are located and “InVlan” is the path toward the RP in this case.


# Check out whether there are receivers using IGMP at access vlans. #
LHR.17 # show igmp  vlan "A100"
Query Interval    :    125 sec
Max Response Time :     10 sec
Last Member Query :      1 sec
Robustness        :      2

Interface on VLAN A100 is enabled and up.
   inet 100.100.100.1/24
   Locally registered multicast addresses:
       224.0.0.2          224.0.0.13         224.0.0.22         
   Learned multicast addresses(Last Querier=100.100.100.1):
       239.1.1.1(s)       

       s = static igmp member

   Flags:
       IP Fwding YES       IPmc Fwding YES            IGMP YES
        IGMP Ver  V2          Snooping YES     Proxy Query YES
     XmitRtrAlrt YES     RcvRtrAlrtReq  NO
LHR.17 # show igmp vlan "A100"
Query Interval    :    125 sec
Max Response Time :     10 sec
Last Member Query :      1 sec
Robustness        :      2

Interface on VLAN A100 is enabled and up.
   inet 100.100.100.1/24
   Locally registered multicast addresses:
       224.0.0.2          224.0.0.13         224.0.0.22         
   Learned multicast addresses(Last Querier=100.100.100.1):
       239.1.1.1(s)       

       s = static igmp member

   Flags:
       IP Fwding YES       IPmc Fwding YES            IGMP YES
        IGMP Ver  V2          Snooping YES     Proxy Query YES
     XmitRtrAlrt YES     RcvRtrAlrtReq  NO
LHR.18 # show igmp group 239.1.1.1
Group Address     Ver Vlan            Port     Age  
239.1.1.1(s)      2   A100            1        0    

Total: 1

# There should be (*,G) status in LHR as long as there are receivers for the group. #
LHR.21 # show pim cache detail
Index  Dest Group      Source             InVlan   Origin
[0000] 239.1.1.1       2.2.2.2 (WR)       A201     Sparse         
      Entry timer is not run; UpstNbr: 192.168.201.2
      EgressIfList =  A100(0)(FW)(SM)(I)


Number of multicast cache = 1

Entry flags :-
        R: RP tree. S: Source tree. W: Any source.
Egress/Pruned interface flags :-
       SM: Sparse Mode           DM: Dense Mode
       Fw: Forwarding            PP: Prune pending
       AL: Assert Loser           N: Neighbor present
        I: IGMP member present    S: (s,g) join received
        Z: (*,g) join received    Y: (*,*,rp) join received

o RP
At RP, there should be (*, G) status like LHR as long as there are receivers regardless of multicast stream existence in the network.
# There should be (*,G) status in RP even if there is no multicast stream from the source. #
RP.12 # sh pim cach detail
Index  Dest Group      Source             InVlan   Origin
[0000] 239.1.1.1       2.2.2.2 (WR)       (null)   Sparse         
      Expires after 170 secs UpstNbr: 0.0.0.0
      EgressIfList =  A201(169)(FW)(SM)(Z)


Number of multicast cache = 1

Entry flags :-
        R: RP tree. S: Source tree. W: Any source.
Egress/Pruned interface flags :-
       SM: Sparse Mode           DM: Dense Mode
       Fw: Forwarding            PP: Prune pending
       AL: Assert Loser           N: Neighbor present
        I: IGMP member present    S: (s,g) join received
        Z: (*,g) join received    Y: (*,*,rp) join received

# There is no (*,G) status in FHR indicating no multicast stream initiated. #
* FHR.12 # show pim cache
Index  Dest Group      Source             InVlan   Origin

Number of multicast cache = 0

Entry flags :-
        R: RP tree. S: Source tree. W: Any source.
Egress/Pruned interface flags :-
       SM: Sparse Mode           DM: Dense Mode
       Fw: Forwarding            PP: Prune pending
       AL: Assert Loser           N: Neighbor present
        I: IGMP member present    S: (s,g) join received
        Z: (*,g) join received    Y: (*,*,rp) join received


- Verification of SPT
o at FHR
FHR (First Hop Router) initiating multicast stream by registering the source like capture.

# FHR is initiating multicast and registering source to RP. #
* FHR.15 # sh pim
PIM Enabled, Version 2
PIM CRP Disabled
BSR state           : ACCEPT_PREFERRED ; BSR Hash Mask : 255.255.255.252
Current BSR Info    : 2.2.2.2 (Priority 254) expires after 122 sec
Configured BSR Info : 0.0.0.0 (Priority 0)
CRP Adv Interval    : 60 sec ; CRP Holdtime: 150
BSR Interval        : 60 sec ; BSR Timeout : 130
Cache Timer         : 210 sec ; Prune Timer : 210
Assert Timeout      : 210 sec ; Register Suppression Timeout,Probe: 60, 5
Generation Id       : 0x5425aebf      Dense Neighbor Check : On
PIM-DM State Refresh TTL                  : 16
PIM-DM State Refresh Source Active Timer  : 210
PIM-DM State Refresh Origination Interval : 60
Threshold for Last Hop Routers: 0 kbps
Threshold for RP              : 0 kbps
Register-Rate-Limit-Interval  : Always active
PIM SSM address range         : None
PIM Register Policy           : None
PIM Register Policy RP        : None
PIM IP Route Sharing          : Enabled
PIM IP Route Sharing Hash     : Source-Group
Register Checksum to exclude data
Active Sparse Ckts 12 Dense Ckts 0 State Refresh Ckts 0

 Global Packet Statistics ( In              Out             Drop )
 C-RP-Advs                  0               0               0              
 Registers                  0               1               0              
RegisterStops              1               0               0           

# RP is now registering source of (239.1.1.1) which is 192.168.91.2. #
RP.10 # sh pim
PIM Enabled, Version 2
PIM CRP Enabled on 1 interfaces
BSR state           : ELECTED ; BSR Hash Mask : 255.255.255.252
Current BSR Info    : 2.2.2.2 (Priority 254) expires after 13 sec
Configured BSR Info : 2.2.2.2 (Priority 254) in vlan ALO
CRP Adv Interval    : 60 sec ; CRP Holdtime: 150
BSR Interval        : 60 sec ; BSR Timeout : 130
Cache Timer         : 210 sec ; Prune Timer : 210
Assert Timeout      : 210 sec ; Register Suppression Timeout,Probe: 60, 5
Generation Id       : 0x5425b02e      Dense Neighbor Check : On
PIM-DM State Refresh TTL                  : 16
PIM-DM State Refresh Source Active Timer  : 210
PIM-DM State Refresh Origination Interval : 60
Threshold for Last Hop Routers: 0 kbps
Threshold for RP              : 0 kbps
Register-Rate-Limit-Interval  : Always active
PIM SSM address range         : None
PIM Register Policy           : None
PIM Register Policy RP        : None
PIM IP Route Sharing          : Enabled
PIM IP Route Sharing Hash     : Source-Group
Register Checksum to exclude data
Active Sparse Ckts 9 Dense Ckts 0 State Refresh Ckts 0

 Global Packet Statistics ( In              Out             Drop )
 C-RP-Advs                  1               1               0              
 Registers                  2               0               0              
 RegisterStops              0               1               0         

o at FHR, RP and LHR
There are PIM cache created for group and source such as 239.1.1.1 and 192.168.91.2
LHR.7 # show pim cache 239.1.1.1 192.168.91.2
Index  Dest Group      Source             InVlan   Origin
[0001] 239.1.1.1       192.168.91.2 (S)   A202     Sparse         
      Expires after 15 secs UpstNbr: 192.168.202.2
      RP: 2.2.2.2 via 192.168.201.2 in A201
      EgressIfList =  A100(0)(FW)(SM)(I)


Number of multicast cache = 2

Entry flags :-
        R: RP tree. S: Source tree. W: Any source.
Egress/Pruned interface flags :-
       SM: Sparse Mode           DM: Dense Mode
       Fw: Forwarding            PP: Prune pending
       AL: Assert Loser           N: Neighbor present
        I: IGMP member present    S: (s,g) join received
        Z: (*,g) join received    Y: (*,*,rp) join received

RP.11 # show pim cache 239.1.1.1 192.168.91.2
Index  Dest Group      Source             InVlan   Origin
[0001] 239.1.1.1       192.168.91.2 (S)   A102     Sparse         
      Expires after 203 secs UpstNbr: 192.168.102.2
      RP: 2.2.2.2 via 0.0.0.0 in (null)
      EgressIfList =  A202(171)(FW)(SM)(S)


Number of multicast cache = 2

Entry flags :-
        R: RP tree. S: Source tree. W: Any source.
Egress/Pruned interface flags :-
       SM: Sparse Mode           DM: Dense Mode
       Fw: Forwarding            PP: Prune pending
       AL: Assert Loser           N: Neighbor present
        I: IGMP member present    S: (s,g) join received
        Z: (*,g) join received    Y: (*,*,rp) join received

* FHR.17 # show pim cache 239.1.1.1 192.168.91.2
Index  Dest Group      Source             InVlan   Origin
[0001] 239.1.1.1       192.168.91.2 (S)   A991     Sparse         
      Expires after 156 secs UpstNbr: 0.0.0.0
      RP: 2.2.2.2 via 192.168.102.1 in A102
      EgressIfList =  A102(155)(FW)(SM)(S)


Number of multicast cache = 2

Entry flags :-
        R: RP tree. S: Source tree. W: Any source.
Egress/Pruned interface flags :-
       SM: Sparse Mode           DM: Dense Mode
       Fw: Forwarding            PP: Prune pending
       AL: Assert Loser           N: Neighbor present
        I: IGMP member present    S: (s,g) join received
        Z: (*,g) join received    Y: (*,*,rp) join received