Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warninginfo

The segment routing use case is built on an older internal release of ONOS (v0.3.0, and the ). The following instructions do not apply to ONOS 1.0.0 (Avocet), and are meant only for the SPRING-OPEN project.

 

  1. Edit ~/ONOS/conf/onos.properties

    If you create a new network configuration file, you need to specify the file in net.onrc.onos.core.configmanager.NetworkConfigManager.networkConfigFile field. In the example below, conf/sr-3node.conf file was specified.

    Code Block
    languagetext
    titleonos.properties
    collapsetrue
    floodlight.modules = net.floodlightcontroller.core.FloodlightProvider,\
    net.floodlightcontroller.threadpool.ThreadPool,\
    net.onrc.onos.core.topology.TopologyPublisher, \
    net.onrc.onos.core.datagrid.HazelcastDatagrid,\
    net.onrc.onos.core.flowprogrammer.FlowProgrammer,\
    net.onrc.onos.core.intent.runtime.PathCalcRuntimeModule,\
    net.onrc.onos.core.intent.runtime.PlanInstallModule,\
    net.onrc.onos.core.registry.ZookeeperRegistry, \
    net.onrc.onos.core.metrics.OnosMetricsModule, \
    net.onrc.onos.apps.websocket.WebSocketModule, \
    net.onrc.onos.core.main.config.DefaultConfiguration, \
    net.onrc.onos.apps.segmentrouting.SegmentRoutingManager
    net.floodlightcontroller.restserver.RestApiServer.port = 8080
    net.floodlightcontroller.core.FloodlightProvider.openflowport = 6633
    net.floodlightcontroller.core.FloodlightProvider.workerthreads = 16
    net.floodlightcontroller.core.FloodlightProvider.cpqdUsePipeline13 = true
    net.floodlightcontroller.forwarding.Forwarding.idletimeout = 5
    net.floodlightcontroller.forwarding.Forwarding.hardtimeout = 0
    net.onrc.onos.apps.websocket.WebSocketModule.port = 8081
    net.floodlightcontroller.core.FloodlightProvider.cpqdUsePipeline13 = true
    # NOTE: Do NOT modify or remove the line below. This value will be overwritten by onos.sh script.
    net.onrc.onos.core.datagrid.HazelcastDatagrid.datagridConfig = 
    # Uncomment and list all the ZooKeeper instances after localhost on multi-instance deployment.
    #net.onrc.onos.core.registry.ZookeeperRegistry.connectionString = localhost:2181,otherhost:2181
    # Specify a network configuration file to be used by the NetworkConfigManager
    net.onrc.onos.core.configmanager.NetworkConfigManager.networkConfigFile = conf/sr-3node.conf
  2. Edit network configuration file

    The following example (sr-3node.conf) shows the network configuration for the topology with three switches and three links (refer to figure below).

    Code Block
    languagetext
    titlesr-3node.conf
    collapsetrue
    {
      "comment": " Segment routing topology description and configuration",
      "restrictSwitches": true,
      "restrictLinks": true,
      "switchConfig":
                 [
                   { "nodeDpid": "00:01", "name": "Dallas-R1", "type": "Router_SR", "allowed": true,
                     "latitude": 80.80, "longitude": 90.10,
                     "params": { "routerIp": "192.168.0.1/32",
                                 "routerMac": "00:00:01:01:01:80",
                                 "nodeSid": 101,
                                 "isEdgeRouter" : true,
                                 "subnets": [
                                             { "portNo": 1, "subnetIp": "10.0.1.128/24" },
                        					 { "portNo": 2, "subnetIp": "10.0.1.128/24" },
    					                     { "portNo": 3, "subnetIp": "10.0.1.128/24" },
                                             { "portNo": 4, "subnetIp": "10.0.2.128/24" },
                                             { "portNo": 5, "subnetIp": "10.0.3.128/24" }
                                             ]
                                 }
                     },
                   { "nodeDpid": "00:02", "name": "Dallas-R2", "type": "Router_SR", "allowed": true,
                     "latitude": 80.80, "longitude": 90.10,
                     "params": { "routerIp": "192.168.0.2/32",
                                 "routerMac": "00:00:02:02:02:80",
                                 "nodeSid": 102,
                                 "isEdgeRouter" : false
                                 }
                     },
                   { "nodeDpid": "00:03", "name": "Dallas-R3", "type": "Router_SR", "allowed": true,
                     "latitude": 80.80, "longitude": 90.10,
                     "params": { "routerIp": "192.168.0.3/32",
                                 "routerMac": "00:00:07:07:07:80",
                                 "nodeSid": 103,
                                 "isEdgeRouter" : true,
                                 "subnets": [
                                             { "portNo": 1, "subnetIp": "7.7.7.128/24" }
                                             ]
                                 }
                     }
                   ],
      "linkConfig":[
                    { "type": "pktLink", "allowed": true,
                      "nodeDpid1": "01", "nodeDpid2": "02",
                      "params": { "port1": 6, "port2": 1 }
                      },
                   { "type": "pktLink", "allowed": true,
                      "nodeDpid1": "01", "nodeDpid2": "02",
                      "params": { "port1": 7, "port2": 3 }
                      },
                    { "type": "pktLink", "allowed": true,
                      "nodeDpid1": "02", "nodeDpid2": "03",
                      "params": { "port1": 2, "port2": 2 }
                      }
                    ]
    }

...