The first PoP is made up of one LSR and two eLSRs. A BPX-8620 controlled switch and a Cisco 7204-based LSC (external controller) form the LSR. The two eLSRs are RPM/B cards in an MGX-8250 edge concentrator shelf. The PXM-1 controller card in the MGX edge concentrator connects to the BPX. The details of the setup are shown in Figure 6-4. Figure 6-4. BPX-8650- and MGX-8250-Based PoPWe will study this case in two main steps. First we'll look at the configuration steps to bring up the LSR, and then the steps to attach the eLSRs. ATM LSR Bringup: BPX + LSCWe start the configuration by upping and configuring the 3.1 trunk that connects the BPX to the LSC (see Example 6-1). That interface is the control interface. On the trunk configuration, using cnftrk, we will leave the statistical reserve non-null. Even though there is no CC traffic to protect, we will protect VSI protocol traffic. Example 6-1. Upping the Control Interface in a BPX-Based LSR P1-b8620 TN Cisco BPX 8620 9.3.30 Nov. 23 2001 14:47 GMT TRK Type Current Line Alarm Status Other End 3.1 OC3 Clear - OK - Last Command: uptrk 3.1 256 PVCs allocated. Use 'cnfrsrc' to configure PVCs Next Command: We define a partition on the control interface so that VSI has resources to control. In this resource partition, we leave no resources (LCN and bandwidth) for PVCs because we will have only VSI traffic and VSI-controlled MPLS traffic. From the three VSI partitions that the BXM card supports, we enable partition ID 1 for MPLS. See Example 6-2. Example 6-2. Creating a VSI Resource PartitionP1-b8620 TN Cisco BPX 8620 9.3.30 Nov. 23 2001 14:50 GMT Trunk : 3.1 Full Port Bandwidth: 353208 Maximum PVC LCNS: 0 Maximum PVC Bandwidth: 0 (Statistical Reserve: 5000) PVC VPI RANGE [1]: -1 /-1 PVC VPI RANGE [2]: -1 /-1 PVC VPI RANGE [3]: -1 /-1 PVC VPI RANGE [4]: -1 /-1 Partition : 1 2 3 Partition State : Enabled Disabled Disabled VSI LCNS (min/max): 500 /1000 0 /0 0 /0 VSI VPI (start/end): 1 /4 0 /0 0 /0 VSI BW (min/max): 348207 /348207 0 /0 0 /0 VSI ILMI Config: CLR CLR CLR Last Command: cnfrsrc 3.1 0 348207 y 1 e 500 1000 1 4 348207 348207 Next Command: NOTE Strictly speaking, a resource partition on the control interface is not needed to add the controller because VSI communication occurs on the VSI VCs. However, without a resource partition, VSI can't set up a cross-connect with a leg in the control interface (such as the private legs of the control-vcs) because it has no resources to control. At this point, interface 3.1 is in LOS alarm. We need to clear that alarm to proceed with adding the controller (see Example 6-3) so that we can move on to the LSC configuration. Example 6-3. Adding a Label Switch ControllerP1_LSC_c7204# P1_LSC_c7204#conf t Enter configuration commands, one per line. End with CNTL/Z. P1_LSC_c7204(config)#interface ATM 3/0 P1_LSC_c7204(config-if)#label-control-protocol vsi id 1 base-vc 0 40 P1_LSC_c7204(config-if)#no shutdown P1_LSC_c7204(config-if)# 18:02:14: %LINK-3-UPDOWN: Interface ATM3/0, changed state to up 18:02:15: %LINEPROTO-5-UPDOWN: Line protocol on Interface ATM3/0, changed state to up P1_LSC_c7204(config-if)#end P1_LSC_c7204# We use the interface-level command label-control-protocol to specify that this is an LSC and that VSI will be used to manage a controlled switch. In this case, we specify a controller ID of 1 and a base-vc for VSI communication of VPI/VCI = 0/40. The base-vc is the VPI/VCI value for slave 0. These are the LSC default values, and they need to match in the controlled switch. We are ready now to start VSI communication by adding the VSI controller. To do so, we go to the BPX and use the command addshelf with the VSI option, as shown in Example 6-4. Adding a VSI shelf means adding a VSI controller. Example 6-4. Starting VSI Communication from the BPX-8600P1-b8620 TN Cisco BPX 8620 9.3.30 Nov. 23 2001 15:01 GMT BPX 8620 Interface Shelf Information Trunk Name Type Part Id Ctrl Id Control_VC Alarm VPI VCIRange 3.1 VSI VSI 1 1 0 40-54 OK Last Command: addshelf 3.1 VSI 1 1 0 40 Shelf has been added Next Command: The addshelf command triggers the creation of the VSI virtual circuits (VCs), both master-slave and slave-to-slave VCs. The addshelf command also assigns resources in the LC-ATM interfaces to the specific controller. Mapping the partition ID to the controller ID does this. In this case, the controller with an ID of 1, which is the LSC, controls resource partition 1 in all interfaces. NOTE We could have selected any partition ID (1 to 3 in the BPX) and any controller ID. However, if we want to also run PNNI in the BPX, the service expansion shelf (SES) PNNI controller has a fixed controller ID of 2. We can check the controller configured in a BPX switch by using the command dspctrlrs. From the LSC, we can check the status of VSI communication using the command show controllers vsi, as shown in Example 6-5. Example 6-5. Showing the VSI SessionsP1_LSC_c7204#show controllers vsi session Interface Session VCD VPI/VCI Switch/Slave Ids Session State ATM3/0 0 1 0/40 0/0 UNKNOWN ATM3/0 1 2 0/41 0/0 UNKNOWN ATM3/0 2 3 0/42 0/3 ESTABLISHED ATM3/0 3 4 0/43 0/0 UNKNOWN ATM3/0 4 5 0/44 0/0 UNKNOWN ATM3/0 5 6 0/45 0/0 UNKNOWN ATM3/0 6 7 0/46 0/0 UNKNOWN ATM3/0 7 8 0/47 0/0 UNKNOWN ATM3/0 8 9 0/48 0/0 UNKNOWN ATM3/0 9 10 0/49 0/0 UNKNOWN ATM3/0 10 11 0/50 0/0 UNKNOWN ATM3/0 11 12 0/51 0/0 UNKNOWN ATM3/0 12 13 0/52 0/0 UNKNOWN ATM3/0 13 14 0/53 0/0 UNKNOWN P1_LSC_c7204# The parameter session displays all the VSI sessions that the VSI master maintains. In the state machine, ESTABLISHED is the last state for a discovered and active VSI slave. Because we know there's one VSI session per slave, slaves are also called sessions. We can also display all the session details by specifying the session number. Refer to Example 6-6. Example 6-6. Displaying the VSI Session DetailsP1_LSC_c7204#show controllers vsi session 2 Interface: ATM3/0 Session number: 2 VCD: 3 VPI/VCI: 0/42 Switch type: BPX Switch id: 0 Controller id: 1 Slave id: 3 Keepalive timer: 15 Powerup session id: 0x00000001 Cfg/act retry timer: 8/8 Active session id: 0x00000001 Max retries: 10 Ctrl port log intf: 0x00030100 ! LIN for 3.1 Trap window: 50 Max/actual cmd wndw: 21/21 Trap filter: all Max checksums: 79 Current VSI version: 2 Min/max VSI version: 2/2 Messages sent: 16 Inter-slave timer: 0.004 Messages received: 11 Messages outstanding: 0 P1_LSC_c7204# Session 2 is the only active session at this point. The field Switch/Slave Id is equal to 0/3. The switch ID is 0 and is meaningful only in multishelf slaves because VSI supports multishelf. The slave ID equals the slot number. NOTE The session state is ESTABLISHED for all active BXM cards or VSI slaves in general, even if they do not have resource partitions. The parameter descriptor shows the VSI logical interface details, including the Logical Interface Number (LIN), as shown in Example 6-7. The descriptor is an ASCII field in VSI interface messages that can be thought of as the interface's "name." Even though we can work with the 32-bit LIN, it's easier for humans to remember the ASCII descriptor. Example 6-7. Showing VSI Interface Partition Details by DescriptorP1_LSC_c7204#show controllers vsi descriptor Phys desc: 0.3.1.0 Log intf: 0x00030100 ! The slave resides in BXM Card in slot 3. Interface: switch control port IF status: n/a IFC state: ACTIVE Min VPI: 1 Maximum cell rate: 348207 Max VPI: 4 Available channels: 1000 Min VCI: 32 Available cell rate (forward): 348207 Max VCI: 65535 Available cell rate (backward): 348207 P1_LSC_c7204# Finally, we can also enable a debug to see the VSI messages, as shown in Example 6-8. Example 6-8. Debugging VSI Packets on a VSI Slave P1_LSC_c7204#debug vsi packets interface ATM 3/0 slave 2 VSI Master packet debugging is on Displaying packets on interface ATM3/0, selected slave(s) only P1_LSC_c7204# 00:35:12: VSI Master (session 2 on ATM3/0): sent msg SW GET CNFG CMD on 0/42 00:35:12: VSI Master (session 2 on ATM3/0): rcvd msg SW GET CNFG RSP on 0/42 00:35:27: VSI Master (session 2 on ATM3/0): sent msg SW GET CNFG CMD on 0/42 00:35:27: VSI Master (session 2 on ATM3/0): rcvd msg SW GET CNFG RSP on 0/42 00:35:42: VSI Master (session 2 on ATM3/0): sent msg SW GET CNFG CMD on 0/42 00:35:42: VSI Master (session 2 on ATM3/0): rcvd msg SW GET CNFG RSP on 0/42 P1_LSC_c7204# The VSI messages SW GET CNFG (switch get configuration) command and response are used as keepalives. As displayed in the VSI session details show command, the keepalive timer defaults to 15 seconds. NOTE The VSI channels in the controlled switch can be seen in the BPX-8650 and IGX-8400 platforms using the command dspvsich {Slot}. Both control-port msvc and interslav channels are displayed, with the local and remote slots. The next step is the basic MPLS configuration at the LSR (effectively at the LSC). In the initial MPLS configuration in the LSC, we enable Cisco Express Forwarding (CEF), we configure the label protocol to be LDP (as opposed to TDP), we give the LSR a loopback IP address, and we assign that loopback address to be the LDP router ID to provide LDP stability (see Example 6-9). Example 6-9. Initial MPLS LSC ConfigurationP1_LSC_c7204#conf t Enter configuration commands, one per line. End with CNTL/Z. P1_LSC_c7204(config)#ip cef P1_LSC_c7204(config)#mpls label protocol ? ldp Use LDP tdp Use TDP (default) P1_LSC_c7204(config)#mpls label protocol ldp P1_LSC_c7204(config)#interface loopback 0 P1_LSC_c7204(config-if)#ip address 172.27.1.1 255.255.255.255 P1_LSC_c7204(config-if)#exit P1_LSC_c7204(config)#mpls ldp router-id loopback 0 P1_LSC_c7204(config)#^Z P1_LSC_c7204# NOTE The global configuration command mpls label protocol ldp enables LDP in all the interfaces in the LSR. This command has an interface configuration mode as well, to enable TDP, LDP, or both on a per-interface basis. MGX-8250 eLSR ConfigurationNow that we have our MPLS LSR, we will attach the two eLSRs. We will first configure the LSR end of the links to the eLSRs. Then we will bring up the RPM/Bs as eLSRs. We are ready to configure the interfaces between LSR and eLSRs. As covered in Chapter 3, "Implementations and Platforms," we cannot partition resources in the PXM-1 controller card. Therefore, we will add Virtual Path Connections (VPCs) from the PXM-1 to the RPM/Bs and use VP-Tunnel LC-ATM interfaces. From the BPX side, we start by upping a virtual trunk, as shown in Example 6-10. Example 6-10. Upping a VP-Tunnel LC-ATM Interface P1-b8620 TN Cisco BPX 8620 9.3.30 Nov. 23 2001 15:30 GMT TRK Type Current Line Alarm Status Other End 3.1 OC3 Clear - OK VSI(VSI) 3.3.1 OC3 Clear - OK - Last Command: uptrk 3.3.1 256 PVCs allocated. Use 'cnfrsrc' to configure PVCs Next Command: We configure the trunk so that we set the statistical reserve to 0 and do not misuse bandwidth resources, as well as configure the virtual trunk's VPI number. For simplicity, we will use VPI=9 for the RPM/B in slot 9 and VPI=10 for the RPM/B in slot 10. See Example 6-11. Example 6-11. Configuring the VP-Tunnel from the BPX-8600 Controlled SwitchP1-b8620 TN Cisco BPX 8620 9.3.30 Nov. 23 2001 15:32 GMT TRK 3.3.1 Config OC3 [2867 cps] BXM slot: 3 Transmit Rate: 3000 VPC Conns disabled: -- Protocol By The Card: -- Line framing: STS-3C VC Shaping: No coding: -- Hdr Type NNI: No recv impedance: -- Statistical Reserve: 0 cps cable type: -- Idle code: 7F hex length: -- Connection Channels: 256 Pass sync: No Traffic:V,TS,NTS,FR,FST,CBR,N&RT-VBR,ABR Loop clock: No Restrict CC traffic: No HCS Masking: Yes Link type: Terrestrial Payload Scramble: Yes Routing Cost: 10 Frame Scramble: Yes F4 AIS Detection: No Vtrk Type / VPI: CBR / 9 Incremental CDV: 0 Deroute delay time: 0 seconds Last Command: cnftrk 3.3.1 3000 N 0 7F V,TS,NTS,FR,FST,CBR,NRT-VBR,ABR,RT-VBR N TERRESTRIAL 10 N 0 N N Y Y Y CBR 9 0 Next Command: Finally, we partition resources in the virtual trunk, setting the PVC LCNs to 0 (so as not to misuse LCN resources). We use partition ID = 1 because that's the one controlled by the LSC. Refer to Example 6-12. Example 6-12. Creating a Resource Partition in the BPX-8600P1-b8620 TN Cisco BPX 8620 9.3.30 Nov. 23 2001 15:33 GMT Virtual Trunk : 3.3.1 Full Port Bandwidth: 3000 Maximum PVC LCNS: 0 Maximum PVC Bandwidth: 0 (Statistical Reserve: 0) PVC VPI RANGE [1]: -1 /-1 PVC VPI RANGE [2]: -1 /-1 PVC VPI RANGE [3]: -1 /-1 PVC VPI RANGE [4]: -1 /-1 Partition : 1 2 3 Partition State : Enabled Disabled Disabled VSI LCNS (min/max): 256 /512 0 /0 0 /0 VSI VPI (start/end): 9 /9 9 /9 9 /9 VSI BW (min/max): 1400 /2867 0 /0 0 /0 VSI ILMI Config: CLR CLR CLR Last Command: cnfrsrc 3.3.1 0 0 y 1 e 256 512 9 9 1400 2867 Next Command: We can also check that we are using SCT 1 in this virtual trunk, using the command dspvsiif (see Example 6-13). SCT 1 is the default SCT and is an MPLS-only SCT. Example 6-13. Checking the Service Class Template in the BPX-8600 VSI SlavesP1-b8620 TN Cisco BPX 8620 9.3.30 Nov. 23 2001 15:34 GMT Virtual Trunk : 3.3.1 Service Class Template ID: 1 VSI Partitions : channels bw vpi Part E/D min max min max start end ilmi 1 E 256 512 1400 2867 9 9 D 2 D 0 0 0 0 9 9 D 3 D 0 0 0 0 9 9 D Last Command: dspvsiif 3.3.1 Next Command: From the LSC, we can see the just-added partition that is not yet bound to any extended MPLS interface, as shown in Example 6-14. Example 6-14. Showing the VSI Partition Details from the LSC by DescriptorP1_LSC_c7204#show controllers vsi descriptor Phys desc: 0.3.1.0 Log intf: 0x00030100 Interface: switch control port IF status: n/a IFC state: ACTIVE Min VPI: 1 Maximum cell rate: 348207 Max VPI: 4 Available channels: 1000 Min VCI: 32 Available cell rate (forward): 348207 Max VCI: 65535 Available cell rate (backward): 348207 Phys desc: 0.3.3.1 Log intf: 0x00030301 Interface: n/a IF status: n/a IFC state: ACTIVE Min VPI: 9 Maximum cell rate: 2867 Max VPI: 9 Available channels: 512 Min VCI: 32 Available cell rate (forward): 2867 Max VCI: 65535 Available cell rate (backward): 2867 P1_LSC_c7204# The LSC knows this because the VSI slave in the BXM card sent a VSI interface trap to the VSI master when we configured the resource partition. This is done so that the LSC is aware of the new virtual interface and its resources that it has to control. For the LSC to control those resources, we create an extended MPLS ATM interface (XTagATM), which is an extension of the physical interface's resources in the BPX switch. See Example 6-15. Example 6-15. Creating and Configuring an Extended MPLS Interface from the LSCP1_LSC_c7204#conf t Enter configuration commands, one per line. End with CNTL/Z. P1_LSC_c7204(config)#int XTagATM 331 P1_LSC_c7204(config-if)#mpls ip P1_LSC_c7204(config-if)#ip unnumbered loopback 0 P1_LSC_c7204(config-if)#extended-port ATM 3/0 bpx 3.3.1 P1_LSC_c7204(config-if)#end 18:38:56: %LINK-3-UPDOWN: Interface XTagATM331, changed state to up 18:38:57: %LINEPROTO-5-UPDOWN: Line protocol on Interface XTagATM331, changed state P1_LSC_c7204# After creating the XTagATM interface, we enable MPLS in it with mpls ip, unnumber the interface's IP address to the loopback IP address, and tell the XTagATM interface that is bound to port 3.3.1 in the controlled switch. NOTE Using unnumbered interfaces saves IP addresses as well as precious LCN resources because by default, MPLS sets up LVCs to all IP addresses in the global routing table. We can see that the VSI interface is bound to the XTagATM interface. See Example 6-16. Example 6-16. Displaying the VSI Controller StatusP1_LSC_c7204#show controllers vsi status Interface Name IF Status IFC State Physical Descriptor switch control port n/a ACTIVE 0.3.1.0 XTagATM331 up ACTIVE 0.3.3.1 P1_LSC_c7204# Finally, we need to configure an Interior Gateway Protocol (IGP) in our MPLS network. We choose OSPF with only the backbone area, as shown in Example 6-17. Example 6-17. Configuring the IGPP1_LSC_c7204(config)#router ospf 100 P1_LSC_c7204(config-router)#network 172.27.1.1 0.0.0.0 area 0 P1_LSC_c7204(config-router)#^Z P1_LSC_c7204# At this point we can begin the PE router side of the configuration. Portable AutoRoute (PAR) reigns in the MGX-8250 switch. PAR is the only control plane that manages the MGX-8250 switch resources. So we will assign the RPM resource partition to PAR and add the VPCs using PAR. This is the reason why we need a VP-Tunnel LC-ATM interface. As soon as PAR has learned the VPC from the RPMs to the PXM-1 uplink port and MPLS is configured, the MPLS control plane sets up LVCs (even though MPLS will not directly manage switch resources). That's the edge behavior in the architecture. We will start by adding the 7.2 line and port (so that the PAR controller manages the PAR If), as shown in Example 6-18. The line 7.1 will be used later, in the section "Adding an AutoRoute Control Plane." Example 6-18. Adding a PAR Interface to a Feeder Shelfm8250-7a.1.7.PXM.a > addln -sonet 7.2 m8250-7a.1.7.PXM.a > addport 2 2 100 0 4095 100 m8250-7a.1.7.PXM.a > dspports Port Status Line PctBw minVpi maxVpi maxRatePct ------------------------------------------------------ 2 ON 2 100 0 4095 100 m8250-7a.1.7.PXM.a > m8250-7a.1.7.PXM.a > dspparifs slot.port type status vpi vci txRate rxRate --------------------------------------------------------------------------------- 7.2 UNI_IF UP 0 to 4095 0 to 65535 353208 353208 7.33 UNI_IF UP 0 to 255 0 to 65535 176604 176604 7.34 UNI_IF UP 0 to 255 0 to 65535 176604 176604 7.35 CLK_IF FAILED 0 to 0 0 to 0 0 0 m8250-7a.1.7.PXM.a > Then we add the slave end of the VPC, as shown in Example 6-19. Example 6-19. Adding the VPC Slave Endpointm8250-7a.1.7.PXM.a > addcon 2 1 9 0 1 1 2 Connection ID: m8250-7a.0.2.9.0 m8250-7a.1.7.PXM.a > cnfupccbr 2.9.0 4 2867 10000 100 2867 100 m8250-7a.1.7.PXM.a > dspchans Chan Stat Intf locVpi locVci conTyp srvTyp PCR[0+1] Mst rmtVpi rmtVci State ---------------------------------------------------------------------------- 18 MOD 2 9 0 VPC CBR 2867 Slv N/A N/A normal m8250-7a.1.7.PXM.a > NOTE In an MGX-8250 feeder shelf, the command dspcons shows node-wide cross-connects that have a master endpoint, whereas the command dspchans shows per-card connection endpoint information for both master and slave endpoints. The rest of the configuration takes place on the RPM card. As mentioned, we start with the initial MPLS, CEF, and loopback configuration (see Example 6-20). Example 6-20. Initial MPLS ConfigurationPE_m8250_RPMB_9#conf t Enter configuration commands, one per line. End with CNTL/Z. PE_m8250_RPMB_9(config)#ip cef PE_m8250_RPMB_9(config)#interface loopback 0 PE_m8250_RPMB_9(config-if)#ip address 172.27.1.128 255.255.255.255 PE_m8250_RPMB_9(config-if)#exit PE_m8250_RPMB_9(config)#mpls ldp router-id loopback 0 PE_m8250_RPMB_9(config)#mpls label protocol ldp We add the PAR resource partition in the RPM to create the VP-Tunnel, as shown in Example 6-21. We assign all resources to PAR because it is the only control plane that directly controls MGX-8250 switch resources (and this is why the MGX-8250 supports only edge MPLS functionality). Example 6-21. Configuring the RPM PAR Resource PartitionPE_m8250_RPMB_9(config)#rpmrscprtn par 100 100 0 255 0 3840 4080 At this point, the RPM switch interface partition is visible to the PAR control plane in the MGX-8250. See Example 6-22. Example 6-22. Using the Command dspparifsm8250-7a.1.7.PXM.a > dspparifs slot.port type status vpi vci txRate rxRate --------------------------------------------------------------------------------- 7.1 FTRK_IF ADDED 0 to 4095 0 to 65535 353208 353208 7.2 UNI_IF UP 0 to 4095 0 to 65535 353208 353208 7.33 UNI_IF UP 0 to 255 0 to 65535 176604 176604 7.34 UNI_IF UP 0 to 255 0 to 65535 176604 176604 7.35 CLK_IF FAILED 0 to 0 0 to 0 0 0 9.1 UNI_IF UP 0 to 255 0 to 3840 353208 353208 m8250-7a.1.7.PXM.a > Subsequently, we configure an MPLS subinterface, where we enable MPLS, unnumber the IP address to the loopback, and configure the interface to be a VP-Tunnel with VPI=9 (see Example 6-23). Example 6-23. LC-ATM VP-Tunnel ConfigurationPE_m8250_RPMB_9(config)#interface switch 1.1 mpls PE_m8250_RPMB_9(config-subif)#mpls ip PE_m8250_RPMB_9(config-subif)#ip unnumbered loopback 0 PE_m8250_RPMB_9(config-subif)#atm pvc 9 9 0 aal5snap PE_m8250_RPMB_9(config-subif)#mpls atm vp-tunnel 9 PE_m8250_RPMB_9(config-subif)#exit At this stage, a valid question is, "Why do we need to configure the interface to be a VP-Tunnel in the PE and not in the LSC?" The answer would be, "Because the LSC runs VSI with the controlled switch." And when we configure a virtual trunk in the BPX switch, the LSC learns through VSI that the interface is VP-Tunnel. In the PE, we don't have MPLS partitions or VSI. Therefore, there's no mechanism for the PE to learn that the interface is a VP-Tunnel. In essence, a VP-Tunnel interface has two implications:
These ideas are expanded on in the section "A Note on LC-ATM Interfaces." Finally, as shown in Example 6-24, we add the master end of the PAR VPC and configure the IGP. Example 6-24. Adding the VPC Master EndpointPE_m8250_RPMB_9(config)#addcon vpc switch 1.1 9 rslot 0 2 9 master local PE_m8250_RPMB_9(config)#router ospf 100 PE_m8250_RPMB_9(config-router)#network 172.27.1.128 0.0.0.0 area 0 At this point, our P-PE LDP session should be up. We follow the same procedure to bring up the RPM in slot 10 as a second PE, and we also add a VPC and configure another MPLS subinterface as a VP-Tunnel between the two RPMs. The configuration of MPLS subinterface 1.2 connecting the two RPMs is equivalent to the configuration covered already. The only difference resides in the addcon vpc switch command, in which the remote slot is the other RPM's slot number. In the addcon vpc switch configuration, one RPM is set up as master local, and the other RPM is configured as master remote. This last step is a topology optimization. If that VPC is not there, traffic from one RPM to the other goes through the BPX. It's also a VPC-level redundancy implementation. LDP Session, Bindings, and LVC show CommandsWe can start by checking the MPLS interfaces. See Example 6-25. Example 6-25. Using the show mpls interfaces CommandP1_LSC_c7204#show mpls interfaces Interface IP Tunnel Operational XTagATM331 Yes (ldp) No Yes (ATM labels) XTagATM332 Yes (ldp) No Yes (ATM labels) P1_LSC_c7204# PE_m8250_RPMB_9#show mpls interfaces Interface IP Tunnel Operational Switch1.1 Yes (ldp) No Yes (ATM labels) Switch1.2 Yes (ldp) No Yes (ATM labels) PE_m8250_RPMB_9# Note that interface Switch 1.1 is connected (via a VPC) to the BPX-8600-based LSR, and interface Switch 1.2 is connected to the RPM-based eLSR in slot 10. We can verify the LDP discovery and the status of the LDP neighbors as well. See Example 6-26. Example 6-26. Showing the LDP Neighbor DiscoveryP1_LSC_c7204#show mpls ldp discovery Local LDP Identifier: 172.27.1.1:0 Discovery Sources: Interfaces: XTagATM331 (ldp): xmit/recv LDP Id: 172.27.1.128:1 XTagATM332 (ldp): xmit/recv LDP Id: 172.27.1.129:1 P1_LSC_c7204# The command show mpls ldp discovery should show that the interface is in transmit/receive. It also displays the remote LDP ID. (The local LDP ID displayed is the per-router LDP ID.) If the state is xmit only, we are transmitting LDP messages but are not receiving any. We should check the status of the control-vc at both ends, as well as the CoS buffers (QBins in BXM and UXM) and the routing configuration. If the status is xmit/recv but the neighbor relationship is not established, there might be a problem with the routing (such as no route to the destination), or CEF is not enabled. The LDP identifier uniquely identifies the label space in the network. It is 6 bytes long. The format from RFC 3036 is to use the first 4 bytes (32 bits) as the router ID that uniquely identifies the router in the network and the remaining 2 bytes as the label space ID that identifies the label space in that router. This is shown in Figure 6-5. Figure 6-5. LDP Identifier from RFC 3036 (LDP Specification)With frame-based MPLS, there is a per-router label space, and the label space ID is 0. For LC-ATM interfaces, because different interfaces can use the same label (VPI/VCI), there is a per-interface label space with a nonzero ID value. If for any reason an LDP neighbor is not coming up, we need to use the discovery command. The output would be blank in the command in Example 6-27 (neighbor) because there's no LDP neighbor yet. Example 6-27. Showing the LDP Neighbor DetailsP1_LSC_c7204#show mpls ldp neighbor Peer LDP Ident: 172.27.1.128:1; Local LDP Ident 172.27.1.1:1 TCP connection: 172.27.1.128.11015 - 172.27.1.1.646 State: Oper; Msgs sent/rcvd: 81/81; Downstream on demand Up time: 01:04:44 LDP discovery sources: XTagATM331, Src IP addr: 172.27.1.128 Peer LDP Ident: 172.27.1.129:1; Local LDP Ident 172.27.1.1:2 TCP connection: 172.27.1.129.11003 - 172.27.1.1.646 State: Oper; Msgs sent/rcvd: 8/8; Downstream on demand Up time: 00:02:00 LDP discovery sources: XTagATM332, Src IP addr: 172.27.1.129 In an LDP peering relationship, there is an active LDP peer and a passive LDP peer. The active peer has the responsibility of connecting to the passive LDP peer in the LDP well-known port (646). The LSR with the largest LDP ID is the active LDP peer. This can be seen in the show mpls ldp neighbor command: TCP connection: 172.27.1.128.11015 - 172.27.1.1.64646 TCP connection: 172.27.1.129.11003 - 172.27.1.1.64646 172.27.1.128 is larger than 172.27.1.1. And 172.27.1.129 is also larger than 172.27.1.1. The UDP port for LDP hello messages (discovery) is 646. The TCP port for establishing LDP session connections is 646. If the label protocol were TDP (instead of standard LDP), the well-known ports would be 711 for UDP and TCP: TCP connection: 10.10.10.5.11138 - 10.10.10.3.711 TCP connection: 10.10.10.2.711 - 10.10.10.3.11001 Going back to our MPLS network running standards-based LDP, we can check the ATM MPLS local, remote, and negotiated capabilities, as shown in Example 6-28. Example 6-28. Showing the ATM LDP CapabilitiesP1_LSC_c7204#show mpls atm-ldp capability VPI VCI Alloc Odd/Even VC Merge XTagATM331 Range Range Scheme Scheme IN OUT Negotiated [9 - 9] [33 - 65518] BIDIR - - Local [9 - 9] [33 - 65535] BIDIR EVEN NO NO Peer [9 - 9] [33 - 65518] UNIDIR ODD - - VPI VCI Alloc Odd/Even VC Merge XTagATM332 Range Range Scheme Scheme IN OUT Negotiated [10 - 10] [33 - 65518] BIDIR - - Local [10 - 10] [33 - 65535] BIDIR EVEN NO NO Peer [10 - 10] [33 - 65518] UNIDIR ODD - - P1_LSC_c7204# We see with this command the Local, Peer, and Negotiated ranges. One thing to mention is that on a BPX-8650, IGX-8400, or MGX-8850 switches, the Allocation Scheme is always bidirectional (because they don't support unidirectional cross-connects). This means that a VPI/VCI pair can appear in only one binding. It can be unidirectional in an eLSR (such as RPM cards) because it is not cross-connecting but terminating LVCs. The Negotiated Scheme is unidirectional only if both Local and Peer are unidirectional. In a bidirectional Allocation Scheme, either peer is bidirectional. One peer allocates even VCIs, and the other odd VCIs. The peer with the lower TDP ID uses even. NOTE The definition of unidirectional and bidirectional, as well as the MPLS capability command output, are consistent with industry-standard ATM usage and nomenclature. Nonetheless, they are exactly the reverse of the IETF LDP specification (RFC 3036) definition. These capabilities are negotiated as part of the LDP initialization message, in the optional parameters, with the ATM session parameters (type 0x0501 and variable length), according to RFC 3036 (LDP specification). They include merge capability, VC directionality, and one or more ATM label range components. The label distribution mechanism used in ATM MPLS is Downstream on Demand. It distributes per-interface label space (label-controlled ATM). The upstream LSR requests a label for a specific destination from the downstream LSR. Label VCs are built from headend platform to tailend platform. It is important to note that "on demand" is not traffic-related. "On-demand" means "whenever the LSR learns a destination." It could be called "upstream-controlled" (as opposed to frame-based MPLS, which is downstream-controlled). Figure 6-6 shows an example of the distribution for the destination D learned by R1. Figure 6-6. Downstream on Demand Label AllocationFigure 6-6 shows the headend and tailend platforms, as well as transit platforms. In summary, headend LVCs originate at this router, tailend LVCs terminate at this platform, and transit LVCs pass through this switch. NOTE We can use the global configuration command mpls ldp atm control-mode to change between independent (answering requests for label mappings immediately, without waiting for a label mapping from the next hop) and ordered (transmitting a label mapping only for a Forwarding Equivalence Class (FEC) for which it has a label mapping for the FEC next hop) Downstream on Demand LVC setup. Please refer to RFC 3036 for more details. The bindingsor, more precisely, the LIB (Label Information Base)can be displayed using three commands. First (see Example 6-29) is show mpls ldp bindings. Example 6-29. Showing the LDP BindingsP1_LSC_c7204#show mpls ldp bindings 172.27.1.1/32, rev 2 local binding: label: imp-null 172.27.1.128/32, rev 8 local binding: label: 16 172.27.1.129/32, rev 10 local binding: label: 17 P1_LSC_c7204# This command is not useful here because it displays only the generic (not LC-ATM) bindings. We included it to show that for an attached destination, the label advertised for frame-based is implicit-null. The command that is important for this scenario is show mpls atm-ldp bindings. It displays the ATM label binding database, as shown in Example 6-30. Example 6-30. Showing the ATM LDP BindingsP1_LSC_c7204#show mpls atm-ldp bindings Destination: 172.27.1.1/32 Tailend Switch XTagATM331 9/34 Active -> Terminating Active, VCD=3 Tailend Switch XTagATM332 10/34 Active -> Terminating Active, VCD=2 Destination: 172.27.1.128/32 Headend Switch XTagATM331 (1 hop) 9/33 Active, VCD=4 Transit XTagATM332 10/36 Active -> XTagATM331 9/35 Active Destination: 172.27.1.129/32 Headend Switch XTagATM332 (1 hop) 10/35 Active, VCD=3 Transit XTagATM331 9/38 Active -> XTagATM332 10/33 Active P1_LSC_c7204 The transit bindings are specifically the LSC functionality. In an eLSR, you see headend and tailend LVCs, but not transit. The LSC by default also has eLSR functionality, and that's why you also see headend and tailend bindings. 172.27.1.1/32 is a local destination, for which you see only tailend LVCs. The other two destinations are remote destinations, and that's why you see headend LVCs. One further command (see Example 6-31) actually combines the output of the previous two: show mpls ip binding. The optional parameter [atm] displays only atm-ldp bindings. Example 6-31. Using the Command show mpls ip bindingsP1_LSC_c7204#show mpls ip binding 172.27.1.1/32 in label: imp-null in vc label: 9/34 lsr: 172.27.1.128:1 XTagATM331 Active egress (vcd 3) in vc label: 10/34 lsr: 172.27.1.129:1 XTagATM332 Active egress (vcd 2) 172.27.1.128/32 in label: 16 out vc label: 9/33 lsr: 172.27.1.128:1 XTagATM331 Active ingress 1 hop (vcd 4) in vc label: 10/36 lsr: 172.27.1.129:1 XTagATM332 Active transit out vc label: 9/35 lsr: 172.27.1.128:1 XTagATM331 Active transit 172.27.1.129/32 in label: 17 out vc label: 10/35 lsr: 172.27.1.129:1 XTagATM332 Active ingress 1 hop (vcd 3) in vc label: 9/38 lsr: 172.27.1.128:1 XTagATM331 Active transit out vc label: 10/33 lsr: 172.27.1.129:1 XTagATM332 Active transit P1_LSC_c7204 NOTE In non-TTL (Time to Live) decrementing media such as ATM, the hop count is calculated using the Hop Count TLV in the LDP label mapping message. Finally (see Example 6-32), we can display the Label Forwarding Information Base (LFIB) in the eLSRs or the LSC using the command show mpls forwarding-table. Example 6-32. Showing the Label Forwarding Information Base P1_LSC_c7204#show mpls forwarding-table Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 16 9/33 172.27.1.128/32 0 XT331 point2point 17 10/35 172.27.1.129/32 0 XT332 point2point P1_LSC_c7204# It is important to note that on the LSC, show mpls forwarding-table displays only the outgoing label for headend VCs. If we disable headend VCs or include an access list blocking binding requests to some destinations, the outgoing VC shows "Untagged." In addition, specific to the LSC, the status of the VSI interfaces and the control interface can be displayed. Refer to Example 6-33. Example 6-33. Using the Command show controllers vsiP1_LSC_c7204# P1_LSC_c7204#show controllers vsi control-interface Interface: ATM3/0 Connections: 8 P1_LSC_c7204#show controllers vsi status Interface Name IF Status IFC State Physical Descriptor switch control port n/a ACTIVE 0.3.1.0 XTagATM331 up ACTIVE 0.3.3.1 XTagATM332 up ACTIVE 0.3.3.2 P1_LSC_c7204# We can see that the XTagATM interfaces are up and that there are eight connections in the control interface. Finally, we display the VCs and cross-connects (X-conns) present in the LSC. The command show atm vc (see Example 6-34) displays the ATM view of the VCs in the LSC's interface connected to the BPX switch. Example 6-34. Showing the ATM Virtual CircuitsP1_LSC_c7204#show atm vc VCD / Peak Avg/Min Burst Interface Name VPI VCI Type Encaps SC Kbps Kbps Cells Sts 3/0 1 0 40 PVC SNAP UBR 155000 UP 3/0 2 0 41 PVC SNAP UBR 155000 UP 3/0 3 0 42 PVC SNAP UBR 155000 UP 3/0 4 0 43 PVC SNAP UBR 155000 UP 3/0 5 0 44 PVC SNAP UBR 155000 UP 3/0 6 0 45 PVC SNAP UBR 155000 UP 3/0 7 0 46 PVC SNAP UBR 155000 UP 3/0 8 0 47 PVC SNAP UBR 155000 UP 3/0 9 0 48 PVC SNAP UBR 155000 UP 3/0 10 0 49 PVC SNAP UBR 155000 UP 3/0 11 0 50 PVC SNAP UBR 155000 UP 3/0 12 0 51 PVC SNAP UBR 155000 UP 3/0 13 0 52 PVC SNAP UBR 155000 UP 3/0 14 0 53 PVC SNAP UBR 155000 UP 3/0 16 1 33 PVC XTAGATM UBR 155000 UP 3/0 17 1 34 TVC XTAGATM UBR 155000 UP 3/0 18 1 35 TVC XTAGATM UBR 155000 UP 3/0 19 1 36 PVC XTAGATM UBR 155000 UP 3/0 20 1 37 TVC XTAGATM UBR 155000 UP 3/0 21 1 38 TVC XTAGATM UBR 155000 UP P1_LSC_c7204# First we see a set of VCs with VPIs 0/40 to 0/53. Those are the VSI master-slave VCs for VSI communication. There's one master-slave VC per VSI slave. They are PVCs using AAL5Snap encapsulations, as detailed in Chapter 2, "SCI: Virtual Switch Interface," in the section "Controller Location Options." At the end of the list are some VCs with XTagATM encapsulations. This means that these are private VCs, as explained in Chapter 3 in the section "Label Switch Controller." All of these use VPI=1 because that's the first VPI configured in the control interface's resource partition. Two of these are PVCs (1/33 and 1/36), and they are the private leg of the control-vcs (for untagged traffic). The rest are type TVC (and the show command here displays TVCs for both tag virtual circuits [TVCs] and label virtual circuits [LVCs]). A more general look at this can be seen using the show xtagatm vc command, as shown in Example 6-35. It is more general because it also shows the "Transit" cross-connects not displayed with the previous command. It shows the Controlled Switch view of the LVCs, which is only the cross-connect from one port to another port, as shown in Figure 6-7. Example 6-35. Showing the XTagATM Virtual CircuitsP1_LSC_c7204#show xtagatm vc AAL / Control Interface Interface VCD VPI VCI Type Encapsulation VCD VPI VCI Status XTagATM331 2 9 32 PVC AAL5-SNAP 16 1 33 ACTIVE XTagATM331 3 9 34 TVC AAL5-MUX 17 1 34 ACTIVE XTagATM331 4 9 33 TVC AAL5-MUX 18 1 35 ACTIVE XTagATM332 1 10 32 PVC AAL5-SNAP 19 1 36 ACTIVE XTagATM332 2 10 34 TVC AAL5-MUX 20 1 37 ACTIVE XTagATM332 3 10 35 TVC AAL5-MUX 21 1 38 ACTIVE P1_LSC_c7204# Figure 6-7. LVCs and Cross-ConnectsHere we explicitly see that PVCs 1/33 and 1/36 are the private VCs of the control-vcs 9/32 and 10/32, respectively. We also differentiate between AAL5-SNAP encapsulation for control-vcs and AAL5-MUX encapsulation for LVCs. A last viewpoint be seen by displaying the XTagATM cross-connects, as shown in Example 6-36. Example 6-36. Showing the XTagATM Cross-ConnectsP1_LSC_c7204#show xtagatm cross-connect Phys Desc VPI/VCI Type X-Phys Desc X-VPI/VCI State 0.3.1.0 1/38 -> 0.3.3.2 10/35 UP 0.3.1.0 1/36 <-> 0.3.3.2 10/32 UP 0.3.1.0 1/35 -> 0.3.3.1 9/33 UP 0.3.1.0 1/33 <-> 0.3.3.1 9/32 UP 0.3.1.0 1/37 <- 0.3.3.2 10/34 UP 0.3.1.0 1/34 <- 0.3.3.1 9/34 UP 0.3.3.1 9/38 -> 0.3.3.2 10/33 UP ! Type: -> : 0.3.3.1 9/34 -> 0.3.1.0 1/34 UP ! Even LVCs in 3.3.1 0.3.3.1 9/35 <- 0.3.3.2 10/36 UP ! Type <- : 0.3.3.1 9/33 <- 0.3.1.0 1/35 UP ! Odd LVCs in 3.3.1 0.3.3.1 9/32 <-> 0.3.1.0 1/33 UP ! Control-vc in 3.3.1 0.3.3.2 10/36 -> 0.3.3.1 9/35 UP ! Type: -> : 0.3.3.2 10/34 -> 0.3.1.0 1/37 UP ! Even LVCs in 3.3.2 0.3.3.2 10/35 <- 0.3.1.0 1/38 UP ! Type: <- : 0.3.3.2 10/33 <- 0.3.3.1 9/38 UP ! Odd LVCs in 3.3.2 0.3.3.2 10/32 <-> 0.3.1.0 1/36 UP ! Control-vc in 3.3.2 P1_LSC_c7204# It is important to note that the control-vcs are bidirectional (<->) and the LVCs are unidirectional (-> or <-). There's an LVC to reach a destination. Also, in a bidirectional allocation scheme, we see that for a given LC-ATM interface facing an LSR or eLSR (such as 3.3.1 or 3.3.2), the VCIs of LVCs going in one direction (->) are even, whereas in the other direction (<-), VCIs are odd. |