Resolve Merge Conflicts
diff --git a/TestON/drivers/common/cli/onosdriver.py b/TestON/drivers/common/cli/onosdriver.py
index 1f52be1..e2625cf 100644
--- a/TestON/drivers/common/cli/onosdriver.py
+++ b/TestON/drivers/common/cli/onosdriver.py
@@ -103,7 +103,7 @@
try:
self.handle.sendline("onos-package")
self.handle.expect("onos-package")
- self.handle.expect("tar.gz",timeout=10)
+ self.handle.expect("tar.gz",timeout=30)
handle = str(self.handle.before)
main.log.info("onos-package command returned: "+
handle)
@@ -855,18 +855,24 @@
def onos_remove_raft_logs(self):
'''
Removes Raft / Copy cat files from ONOS to ensure
- a cleaner environment.
-
+ a cleaner environment.
+
Description:
- Stops all ONOS defined in the cell,
+ Stops all ONOS defined in the cell,
wipes the raft / copycat log files
'''
try:
self.handle.sendline("")
self.handle.expect("\$")
self.handle.sendline("onos-remove-raft-logs")
- self.handle.expect("\$")
-
+ #Sometimes this command hangs
+ i = self.handle.expect(["\$", pexpect.TIMEOUT],
+ timeout=120)
+ if i == 1:
+ i = self.handle.expect(["\$", pexpect.TIMEOUT],
+ timeout=120)
+ if i == 1:
+ return main.FALSE
return main.TRUE
except pexpect.EOF:
@@ -880,7 +886,7 @@
main.log.info(self.name+" ::::::")
main.cleanup()
main.exit()
-
+
def onos_start_network(self, mntopo):
'''
Calls the command 'onos-start-network [<mininet-topo>]
diff --git a/TestON/drivers/common/cli/quaggaclidriver.py b/TestON/drivers/common/cli/quaggaclidriver.py
index 7851d13..19717fb 100644
--- a/TestON/drivers/common/cli/quaggaclidriver.py
+++ b/TestON/drivers/common/cli/quaggaclidriver.py
@@ -82,10 +82,10 @@
except:
return main.FALSE
- def generate_routes(self, net, numRoutes):
- main.log.info("I am in generate_routes method!")
-
- # a IP prefix will be composed by "net" + "." + m + "." + n + "." + x
+ def generate_prefixes(self, net, numRoutes):
+ main.log.info("I am in generate_prefixes method!")
+
+ # each IP prefix will be composed by "net" + "." + m + "." + n + "." + x
# the length of each IP prefix is 24
routes = []
routes_gen = 0
@@ -105,9 +105,138 @@
if routes_gen == numRoutes:
main.log.info("Successfully generated " + str(numRoutes)
- + " routes!")
+ + " prefixes!")
return routes
return main.FALSE
+
+ # This method generates a multiple to single point intent(MultiPointToSinglePointIntent) for a given route
+ def generate_expected_singleRouteIntent(self, prefix, nextHop, nextHopMac, sdnip_data):
+
+ ingress = []
+ egress = ""
+ for peer in sdnip_data['bgpPeers']:
+ if peer['ipAddress'] == nextHop:
+ egress = "of:" + str(peer['attachmentDpid']).replace(":", "") + ":" + str(peer['attachmentPort'])
+ else:
+ ingress.append("of:" + str(peer['attachmentDpid']).replace(":", "") + ":" + str(peer['attachmentPort']) )
+
+ selector = "[IPV4_DST{ip=" + prefix + "}, ETH_TYPE{ethType=800}]"
+ treatment = "[ETH_DST{mac=" + str(nextHopMac) + "}]"
+
+ intent = egress + "/" + str(sorted(ingress)) + "/" + selector + "/" + treatment
+ return intent
+
+ def generate_expected_onePeerRouteIntents(self, prefixes, nextHop, nextHopMac, sdnip_json_file_path):
+ intents = []
+ sdnip_json_file=open(sdnip_json_file_path).read()
+
+ sdnip_data = json.loads(sdnip_json_file)
+
+ for prefix in prefixes:
+ intents.append(self.generate_expected_singleRouteIntent(prefix, nextHop, nextHopMac, sdnip_data))
+ return sorted(intents)
+
+ # TODO
+ # This method generates all expected route intents for all BGP peers
+ def generate_expected_routeIntents(self):
+ intents = []
+ return intents
+
+ # This method extracts all actual routes from ONOS CLI
+ def extract_actual_routes(self, get_routes_result):
+ routes_json_obj = json.loads(get_routes_result)
+
+ allRoutes_actual = []
+ for route in routes_json_obj:
+ if route['prefix'] == '172.16.10.0/24':
+ continue
+ allRoutes_actual.append(route['prefix'] + "/" + route['nextHop'])
+
+ return sorted(allRoutes_actual)
+
+ # This method extracts all actual route intents from ONOS CLI
+ def extract_actual_routeIntents(self, get_intents_result):
+ intents = []
+ # TODO: delete the line below when change to Mininet demo script
+ get_intents_result=open("../tests/SdnIpTest/intents.json").read()
+ intents_json_obj = json.loads(get_intents_result)
+
+ for intent in intents_json_obj:
+ if intent['appId'] != "org.onlab.onos.sdnip" :
+ continue
+ if intent['type'] == "MultiPointToSinglePointIntent":
+ egress = str(intent['egress']['device'])+ ":" + str(intent['egress']['port'])
+ ingress = []
+ for attachmentPoint in intent['ingress']:
+ ingress.append(str(attachmentPoint['device']) + ":" + str(attachmentPoint['port']))
+ intent = egress + "/" + str(sorted(ingress)) + "/" + intent['selector'] + "/" + intent['treatment']
+ intents.append(intent)
+ return sorted(intents)
+
+ # This method extracts all actual BGP intents from ONOS CLI
+ def extract_actual_bgpIntents(self, get_intents_result):
+ intents = []
+ # TODO: delete the line below when change to Mininet demo script
+ get_intents_result=open("../tests/SdnIpTest/intents.json").read()
+ intents_json_obj = json.loads(get_intents_result)
+
+ for intent in intents_json_obj:
+ if intent['appId'] != "org.onlab.onos.sdnip":
+ continue
+ if intent['type'] == "PointToPointIntent" and "protocol=6" in str(intent['selector']):
+ ingress = str(intent['ingress']['device']) + ":" + str(intent['ingress']['port'])
+ egress = str(intent['egress']['device']) + ":" + str(intent['egress']['port'])
+ selector = str(intent['selector']).replace(" ", "").replace("[", "").replace("]", "").split(",")
+ intent = ingress + "/" + egress + "/" + str(sorted(selector))
+ intents.append(intent)
+
+ return sorted(intents)
+
+ # This method generates a single point to single point intent(PointToPointIntent) for BGP path
+ def generate_expected_bgpIntents(self, sdnip_json_file_path):
+ from operator import eq
+
+ sdnip_json_file=open(sdnip_json_file_path).read()
+ sdnip_data = json.loads(sdnip_json_file)
+
+ intents = []
+ bgpPeerAttachmentPoint=""
+ bgpSpeakerAttachmentPoint = "of:" + str(sdnip_data['bgpSpeakers'][0]['attachmentDpid']).replace(":", "") + ":" + str(sdnip_data['bgpSpeakers'][0]['attachmentPort'])
+ for peer in sdnip_data['bgpPeers']:
+ bgpPeerAttachmentPoint = "of:" + str(peer['attachmentDpid']).replace(":", "") + ":" + str(peer['attachmentPort'])
+ # find out the BGP speaker IP address for this BGP peer
+ bgpSpeakerIpAddress=""
+ for interfaceAddress in sdnip_data['bgpSpeakers'][0]['interfaceAddresses']:
+ #if eq(interfaceAddress['interfaceDpid'],sdnip_data['bgpSpeakers'][0]['attachmentDpid']) and eq(interfaceAddress['interfacePort'], sdnip_data['bgpSpeakers'][0]['attachmentPort']):
+ if eq(interfaceAddress['interfaceDpid'],peer['attachmentDpid']) and eq(interfaceAddress['interfacePort'], peer['attachmentPort']):
+ bgpSpeakerIpAddress = interfaceAddress['ipAddress']
+ break
+ else:
+ continue
+
+ # from bgpSpeakerAttachmentPoint to bgpPeerAttachmentPoint direction
+ selector_str = "IPV4_SRC{ip=" + bgpSpeakerIpAddress + "/32}," + "IPV4_DST{ip=" + peer['ipAddress']+ "/32}," + "IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}"
+ selector = selector_str.replace(" ", "").replace("[", "").replace("]", "").split(",")
+ intent = bgpSpeakerAttachmentPoint + "/" + bgpPeerAttachmentPoint + "/" + str(sorted(selector))
+ intents.append(intent)
+
+ selector_str = "IPV4_SRC{ip=" + bgpSpeakerIpAddress + "/32}," + "IPV4_DST{ip=" + peer['ipAddress']+ "/32}," + "IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_SRC{tcpPort=179}"
+ selector = selector_str.replace(" ", "").replace("[", "").replace("]", "").split(",")
+ intent = bgpSpeakerAttachmentPoint + "/" + bgpPeerAttachmentPoint + "/" + str(sorted(selector))
+ intents.append(intent)
+
+ # from bgpPeerAttachmentPoint to bgpSpeakerAttachmentPoint direction
+ selector_str = "IPV4_SRC{ip=" + peer['ipAddress'] + "/32}," + "IPV4_DST{ip=" + bgpSpeakerIpAddress + "/32}," + "IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}"
+ selector = selector_str.replace(" ", "").replace("[", "").replace("]", "").split(",")
+ intent = bgpPeerAttachmentPoint + "/" + bgpSpeakerAttachmentPoint + "/" + str(sorted(selector))
+ intents.append(intent)
+
+ selector_str = "IPV4_SRC{ip=" + peer['ipAddress'] + "/32}," + "IPV4_DST{ip=" + bgpSpeakerIpAddress + "/32}," + "IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_SRC{tcpPort=179}"
+ selector = selector_str.replace(" ", "").replace("[", "").replace("]", "").split(",")
+ intent = bgpPeerAttachmentPoint + "/" + bgpSpeakerAttachmentPoint + "/" + str(sorted(selector))
+ intents.append(intent)
+
+ return sorted(intents)
def add_routes(self, routes, routeRate):
main.log.info("I am in add_routes method!")
@@ -137,7 +266,7 @@
return main.TRUE
return main.FALSE
- # please use the generate_routes plus add_routes instead of this one
+ # Please use the generate_routes plus add_routes instead of this one
def add_route(self, net, numRoutes, routeRate):
try:
self.handle.sendline("")
@@ -184,6 +313,7 @@
if routes_added == numRoutes:
return main.TRUE
return main.FALSE
+
def del_route(self, net, numRoutes, routeRate):
try:
self.handle.sendline("")
diff --git a/TestON/tests/SdnIpTest/SdnIpTest.py b/TestON/tests/SdnIpTest/SdnIpTest.py
index 18b23af..dd73766 100755
--- a/TestON/tests/SdnIpTest/SdnIpTest.py
+++ b/TestON/tests/SdnIpTest/SdnIpTest.py
@@ -9,20 +9,38 @@
'''
Test the SDN-IP functionality
+ allRoutes_expected: all expected routes for all BGP peers
+ routeIntents_expected: all expected MultiPointToSinglePointIntent intents
+ bgpIntents_expected: expected PointToPointIntent intents
+ allRoutes_actual: all routes from ONOS LCI
+ routeIntents_actual: actual MultiPointToSinglePointIntent intents from ONOS CLI
+ bgpIntents_actual: actual PointToPointIntent intents from ONOS CLI
'''
import time
import json
from operator import eq
- # all generated routes for all BGP peers
- allRoutes = []
-
+ main.case("The test case is to help to setup the TestON environment and test new drivers")
+ SDNIP_JSON_FILE_PATH = "../tests/SdnIpTest/sdnip.json"
+ # all expected routes for all BGP peers
+ allRoutes_expected = []
main.step("Start to generate routes for BGP peer on host1")
- routes = main.Quaggacli.generate_routes(1, 3)
- main.log.info(routes)
-
- for route in routes:
- allRoutes.append(route + "/" + "1.1.1.1")
+ prefixes = main.Quaggacli.generate_prefixes(1, 3)
+ main.log.info(prefixes)
+
+ # TODO: delete the static prefix below after integration with Demo Mininet script
+ prefixes = []
+ prefixes.append("172.16.30.0/24")
+ prefixes.append("1.0.0.0/24")
+ prefixes.append("2.0.0.0/24")
+ prefixes.append("3.0.0.0/24")
+
+
+ for prefix in prefixes:
+ # generate route with next hop
+ allRoutes_expected.append(prefix + "/" + "1.1.1.1")
+
+ routeIntents_expected = main.Quaggacli.generate_expected_onePeerRouteIntents(prefixes, "192.168.30.1", "00:00:00:00:03:01", SDNIP_JSON_FILE_PATH)
# start to insert routes into the bgp peer
main.step("Start Quagga-cli on host1")
@@ -31,13 +49,13 @@
main.step("Start to configure Quagga on host1")
main.Quaggacli.enter_config(64513)
- main.step("Start to generate and add routes for BGP peer on host1")
- routes = main.Quaggacli.generate_routes(8, 3)
+ main.step("Start to generate and add routes for BGP peer on host1")
+ routes = main.Quaggacli.generate_prefixes(8, 3)
main.Quaggacli.add_routes(routes, 1)
# add generates routes to allRoutes
for route in routes:
- allRoutes.append(route + "/" + "1.1.1.1")
+ allRoutes_expected.append(route + "/" + "1.1.1.1")
cell_name = main.params['ENV']['cellName']
ONOS1_ip = main.params['CTRL']['ip1']
@@ -62,27 +80,50 @@
get_routes_result = main.ONOScli.routes(json_format=True)
# parse routes from ONOS CLI
- routes_list = []
- routes_json_obj = json.loads(get_routes_result)
- for route in routes_json_obj:
- if route['prefix'] == '172.16.10.0/24':
- continue
- routes_list.append(route['prefix'] + "/" + route['nextHop'])
+ allRoutes_actual = main.Quaggacli.extract_actual_routes(get_routes_result)
- main.log.info("Start to checking routes")
- main.log.info("Routes inserted into the system:")
- main.log.info(sorted(allRoutes))
+ main.step("Check routes installed")
+ main.log.info("Routes expected:")
+ main.log.info(sorted(allRoutes_expected))
main.log.info("Routes get from ONOS CLI:")
- main.log.info(sorted(routes_list))
- utilities.assert_equals(expect=sorted(allRoutes), actual=sorted(routes_list),
- onpass="***Routes in SDN-IP are correct!***",
- onfail="***Routes in SDN-IP are wrong!***")
-
- time.sleep(2)
- main.step("Get intents installed on ONOS")
- get_intents_result = main.ONOScli.intents(json_format=True)
- main.log.info(get_intents_result)
+ main.log.info(allRoutes_actual)
+ utilities.assert_equals(expect=sorted(allRoutes_expected), actual=allRoutes_actual,
+ onpass="***Routes in SDN-IP are correct!***",
+ onfail="***Routes in SDN-IP are wrong!***")
+ time.sleep(2)
+ get_intents_result = main.ONOScli.intents(json_format=True)
+
+
+ main.step("Check MultiPointToSinglePointIntent intents installed")
+ # route_intents_expected are generated when generating routes
+ # get rpoute intents from ONOS CLI
+ routeIntents_actual = main.Quaggacli.extract_actual_routeIntents(get_intents_result)
+ main.log.info("MultiPointToSinglePoint intents expected:")
+ main.log.info(routeIntents_expected)
+ main.log.info("MultiPointToSinglePoint intents get from ONOS CLI:")
+ main.log.info(routeIntents_actual)
+ utilities.assert_equals(expect=True, actual=eq(routeIntents_expected, routeIntents_actual),
+ onpass="***MultiPointToSinglePoint Intents in SDN-IP are correct!***",
+ onfail="***MultiPointToSinglePoint Intents in SDN-IP are wrong!***")
+
+
+ main.step("Check BGP PointToPointIntent intents installed")
+ # bgp intents expected
+ bgpIntents_expected = main.Quaggacli.generate_expected_bgpIntents(SDNIP_JSON_FILE_PATH)
+ # get BGP intents from ONOS CLI
+ bgpIntents_actual = main.Quaggacli.extract_actual_bgpIntents(get_intents_result)
+
+ bgpIntents_str_expected = str(bgpIntents_expected).replace('u',"")
+ bgpIntents_str_actual = str(bgpIntents_actual)
+ main.log.info("PointToPointIntent intents expected:")
+ main.log.info(bgpIntents_str_expected)
+ main.log.info("PointToPointIntent intents get from ONOS CLI:")
+ main.log.info(bgpIntents_str_actual)
+
+ utilities.assert_equals(expect=True, actual=eq(bgpIntents_str_expected, bgpIntents_str_actual),
+ onpass="***PointToPointIntent Intents in SDN-IP are correct!***",
+ onfail="***PointToPointIntent Intents in SDN-IP are wrong!***")
#main.step("Test whether Mininet is started")
#main.Mininet2.handle.sendline("xterm host1")
diff --git a/TestON/tests/SdnIpTest/addresses.json b/TestON/tests/SdnIpTest/addresses.json
new file mode 100644
index 0000000..f7eb983
--- /dev/null
+++ b/TestON/tests/SdnIpTest/addresses.json
@@ -0,0 +1,36 @@
+{
+ "addresses" : [
+ {
+ "dpid" : "00:00:00:00:00:00:00:a3",
+ "port" : "1",
+ "ips" : ["192.168.10.0/24"],
+ "mac" : "00:00:00:00:00:01"
+
+ },
+ {
+ "dpid" : "00:00:00:00:00:00:00:a5",
+ "port" : "1",
+ "ips" : ["192.168.20.0/24"],
+ "mac" : "00:00:00:00:00:01"
+ },
+ {
+ "dpid" : "00:00:00:00:00:00:00:a2",
+ "port" : "1",
+ "ips" : ["192.168.30.0/24"],
+ "mac" : "00:00:00:00:00:01"
+ },
+ {
+ "dpid" : "00:00:00:00:00:00:00:a6",
+ "port" : "1",
+ "ips" : ["192.168.40.0/24"],
+ "mac" : "00:00:00:00:00:01"
+ },
+ {
+ "dpid" : "00:00:00:00:00:00:00:a4",
+ "port" : "4",
+ "ips" : ["192.168.60.0/24"],
+ "mac" : "00:00:00:00:00:01"
+ }
+
+ ]
+}
\ No newline at end of file
diff --git a/TestON/tests/SdnIpTest/intents.json b/TestON/tests/SdnIpTest/intents.json
new file mode 100644
index 0000000..d17715f
--- /dev/null
+++ b/TestON/tests/SdnIpTest/intents.json
@@ -0,0 +1,1468 @@
+[
+ {
+ "id":"0xffffffffcb2cb6ec",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.10.101/32}, IPV4_DST{ip=192.168.10.1/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a3",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x140a3304",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a3, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.10.101/32}, IPV4_DST{ip=192.168.10.1/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a3, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffcb2d9828",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.10.1/32}, IPV4_DST{ip=192.168.10.101/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a3",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x1a89f138",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a3, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.10.1/32}, IPV4_DST{ip=192.168.10.101/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a3, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffd1418988",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.30.101/32}, IPV4_DST{ip=192.168.30.1/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a2",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x2cd85684",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a2, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.30.101/32}, IPV4_DST{ip=192.168.30.1/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a2, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x3122a56b",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.40.101/32}, IPV4_DST{ip=192.168.40.1/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a6",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x5874487",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a6, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a6, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.40.101/32}, IPV4_DST{ip=192.168.40.1/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a6, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a6, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x6ae96523",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.10.101/32}, IPV4_DST{ip=192.168.10.1/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a3",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x217361ed",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a3, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.10.101/32}, IPV4_DST{ip=192.168.10.1/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a3, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffaee31428",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.30.1/32}, IPV4_DST{ip=192.168.30.101/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a2",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x68cad35c",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a2, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.30.1/32}, IPV4_DST{ip=192.168.30.101/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a2, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffed2b21fa",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.20.1/32}, IPV4_DST{ip=192.168.20.101/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a5",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffffa5dbcf50",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a5, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.20.1/32}, IPV4_DST{ip=192.168.20.101/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a5, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x373774a3",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.60.101/32}, IPV4_DST{ip=192.168.60.1/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a4",
+ "port":"4"
+ },
+ "installable":[
+ {
+ "id":"0x5a75d509",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a4, portNumber=4}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.60.101/32}, IPV4_DST{ip=192.168.60.1/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a4, portNumber=4}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffff8d492c5d",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.10.1/32}, IPV4_DST{ip=192.168.10.101/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "ingress":{
+ "device":"of:00000000000000a3",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffffef408263",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a3, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.10.1/32}, IPV4_DST{ip=192.168.10.101/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a3, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffff8ce7d031",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.20.1/32}, IPV4_DST{ip=192.168.20.101/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a5",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffffb344fe39",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a5, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.20.1/32}, IPV4_DST{ip=192.168.20.101/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a5, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xf2665f1",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.30.1/32}, IPV4_DST{ip=192.168.30.101/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a2",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x5b61a473",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a2, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.30.1/32}, IPV4_DST{ip=192.168.30.101/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a2, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffd0e186b8",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.40.1/32}, IPV4_DST{ip=192.168.40.101/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a6",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x4d8d4942",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a6, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a6, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.40.1/32}, IPV4_DST{ip=192.168.40.101/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a6, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a6, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x3738d163",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.60.1/32}, IPV4_DST{ip=192.168.60.101/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "ingress":{
+ "device":"of:00000000000000a4",
+ "port":"4"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffff993b0fc9",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a4, portNumber=4}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.60.1/32}, IPV4_DST{ip=192.168.60.101/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a4, portNumber=4}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xfffffffff33e39a0",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.40.101/32}, IPV4_DST{ip=192.168.40.1/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a6",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffffda3dd5b2",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a6, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a6, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.40.101/32}, IPV4_DST{ip=192.168.40.1/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a6, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a6, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffff8ce60db9",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.20.101/32}, IPV4_DST{ip=192.168.20.1/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a5",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xfeca8b9",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a5, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.20.101/32}, IPV4_DST{ip=192.168.20.1/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a5, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x3124d881",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.40.1/32}, IPV4_DST{ip=192.168.40.101/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a6",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x40241a59",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a6, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a6, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.40.1/32}, IPV4_DST{ip=192.168.40.101/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a6, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a6, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffd141fa26",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.30.1/32}, IPV4_DST{ip=192.168.30.101/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "ingress":{
+ "device":"of:00000000000000a2",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x3018359e",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a2, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.30.1/32}, IPV4_DST{ip=192.168.30.101/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a2, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffaee2a38a",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.30.101/32}, IPV4_DST{ip=192.168.30.1/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a2",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x658af442",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a2, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.30.101/32}, IPV4_DST{ip=192.168.30.1/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a2, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffaf46b62f",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.20.1/32}, IPV4_DST{ip=192.168.20.101/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "ingress":{
+ "device":"of:00000000000000a5",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x7a92607b",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a5, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.20.1/32}, IPV4_DST{ip=192.168.20.101/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a5, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffff8d484b21",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.10.101/32}, IPV4_DST{ip=192.168.10.1/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a3",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffffe8c0c42f",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a3, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.10.101/32}, IPV4_DST{ip=192.168.10.1/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a3, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffed295f82",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.20.101/32}, IPV4_DST{ip=192.168.20.1/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a5",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x28379d0",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a5, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.20.101/32}, IPV4_DST{ip=192.168.20.1/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a5, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffdba23bce",
+ "type":"MultiPointToSinglePointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_DST{ip=172.16.30.0/24}, ETH_TYPE{ethType=800}]",
+ "treatment":"[ETH_DST{mac=00:00:00:00:03:01}]",
+ "ingress":[
+ {
+ "device":"of:00000000000000a3",
+ "port":"1"
+ },
+ {
+ "device":"of:00000000000000a4",
+ "port":"4"
+ },
+ {
+ "device":"of:00000000000000a6",
+ "port":"1"
+ },
+ {
+ "device":"of:00000000000000a5",
+ "port":"1"
+ }
+ ],
+ "egress":{
+ "device":"of:00000000000000a2",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x5e70036",
+ "type":"LinkCollectionIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a6, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_DST{ip=172.16.30.0/24}, ETH_TYPE{ethType=800}]",
+ "treatment":"[ETH_DST{mac=00:00:00:00:03:01}]",
+ "links":[
+ {
+ "src":{
+ "device":"of:00000000000000a4",
+ "port":"1"
+ },
+ "dst":{
+ "device":"of:00000000000000a2",
+ "port":"3"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a5",
+ "port":"2"
+ },
+ "dst":{
+ "device":"of:00000000000000a3",
+ "port":"4"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a6",
+ "port":"3"
+ },
+ "dst":{
+ "device":"of:00000000000000a4",
+ "port":"3"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a3",
+ "port":"3"
+ },
+ "dst":{
+ "device":"of:00000000000000a4",
+ "port":"2"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffaf44f3b7",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.20.101/32}, IPV4_DST{ip=192.168.20.1/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a5",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffffd73a0afb",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a5, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.20.101/32}, IPV4_DST{ip=192.168.20.1/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a5, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x751d3d2e",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.60.1/32}, IPV4_DST{ip=192.168.60.101/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a4",
+ "port":"4"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffffc4847e9e",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a4, portNumber=4}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.60.1/32}, IPV4_DST{ip=192.168.60.101/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a4, portNumber=4}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x3fb23806",
+ "type":"MultiPointToSinglePointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_DST{ip=2.0.0.0/24}, ETH_TYPE{ethType=800}]",
+ "treatment":"[ETH_DST{mac=00:00:00:00:03:01}]",
+ "ingress":[
+ {
+ "device":"of:00000000000000a3",
+ "port":"1"
+ },
+ {
+ "device":"of:00000000000000a4",
+ "port":"4"
+ },
+ {
+ "device":"of:00000000000000a6",
+ "port":"1"
+ },
+ {
+ "device":"of:00000000000000a5",
+ "port":"1"
+ }
+ ],
+ "egress":{
+ "device":"of:00000000000000a2",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x23d68afe",
+ "type":"LinkCollectionIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a6, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_DST{ip=2.0.0.0/24}, ETH_TYPE{ethType=800}]",
+ "treatment":"[ETH_DST{mac=00:00:00:00:03:01}]",
+ "links":[
+ {
+ "src":{
+ "device":"of:00000000000000a4",
+ "port":"1"
+ },
+ "dst":{
+ "device":"of:00000000000000a2",
+ "port":"3"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a5",
+ "port":"2"
+ },
+ "dst":{
+ "device":"of:00000000000000a3",
+ "port":"4"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a6",
+ "port":"3"
+ },
+ "dst":{
+ "device":"of:00000000000000a4",
+ "port":"3"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a3",
+ "port":"3"
+ },
+ "dst":{
+ "device":"of:00000000000000a4",
+ "port":"2"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x751be06e",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.60.101/32}, IPV4_DST{ip=192.168.60.1/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a4",
+ "port":"4"
+ },
+ "installable":[
+ {
+ "id":"0xffffffff85bf43de",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a4, portNumber=4}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.60.101/32}, IPV4_DST{ip=192.168.60.1/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a4, portNumber=4}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x6aea465f",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.10.1/32}, IPV4_DST{ip=192.168.10.101/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a3",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x27f32021",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a3, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.10.1/32}, IPV4_DST{ip=192.168.10.101/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a3, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xf25f553",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.30.101/32}, IPV4_DST{ip=192.168.30.1/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a2",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x5821c559",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a2, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.30.101/32}, IPV4_DST{ip=192.168.30.1/32}, IP_PROTO{protocol=1}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a2, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xfffffffff3406cb6",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.40.1/32}, IPV4_DST{ip=192.168.40.101/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "ingress":{
+ "device":"of:00000000000000a6",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x14daab84",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a6, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a6, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.40.1/32}, IPV4_DST{ip=192.168.40.101/32}, IP_PROTO{protocol=6}, ETH_TYPE{ethType=800}, TCP_DST{tcpPort=179}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a6, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a6, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffd7d10b27",
+ "type":"MultiPointToSinglePointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_DST{ip=1.0.0.0/24}, ETH_TYPE{ethType=800}]",
+ "treatment":"[ETH_DST{mac=00:00:00:00:03:01}]",
+ "ingress":[
+ {
+ "device":"of:00000000000000a3",
+ "port":"1"
+ },
+ {
+ "device":"of:00000000000000a4",
+ "port":"4"
+ },
+ {
+ "device":"of:00000000000000a6",
+ "port":"1"
+ },
+ {
+ "device":"of:00000000000000a5",
+ "port":"1"
+ }
+ ],
+ "egress":{
+ "device":"of:00000000000000a2",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffff8f921bfd",
+ "type":"LinkCollectionIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a6, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_DST{ip=1.0.0.0/24}, ETH_TYPE{ethType=800}]",
+ "treatment":"[ETH_DST{mac=00:00:00:00:03:01}]",
+ "links":[
+ {
+ "src":{
+ "device":"of:00000000000000a4",
+ "port":"1"
+ },
+ "dst":{
+ "device":"of:00000000000000a2",
+ "port":"3"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a5",
+ "port":"2"
+ },
+ "dst":{
+ "device":"of:00000000000000a3",
+ "port":"4"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a6",
+ "port":"3"
+ },
+ "dst":{
+ "device":"of:00000000000000a4",
+ "port":"3"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a3",
+ "port":"3"
+ },
+ "dst":{
+ "device":"of:00000000000000a4",
+ "port":"2"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffa79364e5",
+ "type":"MultiPointToSinglePointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_DST{ip=3.0.0.0/24}, ETH_TYPE{ethType=800}]",
+ "treatment":"[ETH_DST{mac=00:00:00:00:03:01}]",
+ "ingress":[
+ {
+ "device":"of:00000000000000a3",
+ "port":"1"
+ },
+ {
+ "device":"of:00000000000000a4",
+ "port":"4"
+ },
+ {
+ "device":"of:00000000000000a6",
+ "port":"1"
+ },
+ {
+ "device":"of:00000000000000a5",
+ "port":"1"
+ }
+ ],
+ "egress":{
+ "device":"of:00000000000000a2",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffffb81af9ff",
+ "type":"LinkCollectionIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a6, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_DST{ip=3.0.0.0/24}, ETH_TYPE{ethType=800}]",
+ "treatment":"[ETH_DST{mac=00:00:00:00:03:01}]",
+ "links":[
+ {
+ "src":{
+ "device":"of:00000000000000a4",
+ "port":"1"
+ },
+ "dst":{
+ "device":"of:00000000000000a2",
+ "port":"3"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a5",
+ "port":"2"
+ },
+ "dst":{
+ "device":"of:00000000000000a3",
+ "port":"4"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a6",
+ "port":"3"
+ },
+ "dst":{
+ "device":"of:00000000000000a4",
+ "port":"3"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ },
+ {
+ "src":{
+ "device":"of:00000000000000a3",
+ "port":"3"
+ },
+ "dst":{
+ "device":"of:00000000000000a4",
+ "port":"2"
+ },
+ "type":"DIRECT",
+ "state":"ACTIVE",
+ "annotations":{
+
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x14d9eb65",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.60.1/32}, IPV4_DST{ip=192.168.60.101/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a4",
+ "port":"4"
+ },
+ "egress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0xffffffffd1edad87",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a4, portNumber=4}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.60.1/32}, IPV4_DST{ip=192.168.60.101/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a4, portNumber=4}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, dst=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a1, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0x14d88ea5",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.60.101/32}, IPV4_DST{ip=192.168.60.1/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a4",
+ "port":"4"
+ },
+ "installable":[
+ {
+ "id":"0xffffffff932872c7",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a4, portNumber=4}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.60.101/32}, IPV4_DST{ip=192.168.60.1/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a2, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a2, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a4, portNumber=1}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a4, portNumber=4}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ },
+ {
+ "id":"0xffffffffd0df53a2",
+ "type":"PointToPointIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "state":"INSTALLED",
+ "selector":"[IPV4_SRC{ip=192.168.40.101/32}, IPV4_DST{ip=192.168.40.1/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "ingress":{
+ "device":"of:00000000000000a1",
+ "port":"1"
+ },
+ "egress":{
+ "device":"of:00000000000000a6",
+ "port":"1"
+ },
+ "installable":[
+ {
+ "id":"0x12f07370",
+ "type":"PathIntent",
+ "appId":"org.onlab.onos.sdnip",
+ "resources":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a6, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a6, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ],
+ "selector":"[IPV4_SRC{ip=192.168.40.101/32}, IPV4_DST{ip=192.168.40.1/32}, IP_PROTO{protocol=6}, TCP_SRC{tcpPort=179}, ETH_TYPE{ethType=800}]",
+ "path":[
+ "DefaultEdgeLink{src=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, dst=HostLocation{elementId=of:00000000000000a1, portNumber=1}, type=EDGE, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a1, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a3, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a3, portNumber=4}, dst=ConnectPoint{elementId=of:00000000000000a5, portNumber=2}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultLink{src=ConnectPoint{elementId=of:00000000000000a5, portNumber=3}, dst=ConnectPoint{elementId=of:00000000000000a6, portNumber=4}, type=DIRECT, state=ACTIVE, durable=false}",
+ "DefaultEdgeLink{src=HostLocation{elementId=of:00000000000000a6, portNumber=1}, dst=ConnectPoint{elementId=00:00:00:00:00:00/-1, portNumber=0}, type=EDGE, state=ACTIVE, durable=false}"
+ ]
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/TestON/tests/SdnIpTest/sdnip.json b/TestON/tests/SdnIpTest/sdnip.json
new file mode 100644
index 0000000..a5d1867
--- /dev/null
+++ b/TestON/tests/SdnIpTest/sdnip.json
@@ -0,0 +1,69 @@
+{
+
+ "bgpPeers" : [
+ {
+ "attachmentDpid" : "00:00:00:00:00:00:00:a3",
+ "attachmentPort" : "1",
+ "ipAddress" : "192.168.10.1"
+ },
+ {
+ "attachmentDpid" : "00:00:00:00:00:00:00:a5",
+ "attachmentPort" : "1",
+ "ipAddress" : "192.168.20.1"
+ },
+ {
+ "attachmentDpid" : "00:00:00:00:00:00:00:a2",
+ "attachmentPort" : "1",
+ "ipAddress" : "192.168.30.1"
+ },
+ {
+ "attachmentDpid" : "00:00:00:00:00:00:00:a6",
+ "attachmentPort" : "1",
+ "ipAddress" : "192.168.40.1"
+ },
+ {
+ "attachmentDpid" : "00:00:00:00:00:00:00:a4",
+ "attachmentPort" : "4",
+ "ipAddress" : "192.168.60.1"
+ }
+
+ ],
+ "bgpSpeakers" : [
+ {
+ "name" : "bgpSpeaker1",
+ "attachmentDpid" : "00:00:00:00:00:00:00:a1",
+ "attachmentPort" : "1",
+ "macAddress" : "00:00:00:00:00:01",
+ "interfaceAddresses" : [
+ {
+ "interfaceDpid" : "00:00:00:00:00:00:00:a3",
+ "interfacePort" : "1",
+ "ipAddress" : "192.168.10.101"
+ },
+ {
+ "interfaceDpid" : "00:00:00:00:00:00:00:a5",
+ "interfacePort" : "1",
+ "ipAddress" : "192.168.20.101"
+ },
+ {
+ "interfaceDpid" : "00:00:00:00:00:00:00:a2",
+ "interfacePort" : "1",
+ "ipAddress" : "192.168.30.101"
+ },
+ {
+ "interfaceDpid" : "00:00:00:00:00:00:00:a6",
+ "interfacePort" : "1",
+ "ipAddress" : "192.168.40.101"
+ },
+ {
+ "interfaceDpid" : "00:00:00:00:00:00:00:a4",
+ "interfacePort" : "4",
+ "ipAddress" : "192.168.60.101"
+ }
+
+ ]
+
+ }
+
+ ]
+}
\ No newline at end of file
diff --git a/TestON/tests/TopoConvNext/TopoConvNext.params b/TestON/tests/TopoConvNext/TopoConvNext.params
index f96123a..96cb9ad 100644
--- a/TestON/tests/TopoConvNext/TopoConvNext.params
+++ b/TestON/tests/TopoConvNext/TopoConvNext.params
@@ -1,5 +1,5 @@
<PARAMS>
- <testcases>1,2,3,2,3,2,4,2,3,2,3,2,4,2,3,2,3,2</testcases>
+ <testcases>1,2,3,2,3,2,3,4,2,3,2,3,2,4,2,3,2,3,2</testcases>
<ENV>
<cellName>topo_conv_test</cellName>
@@ -42,13 +42,12 @@
<onosLogFile>/opt/onos/log/karaf*</onosLogFile>
#Number of times to iterate each case
- <numIter>10</numIter>
- <numSwitch1>100</numSwitch1>
- <numSwitch2>200</numSwitch2>
+ <numIter>5</numIter>
+ <numSwitch1>200</numSwitch1>
+ <numSwitch2>400</numSwitch2>
<numSwitch3>500</numSwitch3>
#Number of iterations to ignore initially
- <iterIgnore>2</iterIgnore>
-cp single_topo_event_accumulator.cfg ~/ONOS/tools/package/etc/org.onlab.onos.net.topology.impl.DefaultTopologyProvider.cfg
+ <iterIgnore>1</iterIgnore>
<topo_accumulator_config>
large_topo_event_accumulator.cfg
@@ -57,7 +56,6 @@
org.onlab.onos.net.topology.impl.DefaultTopologyProvider.cfg
</topo_config_name>
-
<swDisc100Threshold>0,100000</swDisc100Threshold>
</TEST>
diff --git a/TestON/tests/TopoConvNext/TopoConvNext.py b/TestON/tests/TopoConvNext/TopoConvNext.py
index 4b8042c..52a951c 100644
--- a/TestON/tests/TopoConvNext/TopoConvNext.py
+++ b/TestON/tests/TopoConvNext/TopoConvNext.py
@@ -29,7 +29,7 @@
global cluster_count
global topo_iteration
topo_iteration = 1
- cluster_count = 3
+ cluster_count = 1
#******
cell_name = main.params['ENV']['cellName']
@@ -47,20 +47,20 @@
BENCH_ip = main.params['BENCH']['ip']
main.case("Setting up test environment")
- main.step("copying topology event accumulator config file"+
+ main.log.info("copying topology event accumulator config file"+\
" to ONOS package/etc/ directory")
topo_config_name = main.params['TEST']['topo_config_name']
topo_config =\
main.params['TEST']['topo_accumulator_config']
- main.ONOSbench.handle.sendline("cp ~/"+topo_config+
- " ~/ONOS/tools/package/etc/"+
+ main.ONOSbench.handle.sendline("cp ~/"+topo_config+\
+ " ~/ONOS/tools/package/etc/"+\
topo_config_name)
main.ONOSbench.handle.expect("\$")
main.log.info("Uninstalling previous instances")
#main.ONOSbench.onos_uninstall(node_ip = ONOS1_ip)
- #main.ONOSbench.onos_uninstall(node_ip = ONOS2_ip)
- #main.ONOSbench.onos_uninstall(node_ip = ONOS3_ip)
+ main.ONOSbench.onos_uninstall(node_ip = ONOS2_ip)
+ main.ONOSbench.onos_uninstall(node_ip = ONOS3_ip)
main.ONOSbench.onos_uninstall(node_ip = ONOS4_ip)
main.ONOSbench.onos_uninstall(node_ip = ONOS5_ip)
main.ONOSbench.onos_uninstall(node_ip = ONOS6_ip)
@@ -72,15 +72,17 @@
cell_file_result = main.ONOSbench.create_cell_file(
BENCH_ip, cell_name, MN1_ip,
"onos-core,onos-app-metrics",
- ONOS1_ip, ONOS2_ip, ONOS3_ip)
-
+ #ONOS1_ip, ONOS2_ip, ONOS3_ip)
+ ONOS1_ip)
+
main.step("Applying cell file to environment")
cell_apply_result = main.ONOSbench.set_cell(cell_name)
verify_cell_result = main.ONOSbench.verify_cell()
main.step("Removing raft logs")
main.ONOSbench.onos_remove_raft_logs()
-
+ time.sleep(10)
+
main.step("Git checkout and pull "+checkout_branch)
if git_pull == 'on':
checkout_result = \
@@ -100,8 +102,8 @@
main.step("Set cell for ONOS cli env")
main.ONOS1cli.set_cell(cell_name)
- main.ONOS2cli.set_cell(cell_name)
- main.ONOS3cli.set_cell(cell_name)
+ #main.ONOS2cli.set_cell(cell_name)
+ #main.ONOS3cli.set_cell(cell_name)
main.step("Creating ONOS package")
package_result = main.ONOSbench.onos_package()
@@ -109,15 +111,15 @@
#Start test with single node only
main.step("Installing ONOS package")
install1_result = main.ONOSbench.onos_install(node=ONOS1_ip)
- install2_result = main.ONOSbench.onos_install(node=ONOS2_ip)
- install3_result = main.ONOSbench.onos_install(node=ONOS3_ip)
+ #install2_result = main.ONOSbench.onos_install(node=ONOS2_ip)
+ #install3_result = main.ONOSbench.onos_install(node=ONOS3_ip)
time.sleep(10)
main.step("Start onos cli")
cli1 = main.ONOS1cli.start_onos_cli(ONOS1_ip)
- cli2 = main.ONOS2cli.start_onos_cli(ONOS2_ip)
- cli3 = main.ONOS3cli.start_onos_cli(ONOS3_ip)
+ #cli2 = main.ONOS2cli.start_onos_cli(ONOS2_ip)
+ #cli3 = main.ONOS3cli.start_onos_cli(ONOS3_ip)
main.step("Enable metrics feature")
#main.ONOS1cli.feature_install("onos-app-metrics")
@@ -126,8 +128,8 @@
actual= cell_file_result and cell_apply_result and\
verify_cell_result and checkout_result and\
pull_result and mvn_result and\
- install1_result and install2_result and\
- install3_result,
+ install1_result, #and install2_result and\
+ #install3_result,
onpass="Test Environment setup successful",
onfail="Failed to setup test environment")
@@ -176,6 +178,7 @@
#throughout the test
global num_sw
global topo_iteration
+ global cluster_count
if topo_iteration == 1:
num_sw = main.params['TEST']['numSwitch1']
elif topo_iteration == 2:
@@ -219,6 +222,11 @@
ip1=ONOS_ip_list[node],
port1=default_sw_port)
index = i+1
+ #for i in range(1, int(num_sw)+1):
+ #main.Mininet1.assign_sw_controller(
+ #sw=str(i),
+ #ip1="10.128.174.1",
+ # port1="6633")
main.log.info("Please check ptpd configuration to ensure "+\
"all nodes' system times are in sync")
@@ -286,52 +294,140 @@
# time.sleep(30)
if cluster_count >= 3:
- main.ONOS1.tshark_grep("SYN, ACK",
- "/tmp/syn_ack_onos1_iter"+str(i)+".txt")
- main.ONOS2.tshark_grep("SYN, ACK",
- "/tmp/syn_ack_onos2_iter"+str(i)+".txt")
- main.ONOS3.tshark_grep("SYN, ACK",
- "/tmp/syn_ack_onos3_iter"+str(i)+".txt")
+ main.ONOS1.handle.sendline("tshark -i eth0 -t e | "+
+ "grep 'SYN, ACK' | grep '6633' >"+
+ "/tmp/syn_ack_onos1_iter"+str(i)+".txt &")
+ main.ONOS2.handle.sendline("tshark -i eth0 -t e | "+
+ "grep 'SYN, ACK' | grep '6633' >"+
+ "/tmp/syn_ack_onos2_iter"+str(i)+".txt &")
+ main.ONOS3.handle.sendline("tshark -i eth0 -t e | "+
+ "grep 'SYN, ACK' | grep '6633' >"+
+ "/tmp/syn_ack_onos3_iter"+str(i)+".txt &")
if cluster_count >= 4:
- main.ONOS4.tshark_grep("SYN, ACK",
- "/tmp/syn_ack_onos4_iter"+str(i)+".txt")
+ main.ONOS4.handle.sendline("tshark -i eth0 -t e | "+
+ "grep 'SYN, ACK' | grep '6633' >"+
+ "/tmp/syn_ack_onos4_iter"+str(i)+".txt &")
if cluster_count >= 5:
- main.ONOS5.tshark_grep("SYN, ACK",
- "/tmp/syn_ack_onos5_iter"+str(i)+".txt")
+ main.ONOS5.handle.sendline("tshark -i eth0 -t e | "+
+ "grep 'SYN, ACK' | grep '6633' >"+
+ "/tmp/syn_ack_onos5_iter"+str(i)+".txt &")
if cluster_count >= 6:
- main.ONOS6.tshark_grep("SYN, ACK",
- "/tmp/syn_ack_onos6_iter"+str(i)+".txt")
+ main.ONOS6.handle.sendline("tshark -i eth0 -t e | "+
+ "grep 'SYN, ACK' | grep '6633' >"+
+ "/tmp/syn_ack_onos6_iter"+str(i)+".txt &")
if cluster_count == 7:
- main.ONOS7.tshark_grep("SYN, ACK",
- "/tmp/syn_ack_onos7_iter"+str(i)+".txt")
-
+ main.ONOS7.handle.sendline("tshark -i eth0 -t e | "+
+ "grep 'SYN, ACK' | grep '6633' >"+
+ "/tmp/syn_ack_onos6_iter"+str(i)+".txt &")
+
+ #NOTE:
+ # Delay before checking devices to
+ # help prevent timing out from CLI
+ # due to multiple command drop
+ time.sleep(20)
+
+ loop = True
loop_count = 0
device_count = 0
- while loop_count < 60:
+ while loop_count < 60 and loop:
main.log.info("Checking devices for device down")
- device_str = main.ONOS1cli.devices()
- device_json = json.loads(device_str)
- for device in device_json:
- if device['available'] == False:
- #print device_count
- device_count += 1
- else:
- device_count = 0
- if device_count >= int(num_sw)*int(cluster_count):
- main.step("Flushing iptables and obtaining t0")
- t0_system = time.time()*1000
- main.ONOS1.handle.sendline("sudo iptables -F")
- main.ONOS2.handle.sendline("sudo iptables -F")
- main.ONOS3.handle.sendline("sudo iptables -F")
- main.ONOS4.handle.sendline("sudo iptables -F")
- main.ONOS5.handle.sendline("sudo iptables -F")
- main.ONOS6.handle.sendline("sudo iptables -F")
- main.ONOS7.handle.sendline("sudo iptables -F")
-
- break
+ temp_len = 0
+ device_str1 = main.ONOS1cli.devices(
+ node_ip=ONOS_ip_list[1])
+ device_json1 = json.loads(device_str1)
+ json_len = len(device_json1)
+
+ for device1 in device_json1:
+ temp_len = temp_len + 1
+ if device1['available'] == True:
+ loop = True
+ break
+ #if I'm on the last json object and I still haven't
+ #broken out of the loop, it means there were
+ #no available devices
+ elif temp_len == json_len-1:
+ main.log.info("Temp length: "+str(temp_len))
+ main.step("Flushing iptables and obtaining t0")
+ t0_system = time.time()*1000
+
+ main.ONOS1.handle.sendline("sudo iptables -F")
+ main.ONOS2.handle.sendline("sudo iptables -F")
+ main.ONOS3.handle.sendline("sudo iptables -F")
+ main.ONOS4.handle.sendline("sudo iptables -F")
+ main.ONOS5.handle.sendline("sudo iptables -F")
+ main.ONOS6.handle.sendline("sudo iptables -F")
+ main.ONOS7.handle.sendline("sudo iptables -F")
+
+ loop = False
+ break
+
+ #if cluster_count == 1:
+ # device_str1 = main.ONOS1cli.devices(
+ # node_ip=ONOS_ip_list[1])
+ # device_json1 = json.loads(device_str1)
+ # for device1 in device_json1:
+ # if device1['available'] == False:
+ # device_count += 1
+ # else:
+ # device_count = 0
+ #if cluster_count == 2:
+ # device_str2 = main.ONOS2cli.devices(
+ # node_ip=ONOS_ip_list[2])
+ # device_json2 = json.loads(device_str2)
+ # for device2 in device_json2:
+ # if device2['available'] == False:
+ # device_count += 1
+ # else:
+ # device_count = 0
+ #if cluster_count == 3:
+ # device_str3 = main.ONOS3cli.devices(
+ # node_ip=ONOS_ip_list[3])
+ # device_json3 = json.loads(device_str3)
+ # for device3 in device_json3:
+ # if device3['available'] == False:
+ # device_count += 1
+ # else:
+ # device_count = 0
+ #if cluster_count == 4:
+ # device_str4 = main.ONOS4cli.devices(
+ # node_ip=ONOS_ip_list[4])
+ # device_json4 = json.loads(device_str4)
+ # for device4 in device_json4:
+ # if device4['available'] == False:
+ # device_count += 1
+ # else:
+ # device_count = 0
+ #if cluster_count == 5:
+ # device_str5 = main.ONOS5cli.devices(
+ # node_ip=ONOS_ip_list[5])
+ # device_json5 = json.loads(device_str5)
+ # for device5 in device_json5:
+ # if device5['available'] == False:
+ # device_count += 1
+ # else:
+ # device_count = 0
+ #if cluster_count == 7:
+ # device_str7 = main.ONOS7cli.devices(
+ # node_ip=ONOS_ip_list[7])
+ # device_json7 = json.loads(device_str7)
+ # for device7 in device_json7:
+ # if device7['available'] == False:
+ # device_count += 1
+ # else:
+ # device_count = 0
+
+ #If device count is greater than the
+ #number of switches discovered by all nodes
+ #then remove iptables and measure t0 system time
+
+
+ loop_count += 1
time.sleep(1)
+ if device_count < int(num_sw):
+ main.log.info("Devices down did not ")
+
main.log.info("System time t0: "+str(t0_system))
counter_loop = 0
@@ -358,7 +454,8 @@
if node == 1 and not onos1_dev:
main.log.info("Checking node 1 for device "+
"discovery")
- device_str_obj1 = main.ONOS1cli.devices()
+ device_str_obj1 = main.ONOS1cli.devices(
+ node_ip=ONOS_ip_list[1])
device_json1 = json.loads(device_str_obj1)
for device1 in device_json1:
if device1['available'] == True:
@@ -372,7 +469,8 @@
if node == 2 and not onos2_dev:
main.log.info("Checking node 2 for device "+
"discovery")
- device_str_obj2 = main.ONOS2cli.devices()
+ device_str_obj2 = main.ONOS2cli.devices(
+ node_ip=ONOS_ip_list[2])
device_json2 = json.loads(device_str_obj2)
for device2 in device_json2:
if device2['available'] == True:
@@ -386,7 +484,8 @@
if node == 3 and not onos3_dev:
main.log.info("Checking node 3 for device "+
"discovery")
- device_str_obj3 = main.ONOS3cli.devices()
+ device_str_obj3 = main.ONOS3cli.devices(
+ node_ip=ONOS_ip_list[3])
device_json3 = json.loads(device_str_obj3)
for device3 in device_json3:
if device3['available'] == True:
@@ -400,7 +499,8 @@
if node == 4 and not onos4_dev:
main.log.info("Checking node 4 for device "+
"discovery")
- device_str_obj4 = main.ONOS4cli.devices()
+ device_str_obj4 = main.ONOS4cli.devices(
+ node_ip=ONOS_ip_list[4])
device_json4 = json.loads(device_str_obj4)
for device4 in device_json4:
if device4['available'] == True:
@@ -414,7 +514,8 @@
if node == 5 and not onos5_dev:
main.log.info("Checking node 5 for device "+
"discovery")
- device_str_obj5 = main.ONOS5cli.devices()
+ device_str_obj5 = main.ONOS5cli.devices(
+ node_ip=ONOS_ip_list[5])
device_json5 = json.loads(device_str_obj5)
for device5 in device_json5:
if device5['available'] == True:
@@ -428,7 +529,8 @@
if node == 6 and not onos6_dev:
main.log.info("Checking node 6 for device "+
"discovery")
- device_str_obj6 = main.ONOS6cli.devices()
+ device_str_obj6 = main.ONOS6cli.devices(
+ node_ip=ONOS_ip_list[6])
device_json6 = json.loads(device_str_obj6)
for device6 in device_json6:
if device6['available'] == True:
@@ -442,7 +544,8 @@
if node == 7 and not onos7_dev:
main.log.info("Checking node 7 for device "+
"discovery")
- device_str_obj7 = main.ONOS7cli.devices()
+ device_str_obj7 = main.ONOS7cli.devices(
+ node_ip=ONOS_ip_list[7])
device_json7 = json.loads(device_str_obj7)
for device7 in device_json7:
if device7['available'] == True:
@@ -463,6 +566,7 @@
if onos1_dev:
main.log.info("All devices have been discovered"+
" on all ONOS instances")
+ time.sleep(5)
json_str_metrics_1 =\
main.ONOS1cli.topology_events_metrics()
json_obj_1 = json.loads(json_str_metrics_1)
@@ -471,7 +575,10 @@
graph_lat_1 = \
int(graph_timestamp_1) - int(t0_system)
-
+
+ main.log.info("Graph Timestamp ONOS1: "+
+ str(graph_timestamp_1))
+
if graph_lat_1 > sw_disc_threshold_min\
and graph_lat_1 < sw_disc_threshold_max\
and int(i) > iter_ignore:
@@ -491,6 +598,8 @@
main.log.info("All devices have been discovered"+
" on all "+str(cluster_count)+
" ONOS instances")
+ time.sleep(5)
+
json_str_metrics_1 =\
main.ONOS1cli.topology_events_metrics()
json_str_metrics_2 =\
@@ -506,23 +615,27 @@
int(graph_timestamp_1) - int(t0_system)
graph_lat_2 = \
int(graph_timestamp_2) - int(t0_system)
+
+ main.log.info("Graph Timestamp ONOS1: "+
+ str(graph_timestamp_1))
+ main.log.info("Graph Timestamp ONOS2: "+
+ str(graph_timestamp_2))
- avg_graph_lat = \
- (int(graph_lat_1) +\
- int(graph_lat_2)) / 2
+ max_graph_lat = max(graph_lat_1,
+ graph_lat_2, graph_lat_3)
- if avg_graph_lat > sw_disc_threshold_min\
- and avg_graph_lat < sw_disc_threshold_max\
+ if max_graph_lat > sw_disc_threshold_min\
+ and max_graph_lat < sw_disc_threshold_max\
and int(i) > iter_ignore:
sw_discovery_lat_list.append(
- avg_graph_lat)
+ max_graph_lat)
main.log.info("Sw discovery latency of "+
str(cluster_count)+" node(s): "+
- str(avg_graph_lat)+" ms")
+ str(max_graph_lat)+" ms")
else:
main.log.info("Switch discovery latency "+
"exceeded the threshold.")
- main.log.info(avg_graph_lat)
+ main.log.info(max_graph_lat)
break
if cluster_count == 3:
if onos1_dev and onos2_dev and onos3_dev:
@@ -558,26 +671,29 @@
graph_lat_3 = \
int(graph_timestamp_3) - int(t0_system)
- main.log.info("DEBUG: graph_timestamp_1: "+
- str(graph_timestamp_1))
+ main.log.info("Graph Timestamp ONOS1: "+
+ str(graph_timestamp_1))
+ main.log.info("Graph Timestamp ONOS2: "+
+ str(graph_timestamp_2))
+ main.log.info("Graph Timestamp ONOS3: "+
+ str(graph_timestamp_3))
- avg_graph_lat = \
- (int(graph_lat_1) +\
- int(graph_lat_2) +\
- int(graph_lat_3)) / 3
-
- if avg_graph_lat > sw_disc_threshold_min\
- and avg_graph_lat < sw_disc_threshold_max\
+ max_graph_lat = max(graph_lat_1,
+ graph_lat_2,
+ graph_lat_3)
+
+ if max_graph_lat > sw_disc_threshold_min\
+ and max_graph_lat < sw_disc_threshold_max\
and int(i) > iter_ignore:
sw_discovery_lat_list.append(
- avg_graph_lat)
+ max_graph_lat)
main.log.info("Sw discovery latency of "+
str(cluster_count)+" node(s): "+
- str(avg_graph_lat)+" ms")
+ str(max_graph_lat)+" ms")
else:
main.log.info("Switch discovery latency "+
"exceeded the threshold.")
- main.log.info(avg_graph_lat)
+ main.log.info(max_graph_lat)
break
if cluster_count == 4:
@@ -614,25 +730,33 @@
int(graph_timestamp_3) - int(t0_system)
graph_lat_4 = \
int(graph_timestamp_4) - int(t0_system)
-
- avg_graph_lat = \
- (int(graph_lat_1) +\
- int(graph_lat_2) +\
- int(graph_lat_3) +\
- int(graph_lat_4)) / 4
- if avg_graph_lat > sw_disc_threshold_min\
- and avg_graph_lat < sw_disc_threshold_max\
+ main.log.info("Graph Timestamp ONOS1: "+
+ str(graph_timestamp_1))
+ main.log.info("Graph Timestamp ONOS2: "+
+ str(graph_timestamp_2))
+ main.log.info("Graph Timestamp ONOS3: "+
+ str(graph_timestamp_3))
+ main.log.info("Graph Timestamp ONOS4: "+
+ str(graph_timestamp_4))
+
+ max_graph_lat = max(graph_lat_1,
+ graph_lat_2,
+ graph_lat_3,
+ graph_lat_4)
+
+ if max_graph_lat > sw_disc_threshold_min\
+ and max_graph_lat < sw_disc_threshold_max\
and int(i) > iter_ignore:
sw_discovery_lat_list.append(
- avg_graph_lat)
+ max_graph_lat)
main.log.info("Sw discovery latency of "+
str(cluster_count)+" node(s): "+
- str(avg_graph_lat)+" ms")
+ str(max_graph_lat)+" ms")
else:
main.log.info("Switch discovery latency "+
"exceeded the threshold.")
- main.log.info(avg_graph_lat)
+ main.log.info(max_graph_lat)
break
if cluster_count == 5:
@@ -682,26 +806,36 @@
int(graph_timestamp_4) - int(t0_system)
graph_lat_5 = \
int(graph_timestamp_5) - int(t0_system)
-
- avg_graph_lat = \
- (int(graph_lat_1) +\
- int(graph_lat_2) +\
- int(graph_lat_3) +\
- int(graph_lat_4) +\
- int(graph_lat_5)) / 5
- if avg_graph_lat > sw_disc_threshold_min\
- and avg_graph_lat < sw_disc_threshold_max\
+ main.log.info("Graph Timestamp ONOS1: "+
+ str(graph_timestamp_1))
+ main.log.info("Graph Timestamp ONOS2: "+
+ str(graph_timestamp_2))
+ main.log.info("Graph Timestamp ONOS3: "+
+ str(graph_timestamp_3))
+ main.log.info("Graph Timestamp ONOS4: "+
+ str(graph_timestamp_4))
+ main.log.info("Graph Timestamp ONOS5: "+
+ str(graph_timestamp_5))
+
+ max_graph_lat = max(graph_lat_1,
+ graph_lat_2,
+ graph_lat_3,
+ graph_lat_4,
+ graph_lat_5)
+
+ if max_graph_lat > sw_disc_threshold_min\
+ and max_graph_lat < sw_disc_threshold_max\
and int(i) > iter_ignore:
sw_discovery_lat_list.append(
- avg_graph_lat)
+ max_graph_lat)
main.log.info("Sw discovery latency of "+
str(cluster_count)+" node(s): "+
- str(avg_graph_lat)+" ms")
+ str(max_graph_lat)+" ms")
else:
main.log.info("Switch discovery latency "+
"exceeded the threshold.")
- main.log.info(avg_graph_lat)
+ main.log.info(max_graph_lat)
break
if cluster_count == 6:
@@ -752,27 +886,39 @@
int(graph_timestamp_5) - int(t0_system)
graph_lat_6 = \
int(graph_timestamp_6) - int(t0_system)
-
- avg_graph_lat = \
- (int(graph_lat_1) +\
- int(graph_lat_2) +\
- int(graph_lat_3) +\
- int(graph_lat_4) +\
- int(graph_lat_5) +\
- int(graph_lat_6)) / 6
- if avg_graph_lat > sw_disc_threshold_min\
- and avg_graph_lat < sw_disc_threshold_max\
+ main.log.info("Graph Timestamp ONOS1: "+
+ str(graph_timestamp_1))
+ main.log.info("Graph Timestamp ONOS2: "+
+ str(graph_timestamp_2))
+ main.log.info("Graph Timestamp ONOS3: "+
+ str(graph_timestamp_3))
+ main.log.info("Graph Timestamp ONOS4: "+
+ str(graph_timestamp_4))
+ main.log.info("Graph Timestamp ONOS5: "+
+ str(graph_timestamp_5))
+ main.log.info("Graph Timestamp ONOS6: "+
+ str(graph_timestamp_6))
+
+ max_graph_lat = max(graph_lat_1,
+ graph_lat_2,
+ graph_lat_3,
+ graph_lat_4,
+ graph_lat_5,
+ graph_lat_6)
+
+ if max_graph_lat > sw_disc_threshold_min\
+ and max_graph_lat < sw_disc_threshold_max\
and int(i) > iter_ignore:
sw_discovery_lat_list.append(
- avg_graph_lat)
+ max_graph_lat)
main.log.info("Sw discovery latency of "+
str(cluster_count)+" node(s): "+
- str(avg_graph_lat)+" ms")
+ str(max_graph_lat)+" ms")
else:
main.log.info("Switch discovery latency "+
"exceeded the threshold.")
- main.log.info(avg_graph_lat)
+ main.log.info(max_graph_lat)
break
if cluster_count == 7:
@@ -838,36 +984,55 @@
graph_lat_7 = \
int(graph_timestamp_7) - int(t0_system)
- avg_graph_lat = \
- (int(graph_lat_1) +\
- int(graph_lat_2) +\
- int(graph_lat_3) +\
- int(graph_lat_4) +\
- int(graph_lat_5) +\
- int(graph_lat_6) +\
- int(graph_lat_7)) / 7
+ main.log.info("Graph Timestamp ONOS1: "+
+ str(graph_timestamp_1))
+ main.log.info("Graph Timestamp ONOS2: "+
+ str(graph_timestamp_2))
+ main.log.info("Graph Timestamp ONOS3: "+
+ str(graph_timestamp_3))
+ main.log.info("Graph Timestamp ONOS4: "+
+ str(graph_timestamp_4))
+ main.log.info("Graph Timestamp ONOS5: "+
+ str(graph_timestamp_5))
+ main.log.info("Graph Timestamp ONOS6: "+
+ str(graph_timestamp_6))
+ main.log.info("Graph Timestamp ONOS7: "+
+ str(graph_timestamp_7))
+
+ max_graph_lat = max(graph_lat_1,
+ graph_lat_2,
+ graph_lat_3,
+ graph_lat_4,
+ graph_lat_5,
+ graph_lat_6,
+ graph_lat_7)
- if avg_graph_lat > sw_disc_threshold_min\
- and avg_graph_lat < sw_disc_threshold_max\
+ if max_graph_lat > sw_disc_threshold_min\
+ and max_graph_lat < sw_disc_threshold_max\
and int(i) > iter_ignore:
sw_discovery_lat_list.append(
- avg_graph_lat)
+ max_graph_lat)
main.log.info("Sw discovery latency of "+
str(cluster_count)+" node(s): "+
- str(avg_graph_lat)+" ms")
+ str(max_graph_lat)+" ms")
else:
main.log.info("Switch discovery latency "+
"exceeded the threshold.")
- main.log.info(avg_graph_lat)
+ main.log.info(max_graph_lat)
break
counter_loop += 1
time.sleep(3)
#END WHILE LOOP
-
+
+ #Below is used for reporting SYN / ACK timing
+ #of all switches
main.ONOS1.tshark_stop()
syn_ack_timestamp_list = []
+ if cluster_count < 3:
+ #TODO: capture synack on nodes less than 3
+ syn_ack_timestamp_list.append(0)
if cluster_count >= 3:
main.ONOS2.tshark_stop()
@@ -886,17 +1051,29 @@
f_onos1:
for line in f_onos1:
line = line.split(" ")
- syn_ack_timestamp_list.append(line[1])
+ try:
+ float(line[1])
+ syn_ack_timestamp_list.append(line[1])
+ except ValueError:
+ main.log.info("String cannot be converted")
with open("/tmp/syn_ack_onos2_iter"+str(i)+".txt") as\
f_onos2:
for line in f_onos2:
line = line.split(" ")
- syn_ack_timestamp_list.append(line[1])
+ try:
+ float(line[1])
+ syn_ack_timestamp_list.append(line[1])
+ except ValueError:
+ main.log.info("String cannot be converted")
with open("/tmp/syn_ack_onos3_iter"+str(i)+".txt") as\
f_onos3:
for line in f_onos3:
line = line.split(" ")
- syn_ack_timestamp_list.append(line[1])
+ try:
+ float(line[1])
+ syn_ack_timestamp_list.append(line[1])
+ except ValueError:
+ main.log.info("String cannot be converted")
if cluster_count >= 4:
main.ONOS4.tshark_stop()
time.sleep(5)
@@ -907,7 +1084,11 @@
f_onos4:
for line in f_onos4:
line = line.split(" ")
- syn_ack_timestamp_list.append(line[1])
+ try:
+ float(line[1])
+ syn_ack_timestamp_list.append(line[1])
+ except ValueError:
+ main.log.info("String cannot be converted")
if cluster_count >= 5:
main.ONOS5.tshark_stop()
time.sleep(5)
@@ -918,7 +1099,11 @@
f_onos5:
for line in f_onos5:
line = line.split(" ")
- syn_ack_timestamp_list.append(line[1])
+ try:
+ float(line[1])
+ syn_ack_timestamp_list.append(line[1])
+ except ValueError:
+ main.log.info("String cannot be converted")
if cluster_count >= 6:
main.ONOS6.tshark_stop()
time.sleep(5)
@@ -929,7 +1114,11 @@
f_onos6:
for line in f_onos6:
line = line.split(" ")
- syn_ack_timestamp_list.append(line[1])
+ try:
+ float(line[1])
+ syn_ack_timestamp_list.append(line[1])
+ except ValueError:
+ main.log.info("String cannot be converted")
if cluster_count == 7:
main.ONOS7.tshark_stop()
time.sleep(5)
@@ -940,11 +1129,16 @@
f_onos7:
for line in f_onos7:
line = line.split(" ")
- syn_ack_timestamp_list.append(line[1])
+ try:
+ float(line[1])
+ syn_ack_timestamp_list.append(line[1])
+ except ValueError:
+ main.log.info("String cannot be converted")
#Sort the list by timestamp
syn_ack_timestamp_list = sorted(syn_ack_timestamp_list)
-
+ print "syn_ack_-1 " + str(syn_ack_timestamp_list)
+
syn_ack_delta =\
int(float(syn_ack_timestamp_list[-1])*1000) -\
int(float(syn_ack_timestamp_list[0])*1000)
@@ -1014,6 +1208,18 @@
install_result = main.FALSE
#Supports up to 7 node configuration
#TODO: Cleanup this ridiculous repetitive code
+ if cluster_count == 3:
+ install_result = \
+ main.ONOSbench.onos_install(node=ONOS2_ip)
+ install_result = \
+ main.ONOSbench.onos_install(node=ONOS3_ip)
+ time.sleep(5)
+ main.log.info("Starting CLI")
+ main.ONOS2cli.start_onos_cli(ONOS2_ip)
+ main.ONOS3cli.start_onos_cli(ONOS3_ip)
+ main.ONOS1cli.add_node(ONOS2_ip, ONOS2_ip)
+ main.ONOS1cli.add_node(ONOS3_ip, ONOS3_ip)
+
if cluster_count == 4:
main.log.info("Installing ONOS on node 4")
install_result = \
@@ -1025,17 +1231,17 @@
elif cluster_count == 5:
main.log.info("Installing ONOS on nodes 4 and 5")
- install_result1 = \
- main.ONOSbench.onos_install(node=ONOS4_ip)
install_result2 = \
- main.ONOSbench.onos_install(node=ONOS5_ip)
+ main.ONOSbench.onos_install(options="",node=ONOS4_ip)
+ install_result3 = \
+ main.ONOSbench.onos_install(options="",node=ONOS5_ip)
time.sleep(5)
main.log.info("Starting CLI")
main.ONOS4cli.start_onos_cli(ONOS4_ip)
main.ONOS5cli.start_onos_cli(ONOS5_ip)
main.ONOS1cli.add_node(ONOS4_ip, ONOS4_ip)
main.ONOS1cli.add_node(ONOS5_ip, ONOS5_ip)
- install_result = install_result1 and install_result2
+ install_result = install_result2 and install_result3
elif cluster_count == 6:
main.log.info("Installing ONOS on nodes 4, 5,and 6")
@@ -1058,12 +1264,8 @@
elif cluster_count == 7:
main.log.info("Installing ONOS on nodes 4, 5, 6,and 7")
- install_result1 = \
- main.ONOSbench.onos_install(options="",node=ONOS4_ip)
- install_result2 = \
- main.ONOSbench.onos_install(options="",node=ONOS5_ip)
install_result3 = \
- main.ONOSbench.onos_install(options="",node=ONOS6_ip)
+ main.ONOSbench.onos_install(node=ONOS6_ip)
install_result4 = \
main.ONOSbench.onos_install(node=ONOS7_ip)
main.log.info("Starting CLI")
@@ -1076,7 +1278,7 @@
main.ONOS1cli.add_node(ONOS6_ip, ONOS6_ip)
main.ONOS1cli.add_node(ONOS7_ip, ONOS7_ip)
- install_result = install_result1 and install_result2 and\
+ install_result = \
install_result3 and install_result4
time.sleep(5)
@@ -1111,6 +1313,8 @@
BENCH_ip = main.params['BENCH']['ip']
main.log.info("Uninstalling previous instances")
+ main.ONOSbench.onos_uninstall(node_ip = ONOS2_ip)
+ main.ONOSbench.onos_uninstall(node_ip = ONOS3_ip)
main.ONOSbench.onos_uninstall(node_ip = ONOS4_ip)
main.ONOSbench.onos_uninstall(node_ip = ONOS5_ip)
main.ONOSbench.onos_uninstall(node_ip = ONOS6_ip)
@@ -1118,7 +1322,7 @@
global topo_iteration
global cluster_count
- cluster_count = 3
+ cluster_count = 1
topo_iteration += 1
main.log.report("Increasing topology size")
diff --git a/TestON/tests/TopoPerfNext/TopoPerfNext.py b/TestON/tests/TopoPerfNext/TopoPerfNext.py
index 0ec69d2..49089bf 100644
--- a/TestON/tests/TopoPerfNext/TopoPerfNext.py
+++ b/TestON/tests/TopoPerfNext/TopoPerfNext.py
@@ -46,11 +46,11 @@
topo_cfg_name = main.params['TEST']['topo_config_name']
main.case("Setting up test environment")
- main.step("Copying topology event accumulator config file to "+
- "ONOS /package/etc")
- main.ONOSbench.handle.sendline("cp ~/"+
- topo_cfg_file+
- "~/ONOS/tools/package/etc/"+
+ main.log.info("Copying topology event accumulator config"+\
+ " to ONOS /ppackage/etc")
+ main.ONOSbench.handle.sendline("cp ~/"+\
+ topo_cfg_file+\
+ "~/ONOS/tools/package/etc/"+\
topo_cfg_name)
main.ONOSbench.handle.expect("\$")