Add openflow-port-mapping CLI command
[osm/openvim.git] / host_thread.py
index e971ff2..d8bca2e 100644 (file)
@@ -501,8 +501,12 @@ class host_thread(threading.Thread):
             self.tab()+'<apic/>' +\
             self.tab()+'<pae/>'+ \
             self.dec_tab() +'</features>'
-        if windows_os or topo=="oneSocket":
-            text += self.tab() + "<cpu mode='host-model'> <topology sockets='1' cores='%d' threads='1' /> </cpu>"% vcpus
+        if topo == "oneSocket:hyperthreading":
+            if vcpus % 2 != 0:
+                return -1, 'Cannot expose hyperthreading with an odd number of vcpus'
+            text += self.tab() + "<cpu mode='host-model'> <topology sockets='1' cores='%d' threads='2' /> </cpu>" % vcpus/2
+        elif windows_os or topo == "oneSocket":
+            text += self.tab() + "<cpu mode='host-model'> <topology sockets='1' cores='%d' threads='1' /> </cpu>" % vcpus
         else:
             text += self.tab() + "<cpu mode='host-model'></cpu>"
         text += self.tab() + "<clock offset='utc'/>" +\
@@ -1027,7 +1031,7 @@ class host_thread(threading.Thread):
         else:
             return False
 
-    def launch_dhcp_server(self, vlan, ip_range, netmask, dhcp_path):
+    def launch_dhcp_server(self, vlan, ip_range, netmask, dhcp_path, gateway):
         """
         Generate a linux bridge and attache the port to a OVS bridge
         :param self:
@@ -1035,6 +1039,7 @@ class host_thread(threading.Thread):
         :param ip_range: IP dhcp range
         :param netmask: network netmask
         :param dhcp_path: dhcp conf file path that live in namespace side
+        :param gateway: Gateway address for dhcp net
         :return: True if success
         """
 
@@ -1069,7 +1074,8 @@ class host_thread(threading.Thread):
         if not content:
             command = 'sudo  ip netns exec ' + net_namespace + ' /usr/sbin/dnsmasq --strict-order --except-interface=lo ' \
               '--interface=' + interface + ' --bind-interfaces --dhcp-hostsdir=' + dhcp_path + \
-              ' --dhcp-range ' + dhcp_range + ' --pid-file=' + pid_file + ' --dhcp-leasefile=' + leases_path + '  --listen-address ' + ip_range[0]
+              ' --dhcp-range ' + dhcp_range + ' --pid-file=' + pid_file + ' --dhcp-leasefile=' + leases_path + \
+              '  --listen-address ' + gateway
 
         print self.name, ': command:', command
         (_, stdout, _) = self.ssh_conn.exec_command(command)