From: Claudio-Daniel Freire Date: Sat, 1 Oct 2011 08:23:19 +0000 (+0200) Subject: Fix TUN<->TunChannel connection in netns: must set TunChan in non-ethernet mode X-Git-Tag: nepi-3.0.0~197 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=f1d5fa69767bceca1114485b92ffd35cd1aa097c;p=nepi.git Fix TUN<->TunChannel connection in netns: must set TunChan in non-ethernet mode --- diff --git a/src/nepi/testbeds/netns/metadata.py b/src/nepi/testbeds/netns/metadata.py index 9875c235..93642931 100644 --- a/src/nepi/testbeds/netns/metadata.py +++ b/src/nepi/testbeds/netns/metadata.py @@ -52,7 +52,10 @@ def connect_fd(testbed_instance, tap_guid, cross_data): passfd.sendfd(sock, tap.fd, '0') # TODO: after succesful transfer, the tap device should close the fd -def connect_tunchannel_tap(testbed_instance, chan_guid, tap_guid): +def connect_tunchannel_tun(testbed_instance, chan_guid, tap_guid): + connect_tunchannel_tap(testbed_instance, chan_guid, tap_guid, ethernet_mode=False) + +def connect_tunchannel_tap(testbed_instance, chan_guid, tap_guid, ethernet_mode=True): tap = testbed_instance._elements[tap_guid] chan = testbed_instance._elements[chan_guid] @@ -63,7 +66,7 @@ def connect_tunchannel_tap(testbed_instance, chan_guid, tap_guid): chan.tun_socket = os.fdopen(tap.fd) # Set the channel to ethernet mode (it's a tap) - chan.ethernet_mode = True + chan.ethernet_mode = ethernet_mode # Check to see if the device uses PI headers # It's normally so @@ -364,7 +367,7 @@ connections = [ dict({ "from": (TESTBED_ID, TUNCHANNEL, "->fd" ), "to": (TESTBED_ID, TUNIFACE, "fd->" ), - "init_code": connect_tunchannel_tap, + "init_code": connect_tunchannel_tun, "can_cross": False }), dict({