[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() ) }