예제 #1
0
파일: basic.py 프로젝트: rrdenicol/oftest12
    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")
예제 #2
0
파일: basic.py 프로젝트: namssob/oftest12
    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")
예제 #3
0
    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)
예제 #4
0
    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))
예제 #5
0
    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))
예제 #6
0
    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)