def test_p2p_ipv6(self): (n0_n1, n1_n0) = connect(self.n0, self.n1, network=self.net3) AddressHelper.assign_addresses() status = self.n0.ping(n1_n0.get_address(), verbose=False) self.assertTrue(status)
def test_run_inside_node(self): (n0_n1, n1_n0) = connect(self.n0, self.n1, network=self.net1) AddressHelper.assign_addresses() # Run ping from self.n0 to self.n1 with self.n0: command = f"ping -c 1 {n1_n0.address.get_addr(with_subnet=False)}" proc = subprocess.Popen(command.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) (stdout, _) = proc.communicate() self.assertEqual(stdout[:4], b"PING", "Invalid ping output")
def test_prp_ipv6(self): # pylint: disable=invalid-name r = Node("r") r.enable_ip_forwarding() with self.net3: (n0_r, r_n0) = connect(self.n0, r) with self.net4: (r_n1, n1_r) = connect(r, self.n1, network=self.net4) AddressHelper.assign_addresses() self.n0.add_route("DEFAULT", n0_r) self.n1.add_route("DEFAULT", n1_r) status = self.n0.ping(n1_r.get_address(), verbose=False) self.assertTrue(status)
def test_prrp(self): # pylint: disable=invalid-name r1 = Node("r") r2 = Node("r") r1.enable_ip_forwarding() r2.enable_ip_forwarding() with self.net1: (n0_r1, r1_n0) = connect(self.n0, r1) (r1_r2, r2_r1) = connect(r1, r2, network=self.net2) (r2_n1, n1_r2) = connect(r2, self.n1) AddressHelper.assign_addresses() r2_n1.set_address("10.1.3.2/24") n1_r2.set_address("10.1.3.1/24") RoutingHelper(protocol="rip").populate_routing_tables() status = self.n0.ping(n1_r2.get_address(), verbose=False) self.assertTrue(status)
# Connections of the right-nodes to the right-router with right_network: for i in range(num_of_right_nodes): right_node_connections.append(connect(right_nodes[i], right_router)) # Connecting the two routers (left_router_connection, right_router_connection) = connect(left_router, right_router, network=middle_network) ###### ADDRESS ASSIGNMENT ###### # One way AddressHelper.assign_addresses() # Another way # AddressHelper.assign_addresses(left_network) # AddressHelper.assign_addresses(right_network) # AddressHelper.assign_addresses(middle_network) # Another another way # AddressHelper.assign_addresses([left_network, right_network, middle_network]) ####### ROUTING ####### # RoutingHelper(protocol="rip").populate_routing_tables() for i in range(num_of_left_nodes): left_nodes[i].add_route("DEFAULT", left_node_connections[i][0]) # If the destination address for any packet in left-router is