Blue: standard fabric operation
Orange: vSG LAN connectivity (cross-connect)
Magenta: vSG WAN connectivity (default route)
Green: vRouter integration
Light Blue: PIM integration
Red: Link validation
{
"ports" : {
"of:0000000000000001/5" : { // connects to node 1
"interfaces" : [
{
"ips" : [ "10.0.1.254/24" ] // subnet of node 1
},
{
"vlan" : "69" // cross-connect s-tag 69 to Fujitsu OLT
},
{
"vlan" : "222" // cross-connect s-tag 222 to PMC OLT
},
{
"ips" : [ "A.A.A.A/32" ] // vSG1 public IP address /32
},
{
"ips" : [ "B.B.B.B/32" ] // vSG2 public IP address /32
}
]
},
"of:0000000000000001/7" : { // connect to node 3
"interfaces" : [
{
"ips" : [ "10.0.1.254/24" ] // subnet of node 3
}
]
},
"of:0000000000000001/30" : { // connect to vSG3 directly without OLT (temporary)
"interfaces" : [
{
"ips" : [ "C.C.C.C/32" ] // vSG3 /32 public IP address
}
]
},
"of:0000000000000001/65" : { // connect to Fujitsu OLT
"interfaces" : [
{
"name" : "fujitsu-olt", // unused
"vlan" : "69" // cross-connect s-tag 69 to vSG
}
]
},
"of:0000000000000001/73" : { // connect to PMC OLT
"interfaces" : [
{
"name" : "pmc-olt", // unused
"vlan" : "222" // cross-connect s-tag 222 to vSG
}
]
},
"of:0000000000000002/5" : { // connect to node 2
"interfaces" : [
{
"ips" : [ "10.0.2.254/24" ] // subnet of node 2
}
]
},
"of:0000000000000002/32" : { // connect to Internet router
"interfaces" : [
{
"name" : "external-quagga", // Internet router interface name
"ips" : [ "10.231.254.202/30", "10.231.254.223/32" ], // Quagga IP addresses
"mac" : "00:16:3e:56:2b:48" // Quagga WAN MAC
}
],
"pimInterface" : { // PIM configuration
"interfaceName" : "external-quagga", // port that faces the Internet router
"enabled" : true,
"helloInterval" : 1,
"holdTime" : 3,
"propagationDelay" : 500,
"overrideInterval" : 2500
}
}
},
"devices" : {
"of:0000000000000001" : { // fabric leaf 1
"segmentrouting" : {
"name" : "Leaf-R1",
"nodeSid" : 101, // segment router SID
"routerIp" : "10.0.1.254", // segment router IP (default gateway of compute nodes)
"routerMac" : "00:00:00:00:01:80", // segment router MAC
"isEdgeRouter" : true, // true if this is a leaf router
"adjacencySids" : [] // unused
}
},
"of:0000000000000002" : { // fabric leaf 2 DPID
"segmentrouting" : {
"name" : "Leaf-R2",
"nodeSid" : 102,
"routerIp" : "10.0.2.254",
"routerMac" : "00:00:00:00:02:80",
"isEdgeRouter" : true,
"adjacencySids" : []
}
},
"of:0000000000000191" : { // fabric spine 1 DPID
"segmentrouting" : {
"name" : "Spine-R1",
"nodeSid" : 103,
"routerIp" : "192.168.0.11",
"routerMac" : "00:00:01:00:11:80",
"isEdgeRouter" : false,
"adjacencySids" : []
}
},
"of:0000000000000192" : { // fabric spine 2 DPID
"segmentrouting" : {
"name" : "Spine-R2",
"nodeSid" : 104,
"routerIp" : "192.168.0.22",
"routerMac" : "00:00:01:00:22:80",
"isEdgeRouter" : false,
"adjacencySids" : []
}
}
},
"hosts" : {
"00:02:c9:1e:b1:20/-1" : { // node 1
"basic": {
"ips": ["10.0.1.1"], // node 1 IP
"location": "of:0000000000000001/5" // node 1 location
}
},
"02:42:cf:8d:c0:82/-1" : { // vSG1
"basic": {
"ips": ["A.A.A.A"], // vSG1 public IP address
"location": "of:0000000000000001/5"
}
},
"02:42:cf:8d:c0:83/-1" : { // vSG2
"basic": {
"ips": ["B.B.B.B"], // vSG2 public IP address
"location": "of:0000000000000001/5"
}
},
"00:02:c9:1e:b4:e0/-1" : { // node 2
"basic": {
"ips": ["10.0.1.2"],
"location": "of:0000000000000001/7"
}
},
"74:44:01:74:61:92/-1" : { // vSG3
"basic": {
"ips": ["C.C.C.C"], // vSG3 public IP address
"location": "of:0000000000000001/30"
}
},
"00:02:c9:1e:b4:60/-1" : { // node 2
"basic": {
"ips": ["10.0.2.1"], // node 2 IP
"location": "of:0000000000000002/5"
}
}
},
"links" : { // list of expected links
"of:0000000000000001/1-of:0000000000000191/1" : {
"basic" : {}
},
"of:0000000000000001/3-of:0000000000000192/1" : {
"basic" : {}
},
"of:0000000000000002/1-of:0000000000000191/3" : {
"basic" : {}
},
"of:0000000000000002/3-of:0000000000000192/3" : {
"basic" : {}
},
"of:0000000000000191/1-of:0000000000000001/1" : {
"basic" : {}
},
"of:0000000000000192/1-of:0000000000000001/3" : {
"basic" : {}
},
"of:0000000000000191/3-of:0000000000000002/1" : {
"basic" : {}
},
"of:0000000000000192/3-of:0000000000000002/3" : {
"basic" : {}
}
},
"apps" : {
"org.onosproject.core" : {
"core" : {
"linkDiscoveryMode" : "STRICT" // enable strict link validation
}
},
"org.onosproject.segmentrouting" : {
"segmentrouting" : {
"vRouterMacs" : [
"a4:23:05:34:56:78" // vRouter LAN MAC (vSG’s default gateway)
],
"vRouterId" : "of:0000000000000002", // vRouter DPID (0/0 is replaced by this)
"suppressSubnet" : [ // Do not push subnet rules for these ports
"of:0000000000000002/31", "of:0000000000000002/32"
],
"suppressHost" : [ // Do not push host rules for these ports
"of:0000000000000001/65", "of:0000000000000001/73",
"of:0000000000000002/31", "of:0000000000000002/32"
]
}
},
"org.onosproject.router" : {
"router" : {
"controlPlaneConnectPoint" : "of:0000000000000002/31", // location of Quagga
"ospfEnabled" : "true", // enable OSPF
"pimEnabled" : "true", // enable PIM
"interfaces" : [ "external-quagga" ] // VR only handles peers on these ports
}
}
}
}