def release_ip(self, port_name): for p in self.ports: if (p != port_name): continue ns_device = p + "-" + self.vport_ns_suffix print "Releasing ip for " + p + "::" + ns_device shell.execute_cmdstr("ip netns exec " + p + " dhclient -r " + ns_device)
def set_mac(self, port_name, mac): for p in self.ports: if (p != port_name): continue ns_device = p + "-" + self.vport_ns_suffix print "Setting mac " + mac + " for " + p + "::" + ns_device shell.execute_cmdstr("ip netns exec " + p + " ip link set dev " + ns_device + " address " + mac)
def set_ip(self, port_name, ip, netmask): for p in self.ports: if (p != port_name): continue ns_device = p + "-" + self.vport_ns_suffix ipaddr = ip + "/" + netmask print "Setting ip " + ipaddr + " for " + p + "::" + ns_device shell.execute_cmdstr("ip netns exec " + p + " ip address add " + ipaddr + " dev " + ns_device)
def show(self, vm_name): for p in self.ports: if (vm_name != "all") and (vm_name != p): continue print "List of network interfaces in namespace " + p + ":" output = shell.execute_cmdstr("ip netns exec " + p + " ifconfig") print output
def destroy(self): for p in self.ports: ovs_device = p + "-" + self.vport_ovs_suffix print "Destroying " + ovs_device shell.execute_cmdstr("ip link delete " + ovs_device) shell.execute_cmdstr("ip netns del " + p) shell.execute_cmdstr("rm -rf /var/tmp/" + ovs_device + ".xml")
def setup(self): for p in self.ports: ovs_device = p + "-" + self.vport_ovs_suffix ns_device = p + "-" + self.vport_ns_suffix print "Setting up " + ovs_device + " and namespace " + ns_device shell.execute_cmdstr("ip netns add " + p) shell.execute_cmdstr("ip link add " + ns_device + " type veth peer name " + ovs_device) shell.execute_cmdstr("ip link set " + ns_device + " netns " + p) shell.execute_cmdstr("ip netns exec " + p + " ip link set " + ns_device + " up") shell.execute_cmdstr("ip netns exec " + p + " ip link set lo up") shell.execute_cmdstr("ip link set " + ovs_device + " up") shell.execute_cmdstr("ip netns exec " + p + " sysctl net.ipv4.ip_forward=1") self.create_xml(p, ovs_device)