Gnome Meeting

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.”

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": "", 
                    "localAs": 1, 
                    "maxSession": 20, 
                    "lsCapability": true, 
                    "holdTime": 180, 
                    "largeAsCapability": false, 
                    "bgpPeer":[ {"peerIp": "", "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:


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


router ospf core
 distribute bgp-ls
 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


mpls traffic-eng
  peer source ipv4
  peer ipv4
   timers redelegation-timeout 0
   timers state-timeout 0


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.

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

Name: tunnel-te1006  Destination:  Ifhandle:0xb80 (auto-tunnel pcc)
  Signalled-Name: traffic-matrix-core_tunnel-policy_192.168.1.113_0
    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:
    Created by:
    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):

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.

Editorial Staff

Add comment

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.

Most popular

Most discussed