Пример #1
0
    def on_packet_in(self, evt):
        """
        Process PacketIN event.
        """
        try:
            if fibclog.dump_msg():
                _LOG.debug("packet_in(%s)", evt.msg)

            msg = evt.msg
            dp_id = msg.datapath.id
            port_id = get_in_port(msg)

            pkt = packet.Packet(msg.data)
            ffpkt = pkt.get_protocol(ffpacket.FFPacket)

            if ffpkt is not None:
                _LOG.debug("%s, (%d, %d)", ffpkt, dp_id, port_id)

                ffpkt_evt = fibcevt.EventFIBCVsPortConfig(
                    ffpkt, dp_id, port_id)
                self.send_event_to_observers(ffpkt_evt)

            else:
                _LOG.debug("PacketIN (%d, %d)", dp_id, port_id)
                if fibclog.dump_pkt():
                    _LOG.debug("%s", pkt)

                self.forward_pkt(pkt, dp_id, port_id)

        except Exception as expt:
            _LOG.exception(expt)
            hexdump(msg.data)
Пример #2
0
 def vs_port_config(self, msg):
     """
     simulate ffpacket received.
     """
     re_id = msg["re_id"]
     vs_id = msg["vs_id"]
     for arg in msg["args"]:
         pkt = ffpacket.FFPacket(re_id, arg["ifname"])
         evt = fibcevt.EventFIBCVsPortConfig(pkt, vs_id, arg["port"])
         self.app.send_event_to_observers(evt)
Пример #3
0
    def _on_packet_in(self, msg, dp_id, port_id):
        try:
            if fibclog.dump_msg():
                _LOG.debug("packet_in(%s)", msg)

            ffpkt, vlan_hdr = _parse_pkt_hdr(msg.data)

            if ffpkt is not None:
                _LOG.debug("%s, (%d, %d)", ffpkt, dp_id, port_id)

                ffpkt_evt = fibcevt.EventFIBCVsPortConfig(
                    ffpkt, dp_id, port_id)
                self.send_event_to_observers(ffpkt_evt)

            else:
                _LOG.debug("PacketIN (%d, %d)", dp_id, port_id)
                if fibclog.dump_pkt():
                    hexdump(msg.data)

                self.forward_pkt(vlan_hdr, msg.data, dp_id, port_id)

        except Exception as expt:
            _LOG.exception(expt)
            hexdump(msg.data)