Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions examples/ciena/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# How to configure Ciena simulators in KNE

## Interface naming
- `eth0` - Node management interface

### For saos
- `1` - First dataplane interface
- `X` - Subsequent dataplane interfaces will count onwards from 1. For example, the third dataplane interface will be `3`

### For waverouter
Waverouter port numbering format is: `<housing>/<slot>/<port>`. In the example below, 1/5/1, this is housing 1, slot 5, port 1
- `1/5/1` - First dataplane interface
- `1/5/X` - Subsequent dataplane interfaces will count onwards from 1. For example, the third dataplane interface will be `1/5/3`

### Notes:
- You can also use interface aliases of `ethX` (count onwards from 1) for both saos and waverouter
- We only support one waverouter interface box (using the wr-qbox type in JSON) at this time

### [wr13_example.json](./wr13_example.json)
```json
{
"WR1": {
"1": {
"type": "wr13",
"7": {
"type": "wr-ctm"
},
"5": {
"type": "wr-qbox"
}
}
}
}
```

## [saos.pbtxt topology](./saos.pbtxt)
This topology includes 2 saos which has 2 connections, saos-1 1----1 saos-2, saos-1 2----2 saos-2
```yaml
name: "saos-example"
nodes: {
name: "saos-1"
vendor: CIENA
model: "5132"
# when `image` is not specified under `config`, the "artifactory.ciena.com/psa/saos-containerlab:latest" container image is used by default
}
nodes: {
name: "saos-2"
vendor: CIENA
model: "5132"
# when `image` is not specified under `config`, the "artifactory.ciena.com/psa/saos-containerlab:latest" container image is used by default
}
links: {
a_node: "saos-1"
a_int: "1"
z_node: "saos-2"
z_int: "1"
}
links: {
a_node: "saos-1"
a_int: "2"
z_node: "saos-2"
z_int: "2"
}
```

## [waverouter.pbtxt topology](./waverouter.pbtxt)
This topology includes one saos and one waverouter which has 2 connections, saos-1 1----1/5/1 wr-1, saos-1 2----1/5/2 wr-1
* Waverouter model requires an additional file (wr13_example.json) to describe the internal system topology
```yaml
name: "waverouter-saos-example"
nodes: {
name: "wr-1"
vendor: CIENA
model: "waverouter"
config: {
# when `image` is not specified under `config`, the "artifactory.ciena.com/psa/rw-containerlab:latest" container image is used by default
vendor_data {
[type.googleapis.com/ciena.CienaConfig] {
system_equipment: {
equipment_json: "wr13_example.json"
}
}
}
}
}
nodes: {
name: "saos-1"
vendor: CIENA
model: "5132"
# when `image` is not specified under `config`, the "artifactory.ciena.com/psa/saos-containerlab:latest" container image is used by default
}
links: {
a_node: "saos-1"
a_int: "1"
z_node: "wr-1"
z_int: "1/5/1"
}
links: {
a_node: "saos-1"
a_int: "2"
z_node: "wr-1"
z_int: "1/5/2"
}
```
25 changes: 25 additions & 0 deletions examples/ciena/saos.pbtxt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: "saos-example"
nodes: {
name: "saos-1"
vendor: CIENA
model: "5132"
# when `image` is not specified under `config`, the "artifactory.ciena.com/psa/saos-containerlab:latest" container image is used by default
}
nodes: {
name: "saos-2"
vendor: CIENA
model: "5132"
# when `image` is not specified under `config`, the "artifactory.ciena.com/psa/saos-containerlab:latest" container image is used by default
}
links: {
a_node: "saos-1"
a_int: "1"
z_node: "saos-2"
z_int: "1"
}
links: {
a_node: "saos-1"
a_int: "2"
z_node: "saos-2"
z_int: "2"
}
34 changes: 34 additions & 0 deletions examples/ciena/waverouter.pbtxt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: "waverouter-saos-example"
nodes: {
name: "wr-1"
vendor: CIENA
model: "waverouter"
config: {
# when `image` is not specified under `config`, the "artifactory.ciena.com/psa/rw-containerlab:latest" container image is used by default
vendor_data {
[type.googleapis.com/ciena.CienaConfig] {
system_equipment: {
equipment_json: "wr13_example.json"
}
}
}
}
}
nodes: {
name: "saos-1"
vendor: CIENA
model: "5132"
# when `image` is not specified under `config`, the "artifactory.ciena.com/psa/saos-containerlab:latest" container image is used by default
}
links: {
a_node: "saos-1"
a_int: "1"
z_node: "wr-1"
z_int: "1/5/1"
}
links: {
a_node: "saos-1"
a_int: "2"
z_node: "wr-1"
z_int: "1/5/2"
}
13 changes: 13 additions & 0 deletions examples/ciena/wr13_example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"WR1": {
"1": {
"type": "wr13",
"7": {
"type": "wr-ctm"
},
"5": {
"type": "wr-qbox"
}
}
}
}
16 changes: 16 additions & 0 deletions proto/ciena.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
syntax = "proto3";

package ciena;

option go_package = "github.com/openconfig/kne/proto/ciena";

message SystemEquipment {
// Mount point for the files inside the pod.
string mount_dir = 1;
string equipment_json = 2;
}

// Ciena specific vendor data for KNE
message CienaConfig {
SystemEquipment system_equipment = 1;
}
Loading