diff --git a/daemon/core/netns/vnode.py b/daemon/core/netns/vnode.py index a92375f8..b8571ceb 100644 --- a/daemon/core/netns/vnode.py +++ b/daemon/core/netns/vnode.py @@ -167,9 +167,9 @@ class SimpleLxcNode(PyCoreNode): if ifname is None: ifname = "eth%d" % ifindex sessionid = self.session.shortsessionid() - name = "veth%s.%s.1.%s" % (self.objid, ifindex, sessionid) + name = "veth%s.%sp%s" % (self.objid, ifindex, sessionid) localname = "veth%s.%s.%s" % (self.objid, ifindex, sessionid) - if len(ifname) > 16: + if len(localname) >= 16: raise ValueError, "interface local name '%s' to long" % \ localname ifclass = VEth diff --git a/daemon/core/session.py b/daemon/core/session.py index 8a77ea42..6c58a6eb 100644 --- a/daemon/core/session.py +++ b/daemon/core/session.py @@ -689,7 +689,8 @@ class Session(object): ''' Return a shorter version of the session ID, appropriate for interface names, where length may be limited. ''' - return (self.sessionid >> 8) ^ (self.sessionid & ((1 << 8) - 1)) + ssid = (self.sessionid >> 8) ^ (self.sessionid & ((1 << 8) - 1)) + return "%x" % ssid def sendnodeemuid(self, handler, nodenum): ''' Send back node messages to the GUI for node messages that had diff --git a/gui/util.tcl b/gui/util.tcl index eebc10c9..7ec8aaf9 100644 --- a/gui/util.tcl +++ b/gui/util.tcl @@ -1160,7 +1160,8 @@ proc get_term_prog { want_default } { # short session ID used by Python daemon for interface names proc shortSessionID { sid } { - return [ expr { ($sid >> 8) ^ ($sid & ((1<<8) - 1)) } ] + set ssid [ expr { ($sid >> 8) ^ ($sid & ((1<<8) - 1)) } ] + return [format "%x" $ssid] }