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)
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)
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)