GRA Definitions:- RA - GRA router alert table - modified only by protocol code (e.g. PGM, Watercasting) SP - GRA SSP entry table - records registered GRA state. SSP data - State Setup Packets which setup and refresh GRA state in routers MIP data - Method Invocation Packets which invoke protocol specific services on GRA routers From Sender:- 1. System receives ODATA packet. Looks in RA table for packet type. No entry, establishes that it is normal data and uses default multicast handling code. Does multicast address lookup and forwards data on all multicast group member interfaces. 2. System receives SSP packet. Looks in RA table for data type. Checks to see if session is already registered in SP table. if TRUE - system checks upstream GRA next hop info. Updates if changed, and resets timer. if FALSE - system creates session entry. Records upstream GRA hop and starts timer. System replaces SSP Path NLA with its own IP address and forwards SSP on all multicast group member interfaces. 3. System receives RDATA packet. Looks in RA table for data entry, looks for packet seq_no, src and group ID. if TRUE - system passes data pointer to PGM code:- #PGM code checks Repair Sub-Tree table for entry requesting #RDATA. Forwards data on all registered interfaces under table #entry. #PGM handler deletes Repair Sub-Tree entry. system deletes RA entry. if FALSE - system discards RDATA packet. 4. System receives MIP packet. Looks in RA table for data entry. Looks in SP table to check if session is registered. if TRUE - System passes data pointer to listed protocol handler in data packet. #Protocol handler processes data and updates GRA alert #table as necessary. if FALSE - MIP packet is discarded 5. System receives GRA NCF data in response to GRA NAK received at sender. Looks in RA table for data entry. Looks in SP table for session entry. if TRUE - System passes data pointer to GRA/NCF protocol handler. Pointer is then handled by generic NCF code. #NCF code checks for NAK entry in Repair Sub-tree table #if included updates NCF field for NAK entry. #NCF is discarded. if FALSE - GRA data is discarded. 6. System receives PGM NCF data in response to PGM NAK received at sender. Checks Router Alert Table for data alert entry. Passes data pointer to PGM handling code. Looks in Session State table for session entry. if TRUE - Looks for NAK request entry. if TRUE - Marks NCF received field. This in turn will stop retransmission of NAKs if still going.. if FALSE - NCF is discarded if FALSE - PGM data is discarded. From Receiver:- 7. System receives MIP NAK packet. Looks in RA table for data entry. Looks in GRA session table to check if session is registered. if TRUE - System passes data pointer to listed protocol handler in data packet. #Protocol handler, processes data and updates relevant GRA alert #table entry to look for NCF packet. #Does lookup to see if there is a Repair Sub-tree table entry for #that packet Sequence No.:- if TRUE - system discards NAK. Checks to see if incoming packet interface is already registered in table entry. if FALSE - system creates entry in Repair Sub-tree table including:- PACKET_SEQ_NO INTERFACE ID System does GRA upstream source path element lookup in Session State table and propagates NAK to upstream element. System begins retransmit request thread:- BEGIN TIMER TIMER INTERRUPT Check to see if Repair Sub-tree table entry NCF entry is updated if TRUE - Resend NAK. Repeat loop. if FALSE - Kill thread Multicast NCF on same interface as NAK was received. if FALSE - System discards data. 8. System receives unicast PGM NAK. Checks Router Alert Table for data alert entry. if TRUE - pass to PGM handling code Does lookup to see if there is a Repair Sub-tree table entry for that packet Sequence No.:- if TRUE - system discards NAK. Checks to see if incoming packet interface is already registered in table entry. if FALSE - updates table entry with additional requesting interface ID. if FALSE - system creates entry in Repair Sub-tree table including:- PACKET_SEQ_NO INTERFACE ID System does PGM upstream source path element lookup in Session State table and propagates NAK to upstream element. System begins retransmit request thread:- BEGIN TIMER TIMER INTERRUPT Check to see if Repair Sub-tree table entry NCF entry is updated if TRUE - Resend NAK. Repeat loop. if FALSE - Kill thread Multicast NCF on same interface as NAK was received. From Network Element:- 9. System receives ODATA packet. Reads packet code and checks in router alert table. Establishes that it is normal data. Does multicast address lookup and forwards data on all multicast group member interfaces. 10. System receives SSP packet. Checks source and group IDs to see if it is already registered. if TRUE - system checks upstream GRA next hop info in Session State table. Updates if changed. if FALSE - system creates session entry. Records upstream GRA hop. System replaces SSP Path NLA with its own IP address and forwards SSP on all multicast group member interfaces. 11. System receives PGM SPM packet. Checks Router Alert table to see if packet type is registered. Passes data pointer to PGM handling code. Checks TSI to see if it is already registered. if TRUE - system checks upstream PGM next hop info in Session State table. Updates if changed. Resets timer. if FALSE - system creates session entry. Records upstream PGM hop. System replaces SPM Path NLA with its own IP address and forwards SPM on all multicast group member interfaces. 12. System receives unicast GRA NAK. Checks RA table to see if data alert is present. if TRUE - Passes data pointer to NAK handling code. Does lookup to see if there is a Repair Sub-tree table entry for that packet Sequence No.:- if TRUE - system discards NAK. Checks to see if incoming packet interface is already registered in table entry. Updates if necessary. if FALSE - creates table entry including:- PACKET_SEQ_NO INTERFACE ID System does GRA upstream source path element lookup in Session State table and propagates NAK to upstream element. System begins retransmit request thread:- BEGIN TIMER TIMER INTERRUPT Check to see if Repair Sub-tree table entry NCF entry is updated if TRUE - Resend NAK. Repeat loop. if FALSE - Kill thread Multicast NCF on same interface as NAK was received. if FALSE - System discards packet 13. System receives unicast PGM NAK. Does lookup in Router Alert table to see if data type is listed. if TRUE - pass to PGM handling code Does lookup to see if there is a Repair Sub-tree table entry for that packet Sequence No.:- if TRUE - system discards NAK. Checks to see if incoming packet interface is already registered in table entry. if FALSE - updates table entry with additional requesting interface ID. if FALSE - system creates entry in Repair Sub-tree table including:- PACKET_SEQ_NO INTERFACE ID System does PGM upstream source path element lookup in Session State table and propagates NAK to upstream element. System begins retransmit request thread:- BEGIN TIMER TIMER INTERRUPT Check to see if Repair Sub-tree table entry NCF entry is updated if TRUE - Resend NAK. Repeat loop. if FALSE - Kill thread Multicast NCF on same interface as NAK was received. 14. System receives GRA NCF data. Looks in RA table for data entry. Looks in SP table for session entry. if TRUE - System passes data pointer to GRA/NCF protocol handler. Pointer is then handled by generic NCF code. #NCF code checks for NAK entry in Repair Sub-tree table #if included updates NCF field for NAK entry. #NCF is discarded. if FALSE - GRA data is discarded.