Segment Routing with OpenDaylight Beryllium: A Packet Design How-to

OpenDaylight released Beryllium-SR1 on March 22. SR1 included a couple of major bug fixes, such as BUG-5453, which re-enabled the segment routing capability that was missing in previous Beryllium releases. In this blog we will go step by step into how to use segment routing with OpenDaylight, IOS-XR 6.0.0, and the Packet Design SDN platform.

Configuring OpenDaylight 

Beryllium-SR1 implements draft-sivabalan-pce-segment-routing-02 PCEP extension for segment routing. The segment routing capability is enabled by default, eliminating any need to make changes in the initial configuration file 33-pcep-segment-routing.xml. The PCEP extensions allow OpenDaylight to create/read/update/delete segment routed tunnels.

Configuring IOS-XR

The segment routing capability has to be explicitly enabled in IOS XR PCE, IGP (ISIS/OSPF), and global configurations.

PCE

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

IGP

router isis core
 is-type level-2-only
 net 00.0001.0000.0000.00c9.00
 segment-routing global-block 90000 100000
 address-family ipv4 unicast
  metric-style wide
  mpls traffic-eng level-2-only
  mpls traffic-eng router-id Loopback0
  segment-routing mpls
 !
 interface Loopback0
  address-family ipv4 unicast
  prefix-sid index 1
 !
!

Global

!
segment-routing
!

SDN Management and Orchestration

We have added segment routing support to Packet Design’s upcoming release. Our first SDN app, SDN Traffic Engineering (SDN-TE), supports automated provisioning of tunnels through RSVP-TE or segment routing as a policy. Based on the policy, the SDN-TE app uses the appropriate RESTConf API to provision the tunnels. Here is an example of using RESTConf to create a segment routed tunnel in OpenDaylight:

{
 "input": {
  "arguments": {
   "endpoints-obj": {
    "ipv4": {
     "destination-ipv4-address": "10.66.0.201",
     "source-ipv4-address": "10.66.0.203"
    }
   },
  "ero": {
   "subobject": [{
    "ip-address": "10.66.0.201",
    "loose": false,
    "m-flag": true,
    "sid": 16001,
    "sid-type": "ipv4-node-id"
   }]
  },
  "lsp": {
   "administrative": true,
   "delegate": true
  },
  "lspa": {
   "hold-priority": 0,
   "include-any": 0,
   "setup-priority": 0
  },
  "path-setup-type": {
   "pst": 1
  }
 },
 "name": "traffic-matrix-core_tunnel-policy_192.168.1.21",
 "network-topology-ref": "/network-topology:network-topology/network-topology:topology[network-topology:topology-id='pcep-topology']",
 "node": "pcc://10.66.0.203"
 }
}

At Packet Design, we are excited to lead and embrace the evolution of SDN and segment routing. Our CTO Cengiz Alaettinoglu believes segment routing, along with YANG, is critical to viable WAN SDN architectures. See his blog post from earlier this month titled “A Case for Segment Routing and YANG Data Models.” We hope these new technologies close the real-world gaps soon, making SDN simpler for everyone.