From: Claudio-Daniel Freire Date: Thu, 6 Oct 2011 21:16:07 +0000 (-0300) Subject: Fixe ns3 routing X-Git-Tag: nepi-3.0.0~169 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=9db579731f4e45623a059bbeccbdc6cc64d36dc6;p=nepi.git Fixe ns3 routing --- diff --git a/examples/Multicast/multicast_experiment.py b/examples/Multicast/multicast_experiment.py index e6285472..7b0daae3 100644 --- a/examples/Multicast/multicast_experiment.py +++ b/examples/Multicast/multicast_experiment.py @@ -141,13 +141,17 @@ class PlanetLabMulticastOverlay: r1.set_attribute_value("NextHop", nexthop) if mcast: - fwd = pl.create("MulticastForwarder") - fwd.enable_trace("stderr") - fwd.connector("node").connect(node1.connector("apps")) if mcastrouter: + fwd = pl.create("MulticastForwarder") + fwd.enable_trace("stderr") + fwd.connector("node").connect(node1.connector("apps")) mrt = pl.create("MulticastRouter") mrt.connector("fwd").connect(fwd.connector("router")) mrt.enable_trace("stderr") + else: + ann = pl.create("MulticastAnnouncer") + ann.enable_trace("stderr") + ann.connector("node").connect(node1.connector("apps")) return node1, iface1, tap1, tap1ip, inet @@ -529,20 +533,22 @@ class PlanetLabMulticastOverlay: ap_wifi, ap_phy = self.add_ns_wifi_dev(ns, ap_node, access_point = True) ap_phy.connector("chan").connect(wifi_chan.connector("phys")) + # Net range free for WiFi + wifi_net_prefix = 32-int(math.floor(math.log(256-nextip[0]&0xff) / math.log(2))) + wifi_net = vnet_i | (256 - (1<<(32-wifi_net_prefix))) + # connect AP to PL - pl_addr = str(ipaddr.IPAddress(vnet_i | 254)) - ns_addr = str(ipaddr.IPAddress(vnet_i | 253)) + pl_addr = str(ipaddr.IPAddress(wifi_net | 1)) + ns_addr = str(ipaddr.IPAddress(wifi_net | 2)) self.add_pl_ns_connection( pl, pl_ns_root, pl_addr, ns, ap_node, ns_addr, fd = True, ptp = True, prefix=30) - wifi_net_prefix = 32-int(math.floor(math.log(256-nextip[0]&0xff) / math.log(2))) - wifi_net = vnet_i | (256 - (1<<(32-wifi_net_prefix))) # AP ip - ap_addr = str(ipaddr.IPAddress(vnet_i | 251)) - ap_addr_prefix = 32-int(math.ceil(math.log(self.nsta+6) / math.log(2))) + ap_addr = str(ipaddr.IPAddress(vnet_i | 254)) + ap_addr_prefix = 32-int(math.ceil(math.log(self.nsta+3) / math.log(2))) self.add_ip_address(ap_wifi, ap_addr, ap_addr_prefix) # route for PL->wifi @@ -556,7 +562,7 @@ class PlanetLabMulticastOverlay: print " | R %s/%d --> %s" % (str(ipaddr.IPAddress(wifi_net)), wifi_net_prefix, ns_addr) nextpip = (vnet_i | 255) >> (32-ap_addr_prefix) << (32-ap_addr_prefix) - nextdip = vnet_i | 250 + nextdip = vnet_i | 253 ap_net = nextpip - (1<<(32-ap_addr_prefix)) r = 50 # STA nodes