X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_pg_interface.py;h=8792e6c3767793261e2186829e96c090407d81ea;hb=fe52dea08f3ebf3c95a33266c7fa15da33f4e9d0;hp=1300f1f1f006b3d5f769482068fe985e32151cc2;hpb=a98346f664aae148d26a8e158008b773d73db96f;p=vpp.git diff --git a/test/vpp_pg_interface.py b/test/vpp_pg_interface.py index 1300f1f1f00..8792e6c3767 100644 --- a/test/vpp_pg_interface.py +++ b/test/vpp_pg_interface.py @@ -3,6 +3,8 @@ import time import socket import struct from traceback import format_exc, format_stack + +import scapy.compat from scapy.utils import wrpcap, rdpcap, PcapReader from scapy.plist import PacketList from vpp_interface import VppInterface @@ -285,7 +287,7 @@ class VppPGInterface(VppInterface): while time.time() < deadline: if os.path.isfile(self.out_path): break - time.sleep(0) # yield + self._test.sleep(0) # yield if os.path.isfile(self.out_path): self.test.logger.debug("Capture file appeared after %fs" % (time.time() - (deadline - timeout))) @@ -353,7 +355,7 @@ class VppPGInterface(VppInterface): self.test.logger.debug("Polling for packet") while time.time() < deadline or poll: if not self.verify_enough_packet_data_in_pcap(): - time.sleep(0) # yield + self._test.sleep(0) # yield poll = False continue p = self._pcap_reader.recv() @@ -367,7 +369,7 @@ class VppPGInterface(VppInterface): "Packet received after %fs" % (time.time() - (deadline - timeout))) return p - time.sleep(0) # yield + self._test.sleep(0) # yield poll = False self.test.logger.debug("Timeout - no packets received") raise CaptureTimeoutError("Packet didn't arrive within timeout") @@ -414,7 +416,7 @@ class VppPGInterface(VppInterface): # Make Dot1AD packet content recognizable to scapy if arp_reply.type == 0x88a8: arp_reply.type = 0x8100 - arp_reply = Ether(str(arp_reply)) + arp_reply = Ether(scapy.compat.raw(arp_reply)) try: if arp_reply[ARP].op == ARP.is_at: self.test.logger.info("VPP %s MAC address is %s " % @@ -460,8 +462,11 @@ class VppPGInterface(VppInterface): ndp_reply = captured_packet.copy() # keep original for exception # Make Dot1AD packet content recognizable to scapy if ndp_reply.type == 0x88a8: + self._test.logger.info( + "Replacing EtherType: 0x88a8 with " + "0x8100 and regenerating Ethernet header. ") ndp_reply.type = 0x8100 - ndp_reply = Ether(str(ndp_reply)) + ndp_reply = Ether(scapy.compat.raw(ndp_reply)) try: ndp_na = ndp_reply[ICMPv6ND_NA] opt = ndp_na[ICMPv6NDOptDstLLAddr]