Add support for configuring wan interface in olt config (olt_config.json)
If a wan interface is specified, then configure the test container
uplink port to use the wan interface on the host

Change-Id: I7e7462f829148a022feccac34404d38f0d2f7ca8
diff --git a/src/test/setup/cord-test.py b/src/test/setup/cord-test.py
index b37fa6a..d29b9d2 100755
--- a/src/test/setup/cord-test.py
+++ b/src/test/setup/cord-test.py
@@ -116,14 +116,24 @@
         res = 0
         host_intf = self.port_map['host']
         start_vlan = self.port_map['start_vlan']
+        start_vlan += port_num
+        uplink = self.port_map['uplink']
+        wan = self.port_map['wan']
         for port in self.port_map['ports']:
             guest_if = port
             local_if = '{0}_{1}'.format(guest_if, port_num+1)
             guest_ip = '{0}.{1}/24'.format(tester_intf_subnet, port_num+1)
             ##Use pipeworks to configure container interfaces on host/bridge interfaces
-            pipework_cmd = 'pipework {0} -i {1} -l {2} {3} {4}'.format(host_intf, guest_if, local_if, self.name, guest_ip)
-            if start_vlan != 0:
-                pipework_cmd += ' @{}'.format(start_vlan + port_num)
+            pipework_cmd = 'pipework {0} -i {1} -l {2} {3} {4}'.format(host_intf, guest_if,
+                                                                       local_if, self.name, guest_ip)
+            #if the wan interface is specified for uplink, then use it instead
+            if wan and port == self.port_map[uplink]:
+                pipework_cmd = 'pipework {0} -i {1} -l {2} {3} {4}'.format(wan, guest_if,
+                                                                           local_if, self.name, guest_ip)
+            else:
+                if start_vlan != 0:
+                    pipework_cmd += ' @{}'.format(start_vlan)
+                    start_vlan += 1
 
             res += os.system(pipework_cmd)
             port_num += 1
@@ -138,6 +148,8 @@
         port_num = 0
         intf_host = port_map['host']
         start_vlan = port_map['start_vlan']
+        uplink = port_map['uplink']
+        wan = port_map['wan']
         intf_type = 0
         if os.path.isdir('/sys/class/net/{}/bridge'.format(intf_host)):
             intf_type = 1 ##linux bridge
@@ -150,9 +162,12 @@
         res = 0
         for port in port_map['ports']:
             local_if = '{0}_{1}'.format(port, port_num+1)
+            if wan and port_map[uplink] == port:
+                    continue
             if intf_type == 0:
                 if start_vlan != 0:
-                    cmds = ('ip link del {}.{}'.format(intf_host, start_vlan + port_num),)
+                    cmds = ('ip link del {}.{}'.format(intf_host, start_vlan),)
+                    start_vlan += 1
             else:
                 if intf_type == 1:
                     cmds = ('brctl delif {} {}'.format(intf_host, local_if),
diff --git a/src/test/utils/OltConfig.py b/src/test/utils/OltConfig.py
index b1a3387..f3450a2 100644
--- a/src/test/utils/OltConfig.py
+++ b/src/test/utils/OltConfig.py
@@ -47,6 +47,9 @@
                     port_map['ports'].append('veth{}'.format(port))
             port_num = 1
             port_map['uplink'] = int(self.olt_conf['uplink'])
+            port_map['wan'] = None
+            if self.olt_conf.has_key('wan'):
+                port_map['wan'] = self.olt_conf['wan']
             port_list = []
             ##build the port map and inverse port map
             for port in port_map['ports']: