def __init__(self, sock, msg): """Initialize @param sock reference to socket @param msg message """ ofcomm.message.__init__(self, sock, msg) ##Packet in header self.pktin = None ##Packet included parsed by dpkt self.dpkt = None ##Binary packet self.pkt = None ##Exact match for match self.match = None if (self.header.type == pyof.OFPT_PACKET_IN): self.pktin = pyof.ofp_packet_in() self.pkt = self.pktin.unpack(msg) output.vdbg("Packet in\n"+self.pktin.show("\t"), self.__class__.__name__) (self.match, self.dpkt) = ofutil.get_ofp_match(self.pktin.in_port, self.pkt) output.vdbg("Packet has match\n"+self.match.show("\t"), self.__class__.__name__) output.vdbg(str(`self.dpkt`), self.__class__.__name__)
opts, args = getopt.getopt(sys.argv[1:], "h", ["help"]) except getopt.GetoptError: print "Option error!" usage() sys.exit(2) #Parse options for opt,arg in opts: if (opt in ("-h","--help")): usage() sys.exit(0) else: print "Unhandled option :"+opt sys.exit(2) if (len(args) < 1): print "Missing filename" usage() sys.exit(2) output.set_mode("DBG") pc = pcap.pcap(args[0]) for ts,pkt in pc: dpktpkt = dpkt.ethernet.Ethernet(pkt) output.dbg(str(`dpktpkt`)) ofdata = dpktpkt["data"]["data"]["data"] (ofm, dpktp) = ofutil.get_ofp_match(0, ofdata[18:]) output.dbg(str(`dpktp`)) output.dbg("OFP MATCH\n"+ofm.show())