
{#
Copyright 2017-present Open Networking Foundation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
#}


// This is a commented JSON data file. The comments must stripped from the
// file before passing it to a JSON parser. This can be done various way
// including the JavaScript JSON.minify() function or a simple sed script
// such as "catting" this file through sed -e '|s//.*$||g'.


// This file represents the network configuration for the cord demo pod number
// two (2).
{
    "ports" : {

        // Leaf-1/port-1 connected to cord-r2-s1/eth0
        "of:0000000000000021/1" : {
            "interfaces" : [
                {
                    "ips" : [ "10.3.1.254/24" ] // Represents a fake gateway
                                                // for this subnet. ONOS will
                                                // ARP this and respond.
                }
            ]
        },

        // Leaf-1/port-2 connected to cord-r2-s2/eth0
        "of:0000000000000021/2" : {
            "interfaces" : [
                {
                    "ips" : [ "10.3.1.254/24" ] // Represents a fake gateway
                                                // for this subnet. ONOS will
                                                // ARP this and respond.
                },
                {
                    "vlan" : "1000" // cross-connect s-tag 1000 to Tibit OLT
                },
                // Need to specify the public IP for the vSG
                {
                    "ips" : [ "10.3.1.130/32" ] // vSG public IP address /32
                }
            ]
        },

	// Leaf-1/port-129 connected to Tibit OLT
        // The physical port is port 25, but we are using a break out cable and thus the switch
        // create virtual ports
        "of:0000000000000021/129" : {
            "interfaces" : [
                {
                    "name" : "tibit-olt", // unused
                    "vlan" : "1000" // cross-connect s-tag 42 to vSG
                }
            ]
        },

        // Leaf-2/port-3 connected to cord-r2-s3/eth0
        "of:0000000000000022/3" : {
            "interfaces" : [
                {
                    "ips" : [ "10.3.2.254/24" ] // Represents a fake gateway
                                                // for this subnet. ONOS will
                                                // ARP this and respond.
                }
            ]
        },

        // Leaf-2/port-4 connected to cord-r2-s4/eth0
        "of:0000000000000022/4" : {
            "interfaces" : [
                {
                    "ips" : [ "10.3.2.254/24" ] // Represents a fake gateway
                                                // for this subnet. ONOS will
                                                // ARP this and respond.
                }
            ]
        }
    },

    "devices" : {
        "of:0000000000000021" : {
            "segmentrouting" : {
                "name" : "leaf-1",
                "nodeSid" : 101,
                "routerIp" : "10.3.1.254",
                "routerMac" : "cc:37:ab:7c:b9:d6",
                "isEdgeRouter" : true,
                "adjacencySids" : []
            }
        },
        "of:0000000000000022" : {
            "segmentrouting" : {
                "name" : "leaf-2",
                "nodeSid" : 102,
                "routerIp" : "10.3.2.254",
                "routerMac" : "cc:37:ab:7c:ba:da",
                "isEdgeRouter" : true,
                "adjacencySids" : []
            }
        },
        "of:0000000000000011" : {
            "segmentrouting" : {
                "name" : "spine-1",
                "nodeSid" : 103,
                "routerIp" : "10.2.30.1",
                "routerMac" : "cc:37:ab:7c:be:68",
                "isEdgeRouter" : false,
                "adjacencySids" : []
            }
        },
        "of:0000000000000012" : {
            "segmentrouting" : {
                "name" : "spine-2",
                "nodeSid" : 104,
                "routerIp" : "10.2.30.2",
                "routerMac" : "cc:37:ab:7c:bf:ee",
                "isEdgeRouter" : false,
                "adjacencySids" : []
            }
        }
    },
    "links": {
        // spine 1/1 connected to leaf 1/31
        "of:0000000000000011/1-of:0000000000000021/31": {
            "basic": {}
        },

        // spine 1/2 connected to leaf 2/31
        "of:0000000000000011/2-of:0000000000000022/31": {
            "basic": {}
        },

        // spine 2/1 connected to leaf 1/32
        "of:0000000000000012/1-of:0000000000000021/32": {
            "basic": {}
        },

        // spine 2/2 connected to leaf 2/32
        "of:0000000000000012/2-of:0000000000000022/32": {
            "basic": {}
        },

        // leaf 1/31 connected to spine 1/1
        "of:0000000000000021/31-of:0000000000000011/1": {
            "basic": {}
        },

        // leaf 1/32 connected to spine 2/1
        "of:0000000000000021/32-of:0000000000000012/1": {
            "basic": {}
        },

        // leaf 2/31 connected to spine 1/2
        "of:0000000000000022/31-of:0000000000000011/2": {
            "basic": {}
        },

        // leaf 2/23 connected to spine 2/2
        "of:0000000000000022/32-of:0000000000000012/2": {
            "basic": {}
        }
    },
    "hosts" : {
        // cord-r2-s1 iface eth0
        "3c:fd:fe:9e:93:10/-1" : {
            "basic": {
                "ips": ["10.3.1.1"],                  // host IP on fabric
                "location": "of:0000000000000021/1"   // link back to fabric leaf-1/port-1
            }
        },

        // cord-r2-s2 iface eth0
        "3c:fd:fe:9e:8a:88/-1" : {
            "basic": {
                "ips": ["10.3.1.2"],                 // host IP on fabric
                "location": "of:0000000000000021/2"  // link back to fabric leaf-1/port-2
            }
        },

       // fa:16:3e:94:7e:c5
       // fa:16:3e:94:7e:c5
       // OLD: 02:42:0a:03:01:82

        "fa:16:3e:94:7e:c5/-1" : { // vSG1
            "basic": {
                "ips": ["10.3.1.130"], // vSG1 public IP address
                "location": "of:0000000000000001/5"
            }
        },

	// OLD: 02:42:0a:03:01:83
        "fa:16:3e:91:82:6a/-1" : { // vSG1 VM
            "basic" : {
                "ips": ["10.3.1.131"],
                "location": "of:0000000000000001/5"
             }
         },

        // cord-r2-s3 iface eth0
        "3c:fd:fe:9e:94:98/-1" : {
            "basic": {
                "ips": ["10.3.2.1"],                 // host IP on fabric
                "location": "of:0000000000000022/3"  // link back to fabric leaf-2/port-3
            }
        },

        // cord-r2-s4 iface eth0
        "3c:fd:fe:9e:97:98/-1" : {
            "basic": {
                "ips": ["10.3.2.2"],                 // host IP on fabric
                "location": "of:0000000000000022/4"  // link back to fabric leaf-2/port-4
            }
        }
    },
    "apps" : {
        "org.onosproject.core" : {
            "core" : {
                "linkDiscoveryMode" : "STRICT" // enable strict link validation
            }
        }
    }
}
