def runTest(self): basic_logger.info("Running " + str(self)) for of_port, _ in basic_port_map.items(): # Grab first port break (_, config, _) = \ testutils.port_config_get(self.controller, of_port, basic_logger) self.assertTrue(config is not None, "Did not get port config") basic_logger.debug("No flood bit port " + str(of_port) + " is now " + str(config & ofp.OFPPC_NO_PACKET_IN)) rv = testutils.port_config_set(self.controller, of_port, config ^ ofp.OFPPC_NO_PACKET_IN, ofp.OFPPC_NO_PACKET_IN, basic_logger) self.assertTrue(rv != -1, "Error sending port mod") # Verify change took place with same feature request (_, config2, _) = \ testutils.port_config_get(self.controller, of_port, basic_logger) basic_logger.debug("No packet_in bit port " + str(of_port) + " is now " + str(config2 & ofp.OFPPC_NO_PACKET_IN)) self.assertTrue(config2 is not None, "Did not get port config2") self.assertTrue(config2 & ofp.OFPPC_NO_PACKET_IN != config & ofp.OFPPC_NO_PACKET_IN, "Bit change did not take") # Set it back rv = testutils.port_config_set(self.controller, of_port, config, ofp.OFPPC_NO_PACKET_IN, basic_logger) self.assertTrue(rv != -1, "Error sending port mod")
def runTest(self): basic_logger.info("Running " + str(self)) for of_port, _ in basic_port_map.items(): # Grab first port break (_, config, _) = \ testutils.port_config_get(self.controller, of_port, basic_logger) self.assertTrue(config is not None, "Did not get port config") basic_logger.debug("No flood bit port " + str(of_port) + " is now " + str(config & ofp.OFPPC_NO_PACKET_IN)) rv = testutils.port_config_set(self.controller, of_port, config ^ ofp.OFPPC_NO_PACKET_IN, ofp.OFPPC_NO_PACKET_IN, basic_logger) self.assertTrue(rv != -1, "Error sending port mod") # Verify change took place with same feature request (_, config2, _) = \ testutils.port_config_get(self.controller, of_port, basic_logger) basic_logger.debug("No packet_in bit port " + str(of_port) + " is now " + str(config2 & ofp.OFPPC_NO_PACKET_IN)) self.assertTrue(config2 is not None, "Did not get port config2") self.assertTrue( config2 & ofp.OFPPC_NO_PACKET_IN != config & ofp.OFPPC_NO_PACKET_IN, "Bit change did not take") # Set it back rv = testutils.port_config_set(self.controller, of_port, config, ofp.OFPPC_NO_PACKET_IN, basic_logger) self.assertTrue(rv != -1, "Error sending port mod")
def runTest(self): #async_logger.info("Running " + str(self)) #step 0:clear switch of_ports = testutils.clear_switch(self, async_port_map.keys(), async_logger) (response, _) = self.controller.poll(ofp.OFPT_PORT_STATUS, 2) (response, _) = self.controller.poll(ofp.OFPT_PORT_STATUS, 2) (response, _) = self.controller.poll(ofp.OFPT_PORT_STATUS, 2) #step 1:controller sends set_async_request msg async_logger.info("Sending set_async_request") mask = 0xffffffff ^ (1 << ofp.OFPPR_MODIFY) request_set = create_set_async(port_st_mstr = mask) testutils.ofmsg_send(self, request_set) #result 1: contrller sends msg successfully #step 2: set the first port's config to the other way async_logger.info("testcase executed on port: " + str(of_ports[0])) async_logger.debug("No flood bit port " + str(of_ports[0]) + " is now " + str(ofp.OFPPC_NO_PACKET_IN)) rv = testutils.port_config_set(self.controller, of_ports[0], ofp.OFPPC_NO_PACKET_IN, ofp.OFPPC_NO_PACKET_IN, async_logger) #result 2:set the first port's config to the other way successfully self.assertTrue(rv != -1, "Error sending port mod") testutils.do_barrier(self.controller) #step 3: after the port's attribute changed, PORT_STATUS msg sended to controller (response, _) = self.controller.poll(ofp.OFPT_PORT_STATUS, 2) #result 3: no packetin msg sended to controller self.assertTrue(response is None, 'PORT_STATUS message received unexpected') #step 4: Verify change took place with same feature request _,config,_ = testutils.port_config_get(self.controller, of_ports[0], async_logger) async_logger.debug("No packet_in bit port " + str(of_ports[0]) + " is now " + str(config & ofp.OFPPC_NO_PACKET_IN)) self.assertTrue(config is not None, "Did not get port config") self.assertTrue(config & ofp.OFPPC_NO_PACKET_IN != 0, "Bit change did not take") #step 5: Set it back mask = 1 << ofp.OFPPR_MODIFY request_set = create_set_async(port_st_mstr = mask) testutils.ofmsg_send(self, request_set) rv = testutils.port_config_set(self.controller, of_ports[0], 0, ofp.OFPPC_NO_PACKET_IN, async_logger) self.assertTrue(rv != -1, "Error sending port mod") (response, _) = self.controller.poll(ofp.OFPT_PORT_STATUS, 2) #result 3: no packetin msg sended to controller self.assertTrue(response is not None, 'PORT_STATUS message not received') testutils.clear_switch(self, async_port_map, async_logger) msg = create_set_async() set_async_verify(self, msg)
def runTest(self): # Construct packet to send to dataplane # Send packet to dataplane, once to each port # Poll controller with expect message type packet in rc = testutils.delete_all_flows(self.controller, config_logger) self.assertEqual(rc, 0, "Failed to delete all flows") of_port = config_port_map.keys()[0] _, config, _ = testutils.port_config_get(self.controller, of_port, config_logger) rv = testutils.port_config_set(self.controller, of_port, ofp.OFPPC_NO_PACKET_IN, ofp.OFPPC_NO_PACKET_IN, config_logger) self.assertTrue(rv != -1, "Error sending port mod") config_logger.info("NO PKT IN test, port " + str(of_port)) # make sure config is changed before sending the packet testutils.do_barrier(self.controller) pkt = testutils.simple_tcp_packet() self.dataplane.send(of_port, str(pkt)) #@todo Check for unexpected messages? (response, _) = self.controller.poll(ofp.OFPT_PACKET_IN, 2) self.assertTrue( response is None, 'OFPPC_NO_PACKET_IN flag is ignored on port (got a packet when we asked not to) ' + str(of_port)) rv = testutils.port_config_set(self.controller, of_port, config, ofp.OFPPC_NO_PACKET_IN, config_logger) self.assertTrue(rv != -1, "Error sending port mod") #clear port config of_port = config_port_map.keys()[0] _, config, _ = testutils.port_config_get(self.controller, of_port, config_logger) rv = testutils.port_config_set(self.controller, of_port, 0, ofp.OFPPC_NO_PACKET_IN, config_logger) self.assertTrue(rv != -1, "Error sending port mod") config_logger.info("NO PKT IN test, port " + str(of_port))
def runTest(self): # Construct packet to send to dataplane # Send packet to dataplane, once to each port # Poll controller with expect message type packet in rc = testutils.delete_all_flows(self.controller, config_logger) self.assertEqual(rc, 0, "Failed to delete all flows") of_port=config_port_map.keys()[0] _,config,_ = testutils.port_config_get(self.controller, of_port, config_logger) rv = testutils.port_config_set(self.controller, of_port, ofp.OFPPC_NO_PACKET_IN, ofp.OFPPC_NO_PACKET_IN, config_logger) self.assertTrue(rv != -1, "Error sending port mod") config_logger.info("NO PKT IN test, port " + str(of_port)) # make sure config is changed before sending the packet testutils.do_barrier(self.controller); pkt = testutils.simple_tcp_packet() self.dataplane.send(of_port, str(pkt)) #@todo Check for unexpected messages? (response, _) = self.controller.poll(ofp.OFPT_PACKET_IN, 2) self.assertTrue(response is None, 'OFPPC_NO_PACKET_IN flag is ignored on port (got a packet when we asked not to) ' + str(of_port)) rv = testutils.port_config_set(self.controller, of_port, config, ofp.OFPPC_NO_PACKET_IN, config_logger) self.assertTrue(rv != -1, "Error sending port mod") #clear port config of_port=config_port_map.keys()[0] _,config,_ = testutils.port_config_get(self.controller, of_port, config_logger) rv = testutils.port_config_set(self.controller, of_port, 0, ofp.OFPPC_NO_PACKET_IN, config_logger) self.assertTrue(rv != -1, "Error sending port mod") config_logger.info("NO PKT IN test, port " + str(of_port))
def runTest(self): #async_logger.info("Running " + str(self)) #step 0:clear switch of_ports = testutils.clear_switch(self, async_port_map.keys(), async_logger) (response, _) = self.controller.poll(ofp.OFPT_PORT_STATUS, 2) (response, _) = self.controller.poll(ofp.OFPT_PORT_STATUS, 2) (response, _) = self.controller.poll(ofp.OFPT_PORT_STATUS, 2) #step 1:controller sends set_async_request msg async_logger.info("Sending set_async_request") mask = 0xffffffff ^ (1 << ofp.OFPPR_MODIFY) request_set = create_set_async(port_st_mstr=mask) testutils.ofmsg_send(self, request_set) #result 1: contrller sends msg successfully #step 2: set the first port's config to the other way async_logger.info("testcase executed on port: " + str(of_ports[0])) async_logger.debug("No flood bit port " + str(of_ports[0]) + " is now " + str(ofp.OFPPC_NO_PACKET_IN)) rv = testutils.port_config_set(self.controller, of_ports[0], ofp.OFPPC_NO_PACKET_IN, ofp.OFPPC_NO_PACKET_IN, async_logger) #result 2:set the first port's config to the other way successfully self.assertTrue(rv != -1, "Error sending port mod") testutils.do_barrier(self.controller) #step 3: after the port's attribute changed, PORT_STATUS msg sended to controller (response, _) = self.controller.poll(ofp.OFPT_PORT_STATUS, 2) #result 3: no packetin msg sended to controller self.assertTrue(response is None, 'PORT_STATUS message received unexpected') #step 4: Verify change took place with same feature request _, config, _ = testutils.port_config_get(self.controller, of_ports[0], async_logger) async_logger.debug("No packet_in bit port " + str(of_ports[0]) + " is now " + str(config & ofp.OFPPC_NO_PACKET_IN)) self.assertTrue(config is not None, "Did not get port config") self.assertTrue(config & ofp.OFPPC_NO_PACKET_IN != 0, "Bit change did not take") #step 5: Set it back mask = 1 << ofp.OFPPR_MODIFY request_set = create_set_async(port_st_mstr=mask) testutils.ofmsg_send(self, request_set) rv = testutils.port_config_set(self.controller, of_ports[0], 0, ofp.OFPPC_NO_PACKET_IN, async_logger) self.assertTrue(rv != -1, "Error sending port mod") (response, _) = self.controller.poll(ofp.OFPT_PORT_STATUS, 2) #result 3: no packetin msg sended to controller self.assertTrue(response is not None, 'PORT_STATUS message not received') testutils.clear_switch(self, async_port_map, async_logger) msg = create_set_async() set_async_verify(self, msg)