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:
mjw@wray-m-3.hpl.hp.com committed 2005-03-24 21:24:38 +00:00
1 parent b9aefb2dd7
commit 3aca223127
5 files changed
+23 -12

No files matched your search

-2
View File
@@ -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);
+13
View File
@@ -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.
+7 -2
View File
@@ -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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.