Example #1
0
    def handle_multipart_reply(self, event):
        """This method handles multipart replies for v0x04 switches.

        Args:
            event (:class:`~kytos.core.events.KytosEvent):
                Event with ofpt_multipart_reply in message.
        """
        reply = event.content['message']
        switch = event.source.switch

        if reply.multipart_type == MultipartTypes.OFPMP_FLOW:
            self._handle_multipart_flow_stats(reply, switch)
        elif reply.multipart_type == MultipartTypes.OFPMP_PORT_DESC:
            of_core_v0x04_utils.handle_port_desc(switch, reply.body)
        elif reply.multipart_type == MultipartTypes.OFPMP_DESC:
            switch.update_description(reply.body)
Example #2
0
    def test_handle_port_desc(self, mock_event_buffer):
        """Test Handle Port Desc."""
        mock_port = MagicMock()
        self.mock_switch.get_interface_by_port_no.side_effect = [
            MagicMock(), False
        ]
        handle_port_desc(self.mock_controller, self.mock_switch, [mock_port])
        self.assertEqual(self.mock_switch.update_interface.call_count, 1)
        mock_event_buffer.assert_called()
        self.assertEqual(self.mock_controller.buffers.app.put.call_count, 1)

        self.mock_switch.update_interface.call_count = 0
        self.mock_controller.buffers.app.put.call_count = 0
        handle_port_desc(self.mock_controller, self.mock_switch, [mock_port])
        self.assertEqual(self.mock_switch.update_interface.call_count, 1)
        mock_event_buffer.assert_called()
        self.assertEqual(self.mock_controller.buffers.app.put.call_count, 1)
Example #3
0
 def handle_port_desc_reply(self, event):
     """Handles Port Description Reply messages."""
     switch = event.source.switch
     reply = event.content['message']
     if reply.multipart_type == MultipartTypes.OFPMP_PORT_DESC:
         of_core_v0x04_utils.handle_port_desc(switch, reply.body)