Packet_In事件架构
event中packet类型判断方式
1、if isinstance(event.parsed.next, arp): [利用函数判断]
2、if packet.type == ethernet.LLDP_TYPE: [利用ethernet中定义的类型判断]
用debug信息打印packet信息的语句
添加在l3_learning.py的91行
<br />
def _handle_PacketIn (self, event): #[line90]<br />
log.debug("") #[line91]<br />
log.debug(" PacketIn Information ")<br />
log.debug("--------------------------------------------")<br />
log.debug("dpid: %d",event.connection.dpid)<br />
log.debug("packet_type: %x",event.parsed.type)<br />
log.debug("ethernet_src:%s",str(event.parsed.src))<br />
log.debug("ethernet_dst:%s",str(event.parsed.dst))<br />
if isinstance(event.parsed.next, ipv4):<br />
log.debug("packet_type: IP")<br />
log.debug("IP_VERSION: %u",event.parsed.next.v)<br />
log.debug("packet_type: %u",event.parsed.next.ttl)<br />
log.debug("packet_id: %u",event.parsed.next.id)<br />
log.debug("packet_csum: %u",event.parsed.next.csum)<br />
log.debug("packet_ip_id:%u",event.parsed.next.ip_id)
if isinstance(event.parsed.next, arp):
log.debug(“packet_type: ARP”)
log.debug(“src_ip: %s”,str(event.parsed.next.protosrc))
log.debug(“dst_ip: %s”,str(event.parsed.next.protodst))
log.debug(“src_mac: %s”,str(event.parsed.next.hwsrc))
log.debug(“dst_mac: %s”,str(event.parsed.next.hwdst))
log.debug(“buffer_id: %d”,event.ofp.buffer_id)
log.debug(“event-type: %s”,str(event.__class__))
log.debug(“port: %d”,event.port)
log.debug(“——————————————–“)
log.debug(“”)