[ONOS-5420] CP/untagged ifaces support in VPLS
Changes:
- Tests to account for tag-tag and tag-notag connectivity
- Introducing untagged ifaces in netcfg and topo files
Change-Id: If56fd4d8bbe4f1f2505e4d5d85c3eeda8c22ac5c
diff --git a/tools/test/topos/vpls.json b/tools/test/topos/vpls.json
index 0ffe259..26829fe 100644
--- a/tools/test/topos/vpls.json
+++ b/tools/test/topos/vpls.json
@@ -3,44 +3,78 @@
"of:0000000000000001": { "basic": { "name": "s1", "latitude": 37.7576793, "longitude": -122.5076405 }},
"of:0000000000000002": { "basic": { "name": "s2", "latitude": 34.0502337, "longitude": -118.3263353 }},
"of:0000000000000003": { "basic": { "name": "s3", "latitude": 38.9082909, "longitude": -77.0886051 }},
- "of:0000000000000004": { "basic": { "name": "s4", "latitude": 30.2787717, "longitude": -82.3069047 }}
+ "of:0000000000000004": { "basic": { "name": "s4", "latitude": 30.2787717, "longitude": -82.3069047 }},
+ "of:0000000000000005": { "basic": { "name": "s5", "latitude": 32.1932468, "longitude": -96.6318932 }}
},
"hosts": {
- "00:00:00:00:00:01/100": { "basic": { "location": "of:0000000000000001/1", "ips": [ "10.0.0.1" ], "name": "v100h1", "latitude": 37.7576793, "longitude": -125.0076405 }},
- "00:00:00:00:00:02/200": { "basic": { "location": "of:0000000000000002/1", "ips": [ "10.0.0.2" ], "name": "v200h1", "latitude": 34.0502337, "longitude": -120.8263353 }},
- "00:00:00:00:00:03/300": { "basic": { "location": "of:0000000000000003/1", "ips": [ "10.0.0.3" ], "name": "v300h1", "latitude": 38.9082909, "longitude": -74.5886051 }},
- "00:00:00:00:00:04/400": { "basic": { "location": "of:0000000000000004/1", "ips": [ "10.0.0.4" ], "name": "v400h1", "latitude": 30.2787717, "longitude": -79.8069047 }}
+ "00:00:00:00:00:01/10": { "basic": { "location": "of:0000000000000001/1", "ips": [ "10.0.0.1" ], "name": "vpls1h1", "latitude": 37.7576793, "longitude": -125.0076405 }},
+ "00:00:00:00:00:02/10": { "basic": { "location": "of:0000000000000004/1", "ips": [ "10.0.0.2" ], "name": "vpls1h2", "latitude": 30.2787717, "longitude": -79.8069047 }},
+ "00:00:00:00:00:03/20": { "basic": { "location": "of:0000000000000003/1", "ips": [ "10.0.0.3" ], "name": "vpls1h3", "latitude": 38.9082909, "longitude": -74.5886051 }},
+ "00:00:00:00:00:04/30": { "basic": { "location": "of:0000000000000004/2", "ips": [ "10.0.0.4" ], "name": "vpls2h1", "latitude": 30.2787717, "longitude": -79.8069047 }},
+ "00:00:00:00:00:05/40": { "basic": { "location": "of:0000000000000002/1", "ips": [ "10.0.0.5" ], "name": "vpls2h2", "latitude": 34.0502337, "longitude": -120.8263353 }},
+ "00:00:00:00:00:06/-1": { "basic": { "location": "of:0000000000000004/3", "ips": [ "10.0.0.6" ], "name": "vpls2h3", "latitude": 30.2787717, "longitude": -79.8069047 }},
+ "00:00:00:00:00:07/-1": { "basic": { "location": "of:0000000000000003/2", "ips": [ "10.0.0.7" ], "name": "vpls3h1", "latitude": 38.9082909, "longitude": -74.5886051 }},
+ "00:00:00:00:00:08/-1": { "basic": { "location": "of:0000000000000005/1", "ips": [ "10.0.0.8" ], "name": "vpls3h2", "latitude": 32.1932468, "longitude": -96.6318932 }}
},
"ports": {
"of:0000000000000001/1": {
"interfaces": [
{
- "name": "vlan100H1",
- "vlan": "100"
+ "name": "vpls1h1",
+ "vlan": "10"
}
]
},
"of:0000000000000002/1": {
"interfaces": [
{
- "name": "vlan200H1",
- "vlan": "200"
+ "name": "vpls2h2",
+ "vlan": "40"
}
]
},
"of:0000000000000003/1": {
"interfaces": [
{
- "name": "vlan300H1",
- "vlan": "300"
+ "name": "vpls1h3",
+ "vlan": "20"
+ }
+ ]
+ },
+ "of:0000000000000003/2": {
+ "interfaces": [
+ {
+ "name": "vpls3h1"
}
]
},
"of:0000000000000004/1": {
"interfaces": [
{
- "name": "vlan400H1",
- "vlan": "400"
+ "name": "vpls1h2",
+ "vlan": "10"
+ }
+ ]
+ },
+ "of:0000000000000004/2": {
+ "interfaces": [
+ {
+ "name": "vpls2h1",
+ "vlan": "30"
+ }
+ ]
+ },
+ "of:0000000000000004/3": {
+ "interfaces": [
+ {
+ "name": "vpls2h3"
+ }
+ ]
+ },
+ "of:0000000000000005/1": {
+ "interfaces": [
+ {
+ "name": "vpls3h2"
}
]
}
@@ -50,12 +84,17 @@
"vpls": {
"vplsList" : [
{
- "name" : "net1",
- "interfaces" : ["vlan100H1", "vlan200H1"]
+ "name" : "VPLS1",
+ "encapsulation" : "VLAN",
+ "interfaces" : ["vpls1h1", "vpls1h2", "vpls1h3"]
},
{
- "name" : "net2",
- "interfaces" : []
+ "name" : "VPLS2",
+ "interfaces" : ["vpls2h1", "vpls2h2", "vpls2h3"]
+ },
+ {
+ "name" : "VPLS3",
+ "interfaces" : ["vpls3h1", "vpls3h2"]
}
]
}
diff --git a/tools/test/topos/vpls.py b/tools/test/topos/vpls.py
index 0124541..35e593b 100755
--- a/tools/test/topos/vpls.py
+++ b/tools/test/topos/vpls.py
@@ -11,7 +11,7 @@
class VLANHost( Host ):
"Host connected to VLAN interface"
- def config( self, vlan=100, **params ):
+ def config( self, vlan=10, **params ):
"""Configure VLANHost according to (optional) parameters:
vlan: VLAN ID for default interface"""
@@ -43,22 +43,32 @@
s2 = self.addSwitch('s2')
s3 = self.addSwitch('s3')
s4 = self.addSwitch('s4')
+ s5 = self.addSwitch('s5')
- v100h1 = self.addHost('v100h1', cls=VLANHost, vlan=100, mac='00:00:00:00:00:01')
- v200h1 = self.addHost('v200h1', cls=VLANHost, vlan=200, mac='00:00:00:00:00:02')
- v300h1 = self.addHost('v300h1', cls=VLANHost, vlan=300, mac='00:00:00:00:00:03')
- v400h1 = self.addHost('v400h1', cls=VLANHost, vlan=400, mac='00:00:00:00:00:04')
+ vpls1h1 = self.addHost('vpls1h1', cls=VLANHost, vlan=10, mac='00:00:00:00:00:01')
+ vpls1h2 = self.addHost('vpls1h2', cls=VLANHost, vlan=10, mac='00:00:00:00:00:02')
+ vpls1h3 = self.addHost('vpls1h3', cls=VLANHost, vlan=20, mac='00:00:00:00:00:03')
+ vpls2h1 = self.addHost('vpls2h1', cls=VLANHost, vlan=30, mac='00:00:00:00:00:04')
+ vpls2h2 = self.addHost('vpls2h2', cls=VLANHost, vlan=40, mac='00:00:00:00:00:05')
+ vpls2h3 = self.addHost('vpls2h3', mac='00:00:00:00:00:06')
+ vpls3h1 = self.addHost('vpls3h1', mac='00:00:00:00:00:07')
+ vpls3h2 = self.addHost('vpls3h2', mac='00:00:00:00:00:08')
- self.addLink(s1, v100h1, port1=1, port2=0)
- self.addLink(s2, v200h1, port1=1, port2=0)
- self.addLink(s3, v300h1, port1=1, port2=0)
- self.addLink(s4, v400h1, port1=1, port2=0)
+ self.addLink(s1, vpls1h1, port1=1, port2=0)
+ self.addLink(s2, vpls2h2, port1=1, port2=0)
+ self.addLink(s3, vpls1h3, port1=1, port2=0)
+ self.addLink(s3, vpls3h1, port1=2, port2=0)
+ self.addLink(s4, vpls1h2, port1=1, port2=0)
+ self.addLink(s4, vpls2h1, port1=2, port2=0)
+ self.addLink(s4, vpls2h3, port1=3, port2=0)
+ self.addLink(s5, vpls3h2, port1=1, port2=0)
self.addLink(s1, s4)
self.addLink(s1, s2)
self.addLink(s2, s4)
self.addLink(s2, s3)
self.addLink(s3, s4)
+ self.addLink(s3, s5)
topos = { 'vpls': ( lambda: VplsTopo() ) }