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(“”)