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": "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.
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.
Add comment