mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 02:30:03 +01:00
bitkeeper revision 1.1159.258.64 (42433016pzi5kr8wggkPTZcHlxXCpg)
Back out changes to netif backend messaging to set vifname. Try using 'ip link' instead. Signed-off-by: Mike Wray <mike.wray@hp.com>
This commit is contained in:
1 parent
b9aefb2dd7
commit
3aca223127
5 files changed
+23
-12
No files matched your search
@@ -480,7 +480,6 @@ static PyObject *xu_message_get_payload(PyObject *self, PyObject *args)
|
||||
C2P(netif_be_create_t, domid, Int, Long);
|
||||
C2P(netif_be_create_t, netif_handle, Int, Long);
|
||||
C2P(netif_be_create_t, status, Int, Long);
|
||||
C2P(netif_be_create_t, vifname, String, String);
|
||||
return dict;
|
||||
case TYPE(CMSG_NETIF_BE, CMSG_NETIF_BE_DESTROY):
|
||||
C2P(netif_be_destroy_t, domid, Int, Long);
|
||||
@@ -648,7 +647,6 @@ static PyObject *xu_message_new(PyObject *self, PyObject *args)
|
||||
P2C(netif_be_create_t, mac[3], u8);
|
||||
P2C(netif_be_create_t, mac[4], u8);
|
||||
P2C(netif_be_create_t, mac[5], u8);
|
||||
P2CSTRING(netif_be_create_t, vifname);
|
||||
break;
|
||||
case TYPE(CMSG_NETIF_BE, CMSG_NETIF_BE_DESTROY):
|
||||
P2C(netif_be_destroy_t, domid, u32);
|
||||
|
||||
@@ -37,6 +37,19 @@ def network(op, script=None, bridge=None, antispoof=None):
|
||||
args = ' '.join(args)
|
||||
os.system(script + ' ' + args)
|
||||
|
||||
def set_vif_name(vif_old, vif_new):
|
||||
if vif_old == vif_new:
|
||||
vif = view_new
|
||||
if os.system("ip link show %s" % vif_old) == 0:
|
||||
os.system("ip link set %s down" % vif_old)
|
||||
os.system("ip link set %s name %s" % (vif_old, vif_new))
|
||||
os.system("ip link set %s up" % vif_new)
|
||||
if os.system("ip link show %s" % vif_new) == 0:
|
||||
vif = vif_new
|
||||
else:
|
||||
vif = vif_old
|
||||
return vif
|
||||
|
||||
def vifctl(op, vif=None, script=None, domain=None, mac=None, bridge=None, ipaddr=[]):
|
||||
"""Call a vif control script.
|
||||
Xend calls this when bringing vifs up or down.
|
||||
|
||||
@@ -134,7 +134,7 @@ class NetDev(controller.SplitDev):
|
||||
|
||||
self.vifname = sxp.child_value(config, 'vifname')
|
||||
if self.vifname is None:
|
||||
self.vifname = "vif%d.%d" % (self.controller.dom, self.vif)
|
||||
self.vifname = self.default_vifname()
|
||||
if len(self.vifname) > 15:
|
||||
raise XendError('invalid vifname: too long: ' + self.vifname)
|
||||
mac = self._get_config_mac(config)
|
||||
@@ -217,6 +217,9 @@ class NetDev(controller.SplitDev):
|
||||
"""
|
||||
return self.vifname
|
||||
|
||||
def default_vifname(self):
|
||||
return "vif%d.%d" % (self.controller.dom, self.vif)
|
||||
|
||||
def get_mac(self):
|
||||
"""Get the MAC address as a string.
|
||||
"""
|
||||
@@ -248,6 +251,8 @@ class NetDev(controller.SplitDev):
|
||||
@param op: operation name (up, down)
|
||||
@param vmname: vmname
|
||||
"""
|
||||
if op == 'up':
|
||||
Vifctl.set_vif_name(self.default_vifname(), self.vifname)
|
||||
Vifctl.vifctl(op, **self.vifctl_params(vmname=vmname))
|
||||
vnet = XendVnet.instance().vnet_of_bridge(self.bridge)
|
||||
if vnet:
|
||||
@@ -276,7 +281,7 @@ class NetDev(controller.SplitDev):
|
||||
{ 'domid' : self.controller.dom,
|
||||
'netif_handle' : self.vif,
|
||||
'mac' : self.mac,
|
||||
'vifname' : self.vifname
|
||||
#'vifname' : self.vifname
|
||||
})
|
||||
self.getBackendInterface().writeRequest(msg, response=d)
|
||||
return d
|
||||
|
||||