Genie's Tech Blog

Where knowledge has no dimensions

FRoMPLS on IOS XR

Hello Friends,

Today we are going to discuss on another L2VPN implementation i.e. FroMPLS (Frame-Relay over MPLS). In the early days, when Frame-Relay service was heavily used in the customer networks, the Service Providers used to provide Frame-Relay services with the help of Frame-Relay switches like LS1010 and several others. But over the time as the technology have advanced, the Service Providers have upgraded their network to use MPLS which gives them the flexibility to provide any kind of L2 service be it PPP or FR or ATM or plain Ethernet. They don;t need to deploy specific hardware in their core to provide such services to their customers. 

A Frame Relay PDU is transported without the Frame Relay header or the FCS.  The control word is REQUIRED; however, its use is optional, although desirable. Use of the control word means that the ingress and egress LSRs follow the procedures below. If an ingress LSR chooses not to use the control word, it MUST set the flags in the control word to 0; if an egress LSR chooses to ignore the control word, it MUST set the Frame Relay control bits to 0. The BECN, FECN, DE and C/R bits are carried across the network in the control word. Martini draft defines the format for encapsulating Frame-Relay packet for transport over MPLS network:

 atom_fr_header.png

In the above header, following are the BITS defined

B - BECN Bit

F - FECN Bit

D - DE Bit

C - C/R Bit

Local Management Interface (LMI)

LMI is a signalling standard that is responsible for managing the connection and maintaining status between devices. In the DLCI to DLCI connection case, Frame Relay LMI procedures are run locally on Frame Relay ports connecting the PE and CE devices. The PE device will communicate the LMI state between PE1 and PE2 by advertising/withdrawal a VC label to/from the peer when the LMI procedure determines that a local PVC has been deleted or is inactive.

We shall now see an example of FRoMPLS on IOS XR. 

Consider the below topology:

 

Lets now have a look at the configuration:

Config on ASR9k:
===========
interface Loopback0
 ipv4 address 111.111.111.111 255.255.255.255
!
interface TenGigE0/1/0/0
 mtu 9014
 ipv4 address 50.1.1.2 255.255.255.252
 load-interval 30
!
interface Serial0/0/1/1:0
 encapsulation frame-relay IETF
  frame-relay intf-type dce
!
interface Serial0/0/1/1:0.666 l2transport
 pvc 666
 !
!
l2vpn
 pw-class pwFRDLCI
  encapsulation mpls
  !
 !
 xconnect group FRDLCI
  p2p 666
   interface Serial0/0/1/1:0.666
   neighbor 100.100.100.100 pw-id 666
    pw-class pwFRDLCI
   !
  !
 !
router ospf 100
 router-id 111.111.111.111
 area 0
  interface Loopback0
  !
  interface TenGigE0/1/0/0
  !
 !
!
mpls ldp
 router-id 111.111.111.111
  interface TenGigE0/1/0/0
 !
!

Config on XR-PE2:
===========
interface Loopback0
 ipv4 address 100.100.100.100 255.255.255.255
!
interface TenGigE0/2/0/0
 mtu 9014
 ipv4 address 30.1.1.1 255.255.255.252
 load-interval 30
!
interface Serial0/3/1/2
 encapsulation frame-relay IETF
 load-interval 30
 frame-relay intf-type dce
!
interface Serial0/3/1/2.666 l2transport
 pvc 666
 !
!
l2vpn
 pw-class pwFRDLCI
  encapsulation mpls
  !
 !
 xconnect group FRDLCI
  p2p 666
   interface Serial0/3/1/2.666
   neighbor 111.111.111.111 pw-id 666
    pw-class pwFRDLCI
   !
  !
 !
router ospf 10
 area 0
  interface Loopback0
  !
  interface TenGigE0/2/0/0
  !
!
mpls ldp
 router-id 100.100.100.100
 nsr
 graceful-restart
 session protection
 interface TenGigE0/2/0/0
 !
!

// The core router is just having simple plane config of OSPF and MPLS LDP.

Config on CE1:
=========
interface Serial1/0:0
 mtu 4470
 no ip address
 encapsulation frame-relay IETF
!
interface Serial1/0:0.100 point-to-point
 ip address 11.11.11.1 255.255.255.0
 frame-relay interface-dlci 666 IETF
!

Config on CE2:
=========
interface Serial4/0
 no ip address
 encapsulation frame-relay IETF
 dsu bandwidth 44210
 framing c-bit
 cablelength 10
 serial restart-delay 0
!
interface Serial4/0.666 point-to-point
 ip address 11.11.11.2 255.255.255.0
 frame-relay interface-dlci 666 IETF
!

With the above configuration we shall be able to bring up the FRoMPLS circuit. Lets now have a look at the outputs.

Output from ASR9k:
=============
RP/0/RSP0/CPU0:ASR9006#sh l2vpn xconnect         
Tue Oct 21 11:31:56.870 IST
Legend: ST = State, UP = Up, DN = Down, AD = Admin Down, UR = Unresolved,
        SB = Standby, SR = Standby Ready, (PP) = Partially Programmed

XConnect                   Segment 1                       Segment 2                
Group      Name       ST   Description            ST       Description            ST    
------------------------   -----------------------------   -----------------------------
FRDLCI     666        UP   Se0/0/1/1:0.666        UP       100.100.100.100 666    UP    
----------------------------------------------------------------------------------------
RP/0/RSP0/CPU0:ASR9006#
RP/0/RSP0/CPU0:ASR9006#sh l2vpn xconnect interface serial 0/0/1/1:0.666 det
Tue Oct 21 11:29:14.937 IST

Group FRDLCI, XC 666, state is up; Interworking none
  AC: Serial0/0/1/1:0.666, state is up
    Type Frame Relay DLCI; DLCI = 666
    MTU 4474; XC ID 0x840002; interworking none
    Statistics:
      packets: received 464, sent 462
      bytes: received 152192, sent 149688
  PW: neighbor 100.100.100.100, PW ID 666, state is up ( established )
    PW class pwFRDLCI, XC ID 0xc0000002
    Encapsulation MPLS, protocol LDP
    Source address 111.111.111.111
    PW type Frame Relay DLCI, control word enabled, interworking none
    PW backup disable delay 0 sec
    Sequencing not set
    Load Balance Hashing: src-dst-ip

    PW Status TLV in use
      MPLS         Local                          Remote                        
      ------------ ------------------------------ -----------------------------
      Label        16015                          16012                         
      Group ID     0x4000300                      0x4004d00                     
      Interface    Serial0/0/1/1:0.666            Serial0/3/1/2.666             
      MTU          4474                           4474                          
      Control word enabled                        enabled                       
      PW type      Frame Relay DLCI               Frame Relay DLCI              
      VCCV CV type 0x2                            0x2                           
                   (LSP ping verification)        (LSP ping verification)       
      VCCV CC type 0x7                            0x7                           
                   (control word)                 (control word)                
                   (router alert label)           (router alert label)          
                   (TTL expiry)                   (TTL expiry)                  
      ------------ ------------------------------ -----------------------------
    Incoming Status (PW Status TLV):
      Status code: 0x0 (Up) in Notification message
    Outgoing Status (PW Status TLV):
      Status code: 0x0 (Up) in Notification message
    MIB cpwVcIndex: 3221225474
    Create time: 20/10/2014 19:41:34 (15:47:39 ago)
    Last time status changed: 20/10/2014 19:45:58 (15:43:15 ago)
    Statistics:
      packets: received 462, sent 464
      bytes: received 149688, sent 152192
RP/0/RSP0/CPU0:ASR9006# 

RP/0/RSP0/CPU0:ASR9006# show mpls ldp discovery 
Tue Oct 21 11:29:28.887 IST

Local LDP Identifier: 111.111.111.111:0
Discovery Sources:
  Interfaces:
    TenGigE0/1/0/0 : xmit/recv
      LDP Id: 150.150.150.150:0, Transport address: 150.150.150.150
          Hold time: 15 sec (local:15 sec, peer:15 sec)

  Targeted Hellos:
    111.111.111.111 -> 100.100.100.100 (active), xmit/recv
      LDP Id: 100.100.100.100:0
          Hold time: 90 sec (local:90 sec, peer:90 sec)

RP/0/RSP0/CPU0:ASR9006#
RP/0/RSP0/CPU0:ASR9006#sh l2vpn xconnect interface serial 0/0/1/1:0.666 private 
Tue Oct 21 11:30:02.675 IST

Group FRDLCI, XC 666, state is up; Interworking none

     CE2CE event trace history [Total events: 0]
     -----------------------------------------
     Time                Event                          Status/ID       Flags/ID  
     ====                =====                          ===========     ============

XC is *not* in MS-PW db
XC diagnostic mask is: 0x0
  Segment 1 is   AC: Serial0/0/1/1:0.666, state is up
    Type Frame Relay DLCI; DLCI = 666
    MTU 4474; XC ID 0x840002; interworking none; MSTi 0, I-MSTi 0
    AC Manager state: both up, flags = 0x20070078 AC index: 0
    SSS role: SIP
    Caps from MA:     0x120c7e4f
    Caps from remote: 0x1
    Detailed segment state: up
    Last forwarding setup event was provision at 20/10/2014 19:45:58
    Last RMT event was UP at 20/10/2014 19:45:58, flags at that time [0xa0070078]
    Last AC MA create/notify event IF state was UP, last create (20/10/2014 19:45:39), last notify (20/10/2014 19:45:58)
        Last forwarding setup event was provision at 20/10/2014 19:45:58
    Last RMT event was UP at 20/10/2014 19:45:58, flags at that time [0xa0070078]
    Last AC MA create/notify event IF state was UP, last create (20/10/2014 19:45:39), last notify (20/10/2014 19:45:58)
    R-APS Channel : No
    Part of ERP exclusion-list : No
    Error(s):
      None
        Configuration info:
          Circuit name: Serial0_0_1_1:0.666
    Other-Segment MTU: 4474
    Other-Segment status flags: 0x3
    Signaled capability valid: Yes
    Signaled capability flags: 0x2000000
    Configured capability flags: 0x0
    XCID: 0x840002
    PSN Type: MPLS Dynamic
    Internal ID: 0

     AC event trace history [Total events: 9]
     -----------------------------------------
     Time                Event                          Status/PWID     Flags/PeerID
     ====                =====                          ===========     ============
     10/20/2014 19:45:40 Rcvd AC MA create + DN I/F ST  No error        0         
     10/20/2014 19:45:40 Sent AC MA PROV msg down       No error        0         
     10/20/2014 19:45:40 Sent AC MA PROV msg.           No error        0         
     10/20/2014 19:45:40 Sent L2FIB setup fwd msg.      666             0x64646464
     10/20/2014 19:45:40 Recevied CFG XC PROV req.      No error        0         
     10/20/2014 19:45:59 Rcvd AC MA upd + UP I/F ST     No error        0         
     10/20/2014 19:45:59 Sent AC MA PROV msg.           No error        0x3       
     10/20/2014 19:45:59 Received RMT peer UP msg.      No error        0         
     10/20/2014 19:45:59 Sent L2FIB setup fwd msg.      666             0x64646464


     L2VPN event counters:

                                                       Event     Count
               ---------------------------------------------  --------
                                   MA provision bulk failure         0
                                MA un-provision bulk failure         0
                 Send L2FIB setup forwarding request failure         0
              Send L2FIB un-setup forwarding request failure         0
                         Error trying to aquire node license         0
                        Error trying to release node license         0
                                  Node license not available         0
                 Send L2FIB setup forwarding request success         2
              Send L2FIB un-setup forwarding request success         0
                            Node license aquired successfuly         1


    Statistics:
      packets: received 465, sent 463
      bytes: received 152520, sent 150012
  Segment 2 is   PW: neighbor 100.100.100.100, PW ID 666, state is up ( established )
    PW class pwFRDLCI, XC ID 0xc0000002
    Encapsulation MPLS, protocol LDP
    Source address 111.111.111.111
    PW type Frame Relay DLCI, control word enabled, interworking none
    PW backup disable delay 0 sec
    Sequencing not set
    Load Balance Hashing: src-dst-ip

    PW Status TLV in use
      MPLS         Local                          Remote                        
      ------------ ------------------------------ -----------------------------
      Label        16015                          16012                         
      Group ID     0x4000300                      0x4004d00                     
      Interface    Serial0/0/1/1:0.666            Serial0/3/1/2.666             
      MTU          4474                           4474                          
      Control word enabled                        enabled                       
      PW type      Frame Relay DLCI               Frame Relay DLCI              
      VCCV CV type 0x2                            0x2                           
                   (LSP ping verification)        (LSP ping verification)       
      VCCV CC type 0x7                            0x7                           
                   (control word)                 (control word)                
                   (router alert label)           (router alert label)          
                   (TTL expiry)                   (TTL expiry)                  
      ------------ ------------------------------ -----------------------------
    Incoming Status (PW Status TLV):
      Status code: 0x0 (Up) in Notification message
    Outgoing Status (PW Status TLV):
      Status code: 0x0 (Up) in Notification message
    MIB cpwVcIndex: 3221225474
    Create time: 20/10/2014 19:41:34 (15:48:27 ago)
    Last time status changed: 20/10/2014 19:45:58 (15:44:03 ago)
    Configuration info:
      PW class: pwFRDLCI
      Peer ID = 100.100.100.100, pseudowire ID = 666
      Control word is not set
      Transport mode: not set
        Configured (Static) Encapsulation: not set
        Provisioned Encapsulation: MPLS
      Static tag rewrite: not set
      MTU: 4474
      Tunnel interface: None
      IW type: 0
      PW type: Dynamic
      Pref path configured: No
      Bridge port: No
      BP learning disabled: No
      BP ucast flooding disabled: No
      BP bcast flooding disabled: No
      CW is mandatory: Yes
      Flow Label flags configured (0x0), static ? No
      Label: local unassigned, remote unassigned
      L2 Router-ID: 0.0.0.0
      LDP Router-ID: 100.100.100.100
      GR stale: No
    LDP Status: local established, remote established
    LDP tag rewrite: not set
    Force switchover: inactive
    MAC trigger: inactive
    VC sane: Yes
    Use PW Status: Yes
    Local PW Status: Up(0x0); Remote PW Status: Up(0x0)
    Peer FEC Failed: No
    LSP: Up
    Operational state: 
      LDP session state: up
      TE tunnel transport: No
      VC in gr mode: No
      Peer state: up
      Transport LSP down: No
      Advertised label to LDP: Yes
      Received a label from LSD: Yes
      Need to send standby bit: No
      VC created from rbinding: No
      PW redundancy dampening on : No
      Notified up : No
      Flow Label flags negotiated (0x0)
    Detailed segment state: up
    Internal ID: 0
     PW event trace history [Total events: 13]
     -----------------------------------------
     Time                Event                          Value           
     ====                =====                          ===========     
     10/20/2014 19:41:35 Provision                      0         
     10/20/2014 19:41:35 LSP Down                       0         
     10/20/2014 19:41:50 LSP Down                       0         
     10/20/2014 19:42:05 LSP Down                       0         
     10/20/2014 19:44:57 LSP Up                         0         
     10/20/2014 19:45:04 AToM Adjacency Up              0         
     10/20/2014 19:45:04 Rx lbl map                     0x3e8c    
     10/20/2014 19:45:40 Connect Req                    0         
     10/20/2014 19:45:40 Rewrite create                 0x100000  
     10/20/2014 19:45:40 Got label                      0x3e8f    
     10/20/2014 19:45:40 Tx lbl map                     0x3e8f    
     10/20/2014 19:45:59 Peer Up                        0         
     10/20/2014 19:45:59 Tx PW status                   0         

    Statistics:
      packets: received 463, sent 465
      bytes: received 150012, sent 152520
RP/0/RSP0/CPU0:ASR9006-B#

From the above outputs we can see that the circuit has come up and also local label of 16015 has been allocated. If we use the option private instead of details, we can see some internal information of the circuit and also check if there are any errors or the detailed information on the information shared between both the PE routers.

The output on both the PE's are going to be similar. We shall now verify the connectivity between CE router:

Output on CE:
=========
CE1#ping 11.11.11.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.11.11.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

CE1#show frame-relay pvc

PVC Statistics for interface Serial1/0:0 (Frame Relay DTE)

              Active     Inactive      Deleted       Static
  Local          1            0            0            0
  Switched       0            0            0            0
  Unused         0            0            0            0

DLCI = 666, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial1/0:0.100

  input pkts 282737        output pkts 282739       in bytes 30952128
  out bytes 30980920       dropped pkts 0           in pkts dropped 0
  out pkts dropped 0                out bytes dropped 0
  in FECN pkts 0           in BECN pkts 0           out FECN pkts 0
  out BECN pkts 0          in DE pkts 0             out DE pkts 0
  out bcast pkts 7036      out bcast bytes 2307808
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
  pvc create time 4d09h, last time pvc status changed 15:48:37

Thus we can see that there is end to end reachability. A good way to understand if all the packets received by a PE is sent out to on the AC circuit and vice versa is using the following filter:

Output from ASR9k:
=============
RP/0/RSP0/CPU0:ASR9006#sh l2vpn xconnect interface serial 0/0/1/1:0.666 detail | in pack
Tue Oct 21 11:38:05.692 IST
      packets: received 479, sent 476
      packets: received 476, sent 479
RP/0/RSP0/CPU0:ASR9006#

In the above output, the values should be matched diagonally.

Hope this post helps understand how FRoMPLS works on XR devices.

Feel free to reach out to us incase you have any questions.

Cheeers...!!!

Genie

www.codergenie.com

Comments are closed