201 | | Correct ROADM operation requires Line In port of a ROADM to always receive a light. That is why there is a dedicated transceiver (tengigabitethernet 1/33 on ToR) that sends light through all ROADMs by passing through loop-back connection on Calient S320 (port 5.5.1) and redirecting back, so the light is received on the same transceiver. |
202 | | This kind of connection is called “Snake”. |
203 | | |
204 | | In order maintain this “Snake” for “Experiment_1” next connections form Table 1 must be in place: 1,3,5,6,8,9. |
205 | | |
206 | | === tengigabitethernet 1/33/1 on ToR configuration === |
207 | | |
208 | | Snake Interface (to passe through all ROADMs in loop): 60 (DWDM Channel C60) 1529,55 nm 196,00 Thz with frequency range [195.95,196.05] Thz |
| 195 | |
| 196 | (This is not currently part of the Mininet-Optical software emulated configuration.) |
| 197 | |
| 198 | === Transceiver 33 (ports 330/331) on ToR configuration === |
| 199 | |
| 200 | (This is not currently part of the Mininet-Optical software emulated configuration, |
| 201 | but it would be: |
| 202 | 60 (DWDM Channel C60) 1529,55 nm 196,00 Thz with frequency range [195.95,196.05] Thz) |
227 | | 1. ROADM 4 booster, |
228 | | 2. ROADM 2 booster, |
229 | | 3. ROADM 3 booster, |
230 | | 4. ROADM 1 booster, |
231 | | |
232 | | == Setting “Experiment_1” Connections == |
| 226 | (This is not currently done in the Mininet-Optical configuration.) |
| 227 | |
| 228 | == Configuring ROADMs in Mininet-Optical == |
| 229 | |
| 230 | ROADMs in Mininet-Optical may be configured via several mechanisms. An internal Python API may be used for configuration within the script that creates the network. More realistically, two external SDN/RPC control interfaces are provided: a simple REST interface and a more realistic NETCONF interface which is partially compatible with the NETCONF interface of the hardware Lumentum ROADM20. |
| 231 | |
| 232 | To start with, we will implement the connections using the REST API. |
| 233 | |
| 234 | == Setting “Experiment_1” Connections using REST == |
| 235 | |
| 236 | === Configuring ToR1<->ToR2 Connection 1 on Mininet-Optical using REST === |
| 237 | |
| 238 | * ROADM 4: |
| 239 | 1. Enable MUX port 4102 “From ToR 1” |
| 240 | 2. Add Connection “Exp1-FromTor1” with Input/ Output Port 4102/4201 with bandwidth [192.95;193.05] |
| 241 | 3. Enable DEMUX port 5202 “Towards ToR 1” |
| 242 | 4. Add Connection “Exp1-TorwardTor1” with I/O Port 5101/5202 |
| 243 | |
| 244 | 192.95THz..193.05THz has a middle frequency of 193.00 THz, which corresponds to channel C32 |
| 245 | on Mininet-Optical's default 50GHz channel grid. |
| 246 | C1's middle frequency is 191400 GHz, so C33 is at 191400 + 32*50 = 193000 GHz. |
| 247 | |
| 248 | We use curl to send a REST request to ROADM4 to add/drop ch33: |
| 249 | |
| 250 | curl "localhost:8080/connect?node=roadm4&port1=4102&port2=4201&channels=33" |
| 251 | curl "localhost:8080/connect?node=roadm4&port1=5101&port2=5202&channels=33" |
| 252 | |
| 253 | * ROADM 1: |
| 254 | 5. Enable MUX port 4102 “From ToR 2” |
| 255 | 6. Add Connection “From ToR 2” with I/O Port 4102/4201 with bandwidth [192.95;193.05] |
| 256 | 7. Enable DEMUX port 5202 “Towards ToR 2” |
| 257 | 8. Add Connection “Towards ToR 2” with I/O Port 5101/5202 |
| 258 | |
| 259 | We use curl to send a REST request to ROADM4 to add/drop ch33: |
| 260 | |
| 261 | curl "localhost:8080/connect?node=roadm1&port1=4102&port2=4201&channels=33" |
| 262 | curl "localhost:8080/connect?node=roadm1&port1=5101&port2=5202&channels=33" |
| 263 | |
| 264 | |
| 265 | === Configuring ToR1<->ToR3 Connection 2 on Mininet-Optical using REST === |
| 266 | |
| 267 | * ROADM 4 (Same As For Connection 1): |
| 268 | 1. Enable MUX port 4102 “From ToR 1” |
| 269 | 2. Add Connection “From ToR 1” with I/O Port 4102/4201 with bandwidth [192.95;193.05] |
| 270 | 3. Enable DEMUX port 5202 “Towards ToR 1” |
| 271 | 4. Add Connection “Towards ToR 1” with I/O Port 5101/5202 with bandwidth [192.95;193.05] |
| 272 | |
| 273 | curl "localhost:8080/connect?node=roadm4&port1=4102&port2=4201&channels=33" |
| 274 | curl "localhost:8080/connect?node=roadm4&port1=5101&port2=5202&channels=33" |
| 275 | |
| 276 | * ROADM 1 <Not Same!>: |
| 277 | 5. Enable MUX port 4101 “Through Port” (enabled for Snake) |
| 278 | 6. Add Connection “Through In” with I/O Port 4101/4201 with bandwidth [192.95;193.05] |
| 279 | 7. Enable DEMUX port 5201 “Through Port” (enabled for Snake) |
| 280 | 8. Add Connection “Through Out” with I/O Port 5101/5201 with bandwidth [192.95;193.05] |
| 281 | |
| 282 | This time we pass channel 33 through ROADM1: |
| 283 | |
| 284 | curl "localhost:8080/connect?node=roadm1&port1=4101&port2=4201&channels=33" |
| 285 | curl "localhost:8080/connect?node=roadm1&port1=5101&port2=5201&channels=33" |
| 286 | |
| 287 | * ROADM 2 (Same As For ROADM1): |
| 288 | 9. Enable MUX port 4101 “Through Port” (enabled for Snake) |
| 289 | 10. Add Connection “Through In” with I/O Port 4101/4201 with bandwidth [192.95;193.05] |
| 290 | 11. Enable DEMUX port 5201 “Through Port” (enabled for Snake) |
| 291 | 12. Add Connection “Through Out” with I/O Port 5101/5201 with bandwidth [192.95;193.05] |
| 292 | |
| 293 | And pass through ROADM2: |
| 294 | |
| 295 | curl "localhost:8080/connect?node=roadm2&port1=4101&port2=4201&channels=33" |
| 296 | curl "localhost:8080/connect?node=roadm2&port1=5101&port2=5201&channels=33" |
| 297 | |
| 298 | * ROADM 3 (Same As For ROADM4): |
| 299 | 13. Enable MUX port 4102 “From ToR 3” |
| 300 | 14. Add Connection “From ToR 3” with I/O Port 4102/4201 with bandwidth [192.95;193.05] |
| 301 | 15. Enable DEMUX port 5202 “Towards ToR 3” |
| 302 | 16. Add Connection “Towards ToR 3” with I/O Port 5101/5202 with bandwidth [192.95;193.05] |
| 303 | |
| 304 | And we drop at ROADM3: |
| 305 | |
| 306 | curl "localhost:8080/connect?node=roadm3&port1=4102&port2=4201&channels=33" |
| 307 | curl "localhost:8080/connect?node=roadm3&port1=5101&port2=5202&channels=33" |
| 308 | |
| 309 | ---- |
| 310 | |
| 311 | == Setting “Experiment_1” Connections using NETCONF == |
| 312 | |
| 313 | (TBD) |