Configure Ethernet Data Plane Loopback

This chapter describes the Cisco IOS XR commands to configure Ethernet Data Plane Loopback.

Understand Ethernet Dataplane Loopback

The Ethernet Data Plane Loopback (EDPL) feature provides a means for remotely testing the throughput of an ethernet port. User can verify the maximum rate of frame transmission with no frame loss. This feature allows both bidirectional and unidirectional throughput measurement, and on-demand/out-of-service (intrusive) operation during service turn-up. Following are the key features supported:

  • This feature supports two types of ethernet loopback :

    • Facility loopback (external)—Traffic loopback occurs at the ingress interface. The traffic does not flow into the router for loopback.

    • Terminal loopback (internal)—Traffic loopback occurs at the egress interface. The traffic loopback occurs after the traffic flows into the router to the other interface.

  • Ethernet loopback is supported on all the L2 transport interfaces (physical, bundle interfaces, and L2 sub-interfaces over both physical and bundle interfaces) on NCS4K-4H-OPW-QC2 line card.

  • In case of bundled interface, the traffic is looped back on all the bundle link members.

  • The MAC address on the looped-back traffic will always be swapped.

  • Multiple filters can be applied to ensure loop back of a subset of traffic received by an interface. Supported filter qualifiers are Source MAC, Destination MAC, and VLAN priority(COS bits).

    Following are the supported combinations of filter qualifiers for external loopbacks:

    • Source MAC

    • Source MAC and Destination MAC

    • Source MAC, Destination MAC, and VLAN priority

    • Destination MAC

    • Destination MAC and VLAN priority

  • Maximum number of concurrent ethernet data plane loopback sessions supported is 100.

  • The default time for auto removal of an EDPL session is 5 minutes, unless explicitly specified. The session automatically stops after the time expiry.

Restrictions for Ethernet Data Plane Loopback

Following are the limitations:

  • Ethernet loopback on L3 interfaces or L3 sub interfaces is not supported.

  • Ethernet loopback on PW-HE is not supported.

  • Following filters for loopback are not supported:

    • Outer VLAN or range of outer VLAN

    • Inner VLAN or range of inner VLAN

    • Ether Type

  • Following combinations of filter qualifiers are not supported for external loopbacks:

    • Source MAC and VLAN Priority

    • VLAN Priority

  • Re-write modifications on the loopback traffic is not supported.

  • Simultaneous internal and external loopback on same interface is not supported.

  • There shall be maximum throughput of 10Gbps for internal loopback over all the sessions.

  • There is no throughput limit for external loopback sessions.

  • Dropping of the packets received in the non-loopback direction is not supported.

  • Loopback on multicast or broadcast MAC addresses is not supported.

Configure Ethernet Data Plane Loopback

To configure ethernet data plane loopback on an interface, perform the following steps:

Enable Ethernet Data Plane Loopback

To enable ethernet data plane loopback on an interface, perform the following steps:

Procedure


Step 1

config

Example:

RP/0/RP0:hostname# config

Enters the configuration mode.

Step 2

interface type interface-path-id l2transport

Example:

RP/0/RP0:hostname(config)# interface tenGigE0/1/0/1 l2transport

Enters the interface configuration mode.

Step 3

ethernet loopback permit {external | internal}

Example:

RP/0/RP0:hostname(config–if)# ethernet loopback permit external

Enables ethernet data plane loopback.


Start Ethernet Data Plane Loopback Session

To start an ethernet data plane loopback session, perform the following steps:

Procedure


Step 1

ethernet loopback start local interface interface-type interface-path-id external source mac-address mac-addr destination mac-address mac-addr cos class-of-service timeout time in seconds

Example:

RP/0/RP0:hostname# ethernet loopback start local interface tenGigE0/1/0/1 external source mac-address 0000.0000.0002 destination mac-address 0000.0000.0001 cos 1 timeout 300

Starts an ethernet data plane loopback session.

Step 2

show ethernet loopback active

Example:


RP/0/RP0:hostname# show ethernet loopback active

Wed Apr 24 14:07:13.825 UTC
Local: TenGigE0/0/0/0, ID 2
============================================
Direction:                          External
Time out:                             0h5m0s
Time left:                           0h2m46s
Status:                               Active
Filters:
  Dot1Q:                                 Any
  Second-dot1Q:                          Any
  Source MAC Address:         0000.0000.0002
  Destination MAC Address:    0000.0000.0001
  Ethertype:                             Any
  Class of Service:                      1

Verifies the ethernet data plane loopback session.


Stop Ethernet Data Plane Loopback Session

To stop an ethernet data plane loopback session, perform the following steps:

Procedure


Step 1

show ethernet loopback active

Example:


RP/0/RP0:hostname# show ethernet loopback active

Wed Apr 24 14:07:13.825 UTC
Local: FortyGigE0/0/0/2, ID 1
============================================
Direction:                          External
Time out:                            1h5m0s
Time left:                           0h20m46s
Status:                               Active
Filters:
  Dot1Q:                                 Any
  Second-dot1Q:                          Any
  Source MAC Address:         0000.0000.0003
  Destination MAC Address:    0000.0000.0004
  Ethertype:                             Any
  Class of Service:                      1

Local: TenGigE0/1/0/1, ID 2
============================================
Direction:                          External
Time out:                             0h5m0s
Time left:                           0h2m46s
Status:                               Active
Filters:
  Dot1Q:                                 Any
  Second-dot1Q:                          Any
  Source MAC Address:         0000.0000.0002
  Destination MAC Address:    0000.0000.0001
  Ethertype:                             Any
  Class of Service:                      1

Displays all the active ethernet data plane loopback sessions. Also provides the interface details and session-id, that will be used in step2.

Step 2

ethernet loopback stop local interface interface-type interface-path-id id session-id

Example:

RP/0/RP0:hostname# ethernet loopback stop local interface tenGigE0/1/0/1 id 2

Closes the ethernet data plane loopback session.


Configuration Examples

Following are the EDPL configuration examples:

Example: Configuring external loopback on a main interface

RP/0/RP0:hostname# config
RP/0/RP0:hostname(config)# interface TenGigE0/0/0/0 l2transport
RP/0/RP0:hostname(config-if)# encapsulation dot1q 1
RP/0/RP0:hostname(config-if)# ethernet loopback permit external
RP/0/RP0:hostname(config-if)# exit
RP/0/RP0:hostname(config)# exit
RP/0/RP0:hostname# ethernet loopback start local interface tenGigE0/0/0/0 external source mac-address 0000.0000.0002 destination mac-address 0000.0000.0001 cos 1 timeout 300
Example: Configuring internal loopback on a sub interface

RP/0/RP0:hostname# config
RP/0/RP0:hostname(config)# interface FortyGigE0/4/0/2.1 l2transport
RP/0/RP0:hostname(config-subif)# encapsulation dot1q 1
RP/0/RP0:hostname(config-subif)# ethernet loopback permit internal
RP/0/RP0:hostname(config-subif)# exit
RP/0/RP0:hostname(config)# exit
RP/0/RP0:hostname# ethernet loopback start local interface FortyGigE0/4/0/2.1 external source mac-address 0000.0000.0008 destination mac-address 0000.0000.0009 cos 1 timeout 300
Example: Configuring EDPL for internal loopback session on bundle sub interface

Topology:
(4/20)Tg1-----(0/2/0/0/1)CE1(0/2/0/0/2)-------(0/3/0/0/2)PE1(0/3/0/0/3)------(0/7/0/0/3)PE2(TenGigE0/7/0/0/4)------(TenGigE0/2/0/0/2) CE2 (Te0/2/0/0/1)------Tg2(4/17)

Config CE1
==========
RP/0/RP0:hostname# configure
RP/0/RP0:hostname(config)# interface Bundle-Ether1
RP/0/RP0:hostname(config-if)# bundle maximum-active links 1 hot-standby
RP/0/RP0:hostname(config-if)# exit
RP/0/RP0:hostname(config)# interface Bundle-Ether1.1 l2transport
RP/0/RP0:hostname(config-subif)# encapsulation dot1q 1
RP/0/RP0:hostname(config-subif)# ethernet loopback
RP/0/RP0:hostname(config-subif)#   permit internal
RP/0/RP0:hostname(config-subif)# exit
RP/0/RP0:hostname(config)# l2vpn
RP/0/RP0:hostname(config-l2vpn)# xconnect group VPWS1
RP/0/RP0:hostname(config-l2vpn-xc)# p2p p1
RP/0/RP0:hostname(config-l2vpn-xc-p2p)# interface Bundle-Ether1.1 
RP/0/RP0:hostname(config-l2vpn-xc-p2p)# interface TenGigE0/2/0/0/1.1
RP/0/RP0:hostname(config-l2vpn-xc-p2p)# exit
RP/0/RP0:hostname(config-l2vpn-xc)#exit
RP/0/RP0:hostname(config-l2vpn)#exit
RP/0/RP0:hostname(config)# interface TenGigE0/2/0/0/1.1 l2transport
RP/0/RP0:hostname(config-subif)# encapsulation dot1q 1
RP/0/RP0:hostname(config-subif)# exit


Config PE1
===========
RP/0/RP0:hostname(config)# interface Bundle-Ether1
RP/0/RP0:hostname(config-if)# bundle maximum-active links 1 hot-standby
RP/0/RP0:hostname(config-if)# exit
RP/0/RP0:hostname(config)# interface Bundle-Ether1.1 l2transport
RP/0/RP0:hostname(config-subif)# encapsulation dot1q 1
RP/0/RP0:hostname(config-subif)# exit
RP/0/RP0:hostname(config)# l2vpn
RP/0/RP0:hostname(config-l2vpn)# pw-class vpws1
RP/0/RP0:hostname(config-l2vpn-pwc)# encapsulation mpls
RP/0/RP0:hostname(config-l2vpn-pwc)# exit
RP/0/RP0:hostname(config-l2vpn)# xconnect group VPWS1
RP/0/RP0:hostname(config-l2vpn-xc)# p2p p1
RP/0/RP0:hostname(config-l2vpn-xc-p2p)# interface Bundle-Ether1.1 
RP/0/RP0:hostname(config-l2vpn-xc-p2p)# neighbor ipv4 22.22.22.22 pw-id 1
RP/0/RP0:hostname(config-l2vpn-xc-p2p-pw)# pw-class vpws1
RP/0/RP0:hostname(config-l2vpn-xc-p2p-pw)# exit
RP/0/RP0:hostname(config-l2vpn-xc-p2p)# exit
RP/0/RP0:hostname(config-l2vpn-xc)# exit
RP/0/RP0:hostname(config-l2vpn)# exit


Config CE2
==========
RP/0/RP0:hostname(config)# interface Bundle-Ether1.1 l2transport
RP/0/RP0:hostname# encapsulation dot1q 1
RP/0/RP0:hostnameconfig-subif)# exit
RP/0/RP0:hostname(config)# l2vpn
RP/0/RP0:hostname(config-l2vpn)# pw-class vpws1
RP/0/RP0:hostname(config-l2vpn-pwc)# encapsulation mpls
RP/0/RP0:hostname(config-l2vpn-pwc)# exit
RP/0/RP0:hostname(config-l2vpn)# xconnect group VPWS1
RP/0/RP0:hostname(config-l2vpn-xc)# p2p p1
RP/0/RP0:hostname(config-l2vpn-xc-p2p)# interface TenGigE0/2/0/0/1.1
RP/0/RP0:hostname(config-l2vpn-xc-p2p)#  neighbor ipv4 2.2.2.2 pw-id 1
RP/0/RP0:hostname(config-l2vpn-xc-p2p-pw)# pw-class vpws1
RP/0/RP0:hostname(config-l2vpn-xc-p2p-pw)# exit
RP/0/RP0:hostname(config-l2vpn-xc-p2p)# exit
RP/0/RP0:hostname(config-l2vpn-xc)# exit
RP/0/RP0:hostname(config-l2vpn)# exit
RP/0/RP0:hostname(config-l2vpn)# exit

RP/0/RP0:hostname# ethernet loopback start local  Bundle-Ether1 internal timeout none