PCE Tunnels with ONOS Goldeneye: A Packet Design How-to

ONOS (Open Network Operating System) Project released its seventh version – Goldeneye – on June 24 of this year. Goldeneye includes various bug fixes and new features, including PCE and PCECC that enable IP/MPLS SDN capabilities in customer networks. The PCE extensions help to initiate Label Switched Paths (LSP) through RSVP-TE and Segment Routing. In this post, we will go step by step into how to use the new BGP-LS and PCE capabilities with ONOS, including how to configure them on IOS-XR 6.0.1.

Configuring ONOS

ONOS implements the BGP Link State RFC and stateful PCE drafts. BGP-LS and PCE capabilities can be enabled by activating the BGP and BGPCEP apps. The apps can be activated either from the ONOS WEB GUI or from the ONOS command line.  The app ids are “org.onosproject.bgp” and “org.onosproject.bgpcep.”

PCE Tunnels with ONOS Goldeneye

After activating the app, the BGP peer can be configured through the REST API interface.

POST http://:8181/onos/v1/network/configuration/

{ 
   "apps": { 
       "org.onosproject.provider.bgp.cfg": { 
               "bgpapp": { 
                    "routerId": "192.168.1.113", 
                    "localAs": 1, 
                    "maxSession": 20, 
                    "lsCapability": true, 
                    "holdTime": 180, 
                    "largeAsCapability": false, 
                    "bgpPeer":[ {"peerIp": "10.66.0.201", "remoteAs": 1, "peerHoldTime": 
120, "connectMode":"active", "exportRoute": false}
                    ] 
               } 
       } 
   } 
} 

Configuring IOS-XR

The BGP Link state peering, IGP, and PCE information have to be configured on the peering IOS-XR router. PCE peering has to be configured in all the ingress routers in the network.  An example configuration is shown below:

BGP

router bgp 1
 bgp router-id 10.66.0.201
 address-family ipv4 unicast
 !
 address-family link-state link-state
 !
 neighbor 192.168.1.113
  remote-as 1
  update-source Loopback0
  address-family ipv4 unicast
  !
  address-family link-state link-state
  !
 !
!

IGP

router ospf core
 distribute bgp-ls
 router-id 10.66.0.201
 network point-to-point
 area 0
  mpls traffic-eng
  interface Loopback0
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
  interface GigabitEthernet0/0/0/1
   network point-to-point
  !
  interface GigabitEthernet0/0/0/2
   network point-to-point
  !
 !
 mpls traffic-eng router-id 10.66.0.201
!

PCE

mpls traffic-eng
 pce
  peer source ipv4 10.66.0.201
  peer ipv4 192.168.1.113
  !
  segment-routing
  stateful-client
   instantiation
   timers redelegation-timeout 0
   timers state-timeout 0
  !
 !
!

ONOS GUI

Once the BGP-LS peering is established, the ONOS WEB-GUI will be able to show the link state topology. From the GUI, one can create PCE tunnels with bandwidth, cost, and signalling constraints.

PCE Tunnels with ONOS Goldeneye

The PCE created tunnel in the ingress IOS-XR router will look as below:

Name: tunnel-te1006  Destination: 10.66.0.204  Ifhandle:0xb80 (auto-tunnel pcc)
  Signalled-Name: traffic-matrix-core_tunnel-policy_192.168.1.113_0
  Status:
    Admin:    up Oper:   up   Path:  valid   Signalling: connected

    path option 10, (verbatim) type explicit (autopcc_te1006) (Basis for Setup, path weight 0)
    G-PID: 0x0800 (derived from egress interface properties)
    Bandwidth Requested: 0 kbps  CT0
    Creation Time: Wed Aug 10 21:27:46 2016 (00:00:14 ago)
  Config Parameters:
    Bandwidth:        0 kbps (CT0) Priority:  0  0 Affinity: 0x0/0xffff
    Metric Type: TE (global)
    Path Selection:
      Tiebreaker: Min-fill (default)
    Hop-limit: disabled
    Cost-limit: disabled
    Path-invalidation timeout: 10000 msec (default), Action: Tear (default)
    AutoRoute: disabled  LockDown: disabled   Policy class: not set
    Forward class: 0 (default)
    Forwarding-Adjacency: disabled
    Autoroute Destinations: 0
    Loadshare:          0 equal loadshares
    Auto-bw: disabled
    Fast Reroute: Disabled, Protection Desired: None
    Path Protection: Not Enabled
    BFD Fast Detection: Disabled
    Reoptimization after affinity failure: Enabled
    Soft Preemption: Disabled
  Auto PCC: 
    Symbolic name: traffic-matrix-core_tunnel-policy_192.168.1.113_0
    PCEP ID: 1007
    Delegated to: 192.168.1.113
    Created by: 192.168.1.113
  History:
    Tunnel has been up for: 00:00:12 (since Wed Aug 10 21:27:48 UTC 2016)
    Current LSP:
      Uptime: 00:00:12 (since Wed Aug 10 21:27:48 UTC 2016)

  Path info (PCE controlled):
  Hop0: 10.2.11.204

At Packet Design, we are excited to lead and embrace the evolution of SDN. We are eagerly looking forward to REST API support for creating and maintaining PCE-based tunnels in the upcoming ONOS release, which would enable us to integrate ONOS in our SDN analytics and automation platform.

For the ONOS aficionados and ornithologists reading this post, please forgive the artistic license we exercised with the blog post image above. And in particular, apologies to the goldeneye duck after which the ONOS release was named.

Explorer Suite | Resources | Request Demo | About Packet Design | Follow us on Twitter