Table Of Contents
Supported Standards, MIBs, and RFCs
Monitoring and Maintaining PGM Router Assist
PGM Router Assist
This feature module describes the PGM Router Assist feature. It includes the following sections:
•Supported Standards, MIBs, and RFCs
•Monitoring and Maintaining PGM Router Assist
Feature Overview
PGM Router Assist is a feature that allows Cisco routers to support the optimal operation of Pragmatic General Multicast (PGM). The PGM Reliable Transport Protocol itself is implemented on the customer's hosts.
PGM is a reliable multicast transport protocol for applications that require ordered, duplicate-free, multicast data delivery from multiple sources to multiple receivers. PGM guarantees that a receiver in a multicast group either receives all data packets from transmissions and retransmissions, or can detect unrecoverable data packet loss. PGM is intended as a solution for multicast applications with basic reliability requirements. It is network-layer independent; the Cisco implementation of PGM Router Assist supports PGM over IP.
This feature uses a transport session identifier (TSI) that identifies a particular PGM session.
Benefits
Saves Bandwidth
The PGM Router Assist feature saves bandwidth by substantially reducing the number of negative acknowledgments (NAKs) to the source and by constraining the retransmissions to only those receivers that experience data loss.
Improves PGM Efficiency
The PGM Router Assist feature is not absolutely required for hosts that implement PGM, but PGM operates optimally in conjunction with routers that have this feature enabled.
Restrictions
Configuring this feature on an interface causes the router to maintain PGM retransmit state on that interface. The amount of memory consumed by that state depends on the loss characteristics of the network.
Related Documents
For information on PGM Reliable Transport Protocol, refer to the Internet Draft "PGM Reliable Transport Protocol Specification" at http://www.ietf.org/internet-drafts/draft-speakman-pgm-spec-03.txt.
Supported Platforms
•Cisco 1600 series
•Cisco 2500 series
•Cisco 2600 series
•Cisco 3600 series
•Cisco 3800 series
•Cisco 4000 series (Cisco 4000, 4000-M, 4500, 4500-M, 4700, 4700-M)
•Cisco 7200 series
•Cisco 7500 series
•Cisco 12000 series
Supported Standards, MIBs, and RFCs
MIBs
No new or modified MIBs are supported by this feature.
For descriptions of supported MIBs and how to use MIBs, see the Cisco MIB web site on CCO at http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml.
RFCs
None
Standards
None
Prerequisites
Before you enable the PGM Router Assist feature, the following must be in place:
•PGM Reliable Transport Protocol must be implemented on hosts connected to your network.
•IP multicast must be configured on the router where you will enable PGM Router Assist.
•PIM must be configured on each PGM interface.
Configuration Tasks
When this feature is enabled on an interface, the router optimizes PGM by reducing the number of NAKs and by constraining the number of retransmissions. To enable this feature, use the following command:
Command PurposeRouter(config-if)# ip pgm router
Enables the router to assist PGM on this interface in order for PGM to run optimally.
Verifying PGM Router Assist
You can confirm that the PGM Router Assist feature is configured by issuing the show ip pgm router command. However, there might not be any active traffic.
To see whether an interface is actively using PGM, use the show ip pgm router state or show ip pgm router traffic command.
Monitoring and Maintaining PGM Router Assist
Configuration Example
In the following example, PGM Router Assist is configured on Ethernet interfaces 0 and 1:
ip multicast-routinginterface ethernet 0ip pim sparse-dense-modeip pgm routerinterface ethernet 1ip pim sparse-dense-modeip pgm routerCommand Reference
This section documents new commands related to the PGM Router Assist feature. All other commands used with this feature are documented in the Cisco IOS Release 12.0 command references.
In Cisco IOS Release 12.0(1)T or later, you can search and filter the output for show and more commands. This functionality is useful when you need to sort through large amounts of output, or if you want to exclude output that you do not need to see.
To use this functionality, enter a show or more command followed by the "pipe" character (|), one of the keywords begin, include, or exclude, and an expression that you want to search or filter on:
command | {begin | include | exclude} regular-expression
Following is an example of the show atm vc command in which you want the command output to begin with the first line where the expression "PeakRate" appears:
show atm vc | begin PeakRate
For more information on the search and filter functionality, refer to the Cisco IOS Release 12.0(1)T feature module entitled CLI String Search.
clear ip pgm router
To clear PGM traffic statistics, use the clear ip pgm router EXEC command.
clear ip pgm router [[traffic [type number]] | [rtx-state [group-address]]]
Syntax Description
Command Modes
EXEC
Command History
Usage Guidelines
This command should be used only in rare cases or during debugging. Normally, the retransmit state memory is freed automatically when the information is no longer useful. Also, using this command briefly confuses the normal PGM behavior.
A reason to clear traffic statistics is to make diagnostic testing easier.
A reason to clear state might be to free the memory consumed by such state. PGM retransmit state times out if no traffic keeps it alive.
Examples
The following example clears all PGM retransmit state from the router:
clear ip pgm router rtx-stateRelated Commands
Command DescriptionEnables the PGM Router Assist feature.
Displays PGM traffic statistics and transport session identifier (TSI) state.
ip pgm router
To enable PGM Router Assist and thereby allow PGM to operate more efficiently on the router, use the ip pgm router interface configuration command. Use the no form of the command to disable PGM Router Assist for the interface.
ip pgm router
no ip pgm routerSyntax Description
This command has no arguments or keywords.
Defaults
PGM Router Assist is disabled for the interface.
Command Mode
Interface configuration
Command History
Usage Guidelines
This command is highly recommended for optimal deployment of PGM Reliable Transport Protocol on a host.
Examples
In the following example, PGM Router Assist is configured on Ethernet interfaces 0 and 1:
ip multicast-routinginterface ethernet 0ip pim sparse-dense-modeip pgm routerinterface ethernet 1ip pim sparse-dense-modeip pgm routerRelated Commands
show ip pgm router
To display PGM Reliable Transport Protocol state and statistics, use the show ip pgm router EXEC command.
show ip pgm router [[interface type number] | [state [group-address]] | [traffic [type number]]]
[verbose]Syntax Description
Command Modes
EXEC
Command History
Examples
The following is sample output of the show ip pgm router command with the interface keyword:
Router# show ip pgm router interfaceAddress Interface10.1.0.2 Ethernet1/0/010.3.0.2 Ethernet1/0/410.4.0.2 Ethernet1/0/510.2.0.2 Serial5/0describes the fields in the display.
The following is sample output of the show ip pgm router command with the traffic keyword:
Router# show ip pgm router trafficEthernet1/0/0NAKs received 2eliminated 1 (1 0 nomrte 0 noprty 0 err)NCFs transmitted 2 (2 cpy 0 err)RDATA forwarded 1SPMs forwarded 41Ethernet1/0/4Ethernet1/0/5NAKs forwarded 4 (4 dir 0 dlr)NCFs received 5 (4 1 ant 0 nul 0 rdir 0 rpf 0 pprty 0 noprty 0 err)RDATA received 9eliminated 1 (0 qck 1 oif)SPMs received 41used 41 (41 src 0 nbr 0 rpf)Serial5/0NAKs received 4eliminated 1 (1 0 nomrte 0 noprty 0 err)NCFs transmitted 4 (4 cpy 0 err)RDATA forwarded 7SPMs forwarded 41The following is sample output of the show ip pgm router command with the state verbose keywords. In this example, there hasn't been any loss in the receivers; the example shows router state before any NAKs for the sessions have been received. The first TSI represents a selective session. The second represents a session supporting parity with a TGSIZE of 16. The timer associated with each session is an idle timer; the TSI state is deleted when this timer expires.
Router# show ip pgm router state verboseTSI Group Neighbour TGSIZE0A0700C85555-1000 227.7.7.7 rpf/source N/A 00:04:250A0700C85555-2000 234.4.3.2 rpf/source 16 00:04:27The following example shows state after receivers have reported loss of certain packets. NAKs have been received for each of the two sessions above. After the loss, the router has state for the lost packets. The sqn 1990 indicates that a receiver lost a packet with sequence number 1990 and is requesting that it be resent.
Router# show ip pgm router state verboseTSI Group Neighbour TGSIZE0A0700C85555-1000 227.7.7.7 rpf/source N/A 00:04:55sqn 1990 age 4 ELIM TMREthernet1/0/0sqn 1991 age 5 (anticipated)0A0700C85555-2000 234.4.3.2 rpf/source 16 00:04:55sqn ( 125, 7) age 10Serial5/0 prty # 7For the selective TSI, the output shows retransmit state for sequence number 1990. This was created by a NAK received on Ethernet1/0/0. ELIM TMR indicates that the state is currently eliminating and any new NAKs for this sequence number will not be forwarded.
State shown for sequence 1991 is anticipated state, indicating that it was created by a NAK confirmation (NCF) for a NAK sent by some other PGM router with the same PGM upstream neighbor as this router.
For the TSI with parity, the state shown was created by a parity NAK for 7 packets of the Transmission Group 125. This was received on Serial5/0, #7 indicates that 7 parity packets must be forwarded out this interface.
Related Commands
Debug Commands
This section documents the new debug command related to the PGM Router Assist feature.
debug ip pgm router
To display debug messages for PGM, use the debug ip pgm router EXEC command. Use the no form of the command to disable debugging output.
[no] debug ip pgm router [spm | nak | data]
Syntax Description
Defaults
Debugging for PGM is is not enabled. If the debug ip pgm router command is used with no additional keywords, debugging is enabled for all PGM message types.
Command History
Examples
The following example shows output of the debug ip pgm router command:
Router# debug ip pgm routerSPM debugging is onNAK/NNAK/NCF debugging is onRDATA debugging is onThe following example shows output of the debug ip pgm router command with the spm keyword:
Router# debug ip pgm router spmPGM: Received SPM on Ethernet1/0/5 from 10.7.0.200 to 227.7.7.7 (52 bytes)SPM TSI 0A0700C85555-1000 data-dport 1001 csum CCCC tlen 52dsqn 3758096779 tsqn 1954 isqn 1979 lsqn 1990NLA 10.7.0.200SPM from source/RPF-neighbour 10.7.0.200 for 10.7.0.200 (SPT)Forwarded SPM from 10.7.0.200 to 227.7.7.7The following is a debug message for a selective SPM:
Router# debug ip pgm router spmPGM: Received SPM on Ethernet1/0/5 from 10.7.0.200 to 234.4.3.2 (52 bytes)SPM TSI 0A0700C85555-2000 data-dport 2001 csum CCCC tlen 52 Options P N Odsqn 3758096768 tsqn 1986 isqn 1994 lsqn 2006NLA 10.7.0.200SPM from source/RPF-neighbour 10.7.0.200 for 10.7.0.200 (SPT)Forwarded SPM from 10.7.0.200 to 227.7.7.7The "P N O" flags indicate which options are present in this packet.
•"P" indicates that this is a parity packet.
•"N" indicates options are network significant.
•"O" indicates options are present.
The following example shows output of the debug ip pgm router command with the nak keyword:
Router# debug ip pgm router nakPGM: Received NAK on Ethernet1/0/0 from 10.1.0.4 to 10.1.0.2 (36 bytes)NAK TSI 0A0700C85555-1000 data-dport 1001 csum CCCC tlen 36dsqn 1990 data source 10.7.0.200 group 227.7.7.7NAK unicast routed to RPF neighbour 10.4.0.1Forwarding NAK from 10.1.0.4 to 10.4.0.1 for 10.7.0.200PGM: Received NCF on Ethernet1/0/5 from 10.7.0.200 to 227.7.7.7 (36 bytes)NCF TSI 0A0700C85555-1000 data-dport 1001 csum CACC tlen 36dsqn 1990 data source 10.7.0.200 group 227.7.7.7NAK retx canceled for TSI 0A0700C85555-1000 dsqn 1990NAK elimination started for TSI 0A0700C85555-1000 dsqn 1990PGM: Received NCF on Ethernet1/0/5 from 10.7.0.200 to 227.7.7.7 (36 bytes)NCF TSI 0A0700C85555-1000 data-dport 1001 csum CACC tlen 36dsqn 1991 data source 10.7.0.200 group 227.7.7.7No NAK retx outstanding for TSI 0A0700C85555-1000 dsqn 1991NAK anticipated for TSI 0A0700C85555-1000 dsqn 1991The following example shows output of the debug ip pgm router command with the data keyword. The debug message is for an RDATA packet for which the router has only anticipated state, sqn 1991. Since it didn't actually get a NAK, this RDATA is not forwarded by the PGM router.
Router# debug ip pgm router dataPGM: Received RDATA on Ethernet1/0/5 from 10.7.0.200 to 227.7.7.7 (70 bytes)RDATA TSI 0A0700C85555-1000 data-dport 1001 csum CCCC tlen 32tsqn 1954 dsqn 1990Marking Ethernet1/0/0 for forwardingMarking Serial5/0 for skippingForwarded RDATA from 10.7.0.200 to 227.7.7.7Debug message for RDATA packet corresponding to a NAK for sqn1990. Since the NAK was received on Ethernet1/0/0, RDATA is forwardedout only that interface and another interface in the multicast olistSerial5/0 is skipped.PGM: Received RDATA on Ethernet1/0/5 from 10.7.0.200 to 227.7.7.7 (70 bytes)RDATA TSI 0A0700C85555-1000 data-dport 1001 csum CCCC tlen 32tsqn 1954 dsqn 1991Eliminated RDATA (null oif) from 10.7.0.200 to 227.7.7.7Related Commands
Command DescriptionClears PGM traffic statistics.
Enables the PGM Router Assist feature for the interface.
Displays PGM traffic statistics and TSI state.