Add ingress/egress packet tracing to all PacketVerifier packets.o 24/324/2
authorStefan Kobza <skobza@cisco.com>
Sat, 13 Feb 2016 23:04:20 +0000 (00:04 +0100)
committerStefan Kobza <skobza@cisco.com>
Mon, 15 Feb 2016 12:47:13 +0000 (12:47 +0000)
Whenever user of PacketVerifier uses send or recv, the script will print
out the packet in it's entirety.

Change-Id: Ib1968df76c87b288ce04341bc110481621cbf79a
Signed-off-by: Stefan Kobza <skobza@cisco.com>
resources/libraries/python/PacketVerifier.py

index 5c304dc..566ea95 100644 (file)
@@ -86,6 +86,7 @@ class PacketVerifier(object):
         self._sock = socket.socket(socket.AF_PACKET, socket.SOCK_RAW,
                                    ETH_P_ALL)
         self._sock.bind((interface_name, ETH_P_ALL))
+        self._ifname = interface_name
 
 
 def extract_one_packet(buf):
@@ -231,6 +232,9 @@ class RxQueue(PacketVerifier):
             return None
 
         pkt = self._sock.recv(0x7fff)
+        print 'Received packet on {0} of len {1}'.format(self._ifname, len(pkt))
+        Ether(pkt).show2()
+        print
 
         if ignore is not None:
             for i, ig_pkt in enumerate(ignore):
@@ -263,6 +267,11 @@ class TxQueue(PacketVerifier):
         :param pkt: Packet to send.
         :type pkt: string or scapy Packet derivative.
         """
+        print 'Sending packet out of {0} of len {1}'.format(self._ifname,
+                                                            len(pkt))
+        Ether(str(pkt)).show2()
+        print
+
         pkt = auto_pad(str(pkt))
         self._sock.send(pkt)