Skip to content

Commit 24f3ce1

Browse files
committed
add images
1 parent f2fa4b5 commit 24f3ce1

14 files changed

+72
-24
lines changed

‎README.md

+72-24
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,36 @@ Legato is the topmost layer that interfaces with Operations Support Systems (OSS
2828

2929
Currently, the UniMgr project supports devices compliant with Cisco XR (ASR 9000) devices. Cisco and Xorian collaborated to upgrade this support for work with more recently version of IOS XR software. The Xorian team can easily develop drivers for devices of other vendors to enable orchestration of these six services on other devices.
3030

31-
This repository provides a tutorial that can be used to try the UniMgr project for yourself. The tutorial demonstrates orchestration of these services using two Cisco XR devices running in a Cisco DevNet Sandbox. Postman is used to invoke the Legato API with the necessary parameters to provision the services. This repo includes the Postman [environment](OpenDaylightXR Sandboxes.postman_environment.json) and [collection](./unimgr.postman_collection.json) referenced in the steps that follow.
31+
This repository provides a tutorial that can be used to try the UniMgr project for yourself. The tutorial demonstrates orchestration of these services using two Cisco XR devices running in a Cisco DevNet Sandbox. Postman is used to invoke the Legato API with the necessary parameters to provision the services. This repo includes the Postman [environment](unimgr.postman_environment.json) and [collection](./unimgr.postman_collection.json) referenced in the steps that follow.
3232

3333
## Create EVC Service using Cisco XR - Step By Step
3434

35-
Prerequisites: For this tutorial, you will need access to a computer on which you can the prerequisite software packages and tools. You will also need access to two Cisco IOS XR devices.
35+
###Prerequisites
3636

37-
If you do not have access to two Cisco IOS XR devices, you can use those provided by the CiscoDevNet Sandbox for IOS XR Programmability. If you do not have access to a computer on which you can install software, you can use the Linux host included within the sandbox.
37+
For this tutorial, you will need access to a computer on which you can the [prerequisite](https://docs.opendaylight.org/en/stable-aluminium/developer-guide/developing-apps-on-the-opendaylight-controller.html#pre-requisites) software packages and tools. You will also need access to two Cisco IOS XR devices.
38+
39+
If you do not have access to two Cisco IOS XR devices, you can use those provided by the CiscoDevNet [Sandbox](https://devnetsandbox.cisco.com/RM/Diagram/Index/883f8ea6-54a1-453e-98f5-fc175a2a90de?diagramType=Topology_) for IOS XR Programmability. If you do not have access to a computer on which you can install software, you can use the Linux host included within the sandbox.
3840

3941
This sandbox must be reserved prior to use. You can request a reservation for up to a week. It typically takes 10-15 minutes for the sandbox to be ready once it is reserved. Once you receive the email confirming the availability of your sandbox, use the information in that email to establish the VPN required to access your sandbox.
4042

41-
The sandbox provides two Cisco IOS XRv 9000 devices (R1 and R2) connected back to back, plus a Linux host that acts as a development box (devbox).
43+
The sandbox provides two Cisco IOS XRv 9000 devices (R1 and R2) connected back to back, plus a Linux host that acts as a development box (devbox).
44+
45+
![Cisco DevNet Sandbox](./images/sandbox.png)
4246

43-
### Step 1: Clone the “master” branch of “unimgr” project from the OpenDaylight repository.
47+
### Step 1: Clone the “master” branch of “unimgr” project from the OpenDaylight repository
4448

45-
$ git clone -b master https://git.opendaylight.org/gerrit/unimgr
49+
```
50+
$ git clone -b master https://git.opendaylight.org/gerrit/unimgr
51+
```
4652

47-
### Step 2: Change to the “unimgr” directory and build the project.
53+
### Step 2: Change to the “unimgr” directory and build the project
4854

55+
```
4956
$ cd unimgr
5057
$ mvn clean install
58+
```
5159

52-
### Step 3: After a successful build, start unimgr.
60+
### Step 3: After a successful build, start unimgr
5361

5462
The unimgr project builds a karaf distribution that has the umimgr component as a deployed
5563
feature. It is necessary to set a higher than default maximum heap size for the JVM when running
@@ -58,40 +66,54 @@ karaf.
5866
$ export JAVA_MAX_MEM=2g
5967
$ ./karaf/target/assembly/bin/karaf
6068

69+
![OpenDaylight startup](./images/karaf.png)
70+
6171
The resulting log file is ./karaf/target/assembly/data/log/karaf.log.
6272

6373

6474

65-
### Step 4: To enable support for Ethernet Virtual Connection (EVC) services, install the following features via the OpenDaylight console.
66-
75+
### Step 4: To enable support for Ethernet Virtual Connection (EVC) services, install the following features via the OpenDaylight console
76+
77+
```
6778
opendaylight-user@root>feature:install odl-unimgr-legato-api
6879
opendaylight-user@root>feature:install odl-unimgr-cisco-xr-driver
80+
```
6981

7082
### Step 5: Verify OpenDaylight is running
7183

72-
You can verify that OpenDaylight is running on your system with the UniMgr driver for Cisco XR devices installed and the UniMgr Legato API enabled by accessing the network topology API.
84+
You can verify that OpenDaylight is running on your system with the UniMgr driver for Cisco XR devices installed and the UniMgr Legato API enabled by accessing the network topology API:
85+
86+
<http://localhost:8181/rests/data/network-topology?content=nonconfig> (username: admin/ password: admin)
7387

74-
http://localhost:8181/rests/data/network-topology?content=nonconfig (username: admin/ password: admin).
88+
![Network Topology](./images/network-topology.png)
7589

76-
### Step 6: Access your Cisco IOS XR devices.
90+
### Step 6: Access your Cisco IOS XR devices
7791

7892
The remainder of this tutorial assumes you are using the devices in the CiscoDevNet Sandbox for IOS XR Programmability and have established the VPN required to access the devices.
7993
If you are using your own devices, you will need to update the access information accordingly.
8094

8195
In one terminal, access R1
96+
97+
```
8298
$ ssh -p 2221 [email protected]
8399
Password: admin
100+
```
84101

85102
In another terminal, access R2
103+
```
86104
$ ssh -p 2231 [email protected]
87105
Password: admin
106+
```
88107

89108
Show the interfaces and l2vpn configuration prior to configuring anything on the devices.
90109

110+
![Initial Configuration](./images/r1-r2-initial.png)
111+
91112
### Step 7: Configure network interfaces on XR devices
92113

93114
On R1, configure a loopback interface and enable Gigabit Ethernet 0/0/0/2 as follows:
94115

116+
```
95117
RP/0/RP0/CPU0:r1#conf t
96118
RP/0/RP0/CPU0:r1(config)#interface gigabitEthernet 0/0/0/2
97119
RP/0/RP0/CPU0:r1(config-if)#no shutdown
@@ -100,9 +122,10 @@ RP/0/RP0/CPU0:r1(config)#interface loopback0
100122
RP/0/RP0/CPU0:r1(config-if)#ipv4 address 100.100.100.100 255.255.255.255
101123
RP/0/RP0/CPU0:r1(config-if)#commit
102124
RP/0/RP0/CPU0:r1(config-if)#end
103-
125+
```
104126
On R2, configure a loopback interface and enable Gigabit Ethernet 0/0/0/2 as follows:
105127

128+
```
106129
RP/0/RP0/CPU0:r2#conf t
107130
RP/0/RP0/CPU0:r2(config)#interface gigabitEthernet 0/0/0/2
108131
RP/0/RP0/CPU0:r2(config-if)#no shutdown
@@ -111,20 +134,26 @@ RP/0/RP0/CPU0:r2(config-if)#interface loopback0
111134
RP/0/RP0/CPU0:r2(config-if)#ipv4 address 200.200.200.200 255.255.255.255
112135
RP/0/RP0/CPU0:r2(config-if)#commit
113136
RP/0/RP0/CPU0:r2(config-if)#end
137+
```
114138

115139
Show the interfaces and l2vpn configuration after completing this configuration on the devices.
116140

141+
![Loopback Interface Configuration](./images/r1-r2-loopback.png)
142+
117143
Note, you will no longer see anything for GigabitEthernet 0/0/0/2 because its configuration is empty/default. You can verify the status of all the interfaces as follows:
118-
119-
### Step 8: Connect to R1 and R2 using OpenDaylight’s RESTCONF API, per RFC 8040.
120144

121-
All API calls are available as part of the Postman environment and collection available via .
145+
![show interface brief](./images/show-interface-brief.png)
146+
147+
### Step 8: Connect to R1 and R2 using OpenDaylight’s RESTCONF API, per RFC 8040
148+
149+
All API calls are available as part of the Postman [environment](unimgr.postman_environment.json) and [collection](./unimgr.postman_collection.json).
122150

123151
#### Connect R1
124152

125153
PUT: http://{{host}}:{{port}}/rests/data/network-topology:network-topology/topology=topology-netconf/node={{r1_name}}
126154

127155
Payload:
156+
```
128157
{
129158
"network-topology:node": [
130159
{
@@ -140,12 +169,16 @@ Payload:
140169
}
141170
]
142171
}
172+
```
173+
174+
![Connect to R1](./images/put-r1.png)
143175

144176
#### Connect R2
145177

146178
PUT: http://{{host}}:{{port}}/rests/data/network-topology:network-topology/topology=topology-netconf/node={{r2_name}}
147179

148-
Payload:
180+
Payload:
181+
```
149182
{
150183
"network-topology:node": [
151184
{
@@ -161,20 +194,29 @@ Payload:
161194
}
162195
]
163196
}
197+
```
198+
199+
![Connect to R2](./images/put-r2.png)
164200

165-
### Step 9: On mounting the devices successfully, each devices capabilities can be observed on network topology API.
201+
### Step 9: On mounting the devices successfully, each devices capabilities can be observed on network topology API
166202

167-
http://localhost:8181/rests/data/network-topology?content=nonconfig (username: admin/ password: admin).
203+
<http://localhost:8181/rests/data/network-topology?content=nonconfig> (username: admin/ password: admin)
204+
205+
![Network Topology](./images/network-topology-r1-r2.png)
168206

169207
This can also be observed using the equivalent API call via Postman. Note, that this, as with all Legato API calls, is an asynchronous operation. The response to the API call reflects the status of the change to the configuration database on OpenDaylight. It may take some time for this configuration to be successfully applied on the network devices to which OpenDaylight is connected. The following Postman request and the corresponding response are shown twice, once immediately after issuing the PUT requests to mount R1 and R2, and again 30 seconds later, after connection to each device and discovery of its capabilities has completed.
170208

171209
GET: http://{{host}}:{{port}}/rests/data/network-topology?content=nonconfig
172210

211+
![Network Topology via Postmand](./images/get-network-topology.png)
212+
173213
The complete list of capabilities is very long and continues well beyond that shown in the screenshot. Unimgr’s cisco-xr-driver explicitly looks for 3 capabilities. If any mounted device doesn’t have these capabilities, the driver will not work appropriately.
174214

175-
• "capability": "(http://cisco.com/ns/yang/Cisco-IOS-XR-l2vpn-cfg?revision=2017-06-26)Cisco-IOS-XR-l2vpn-cfg"
176-
• "capability": "(http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg?revision=2017-09-07)Cisco-IOS-XR-ifmgr-cfg"
177-
• "capability": "(http://cisco.com/ns/yang/Cisco-IOS-XR-infra-policymgr-cfg?revision=2017-12-12)Cisco-IOS-XR-infra-policymgr-cfg"
215+
- "capability": "(http://cisco.com/ns/yang/Cisco-IOS-XR-l2vpn-cfg?revision=2017-06-26)Cisco-IOS-XR-l2vpn-cfg"
216+
- "capability": "(http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg?revision=2017-09-07)Cisco-IOS-XR-ifmgr-cfg"
217+
- "capability": "(http://cisco.com/ns/yang/Cisco-IOS-XR-infra-policymgr-cfg?revision=2017-12-12)Cisco-IOS-XR-infra-policymgr-cfg"
218+
219+
![Find l2vpn configuration](./images/find-l2vpn-cfg.png)
178220

179221
### Step 10: Create a MEF EP-Line service
180222

@@ -183,6 +225,7 @@ Create MEF services between endpoints using the Legato API. The following API ca
183225
PUT: http://{{host}}:{{port}}/rests/data/mef-legato-services:mef-services/carrier-ethernet/subscriber-services/evc={{evc3_id}}
184226

185227
Payload:
228+
```
186229
{
187230
"mef-legato-services:evc": [
188231
{
@@ -328,12 +371,17 @@ Payload:
328371
}
329372
]
330373
}
374+
```
375+
376+
![Create EP-Line Service](./images/put-epl.png)
331377

332378
### Step 11: Verify configuration on R1 and R2
333379

334380
Show the interface and l2vpn configuration of both devices after the creation of the service. Note that Gigabit Ethernet 0/0/0/2 on both devices now have an mtu and l2transport configured and that l2vpn is now configured on both devices as well.
335381

382+
![Verify configuration](./images/verify-cfg.png)
383+
336384
## Connect with others working on Unimgr
337385

338-
If you have any question or wish to contribute in UniMgr project please reach out to us at [email protected] .
386+
If you have any question or wish to contribute in UniMgr project please reach out to us at <mailto:[email protected]>.
339387

‎images/find-l2vpn-cfg.png

55.8 KB
Loading

‎images/get-network-topology.png

47.3 KB
Loading

‎images/karaf.png

94 KB
Loading

‎images/network-topology-r1-r2.png

52.6 KB
Loading

‎images/network-topology.png

19.7 KB
Loading

‎images/put-epl.png

57.1 KB
Loading

‎images/put-r1.png

49.9 KB
Loading

‎images/put-r2.png

49.9 KB
Loading

‎images/r1-r2-initial.png

98.5 KB
Loading

‎images/r1-r2-loopback.png

103 KB
Loading

‎images/sandbox.png

154 KB
Loading

‎images/show-interface-brief.png

135 KB
Loading

‎images/verify-cfg.png

141 KB
Loading

0 commit comments

Comments
 (0)