X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftraffic_scripts%2Fipv4_sweep_ping.py;h=cd332d0391d44671550382b5b40740796ee0ff74;hp=5005345250317221d3dfaf2e87c0367bb5da2bbf;hb=bc4d98a34af3f26a1c9264758186189f15513a7e;hpb=84c45de446b69f83df919a91bc684da910824d6f diff --git a/resources/traffic_scripts/ipv4_sweep_ping.py b/resources/traffic_scripts/ipv4_sweep_ping.py index 5005345250..cd332d0391 100755 --- a/resources/traffic_scripts/ipv4_sweep_ping.py +++ b/resources/traffic_scripts/ipv4_sweep_ping.py @@ -20,7 +20,7 @@ import logging import os logging.getLogger("scapy.runtime").setLevel(logging.ERROR) from resources.libraries.python.PacketVerifier import RxQueue, TxQueue,\ - auto_pad, create_gratuitous_arp_request + auto_pad, create_gratuitous_arp_request, checksum_equal from resources.libraries.python.TrafficScriptArg import TrafficScriptArg from scapy.layers.inet import IP, ICMP from scapy.all import Ether, Raw @@ -83,18 +83,21 @@ def main(): if icmpv4.id != echo_id or icmpv4.seq != echo_seq: raise RuntimeError( - 'Invalid ICMP echo reply received ID {0} seq {1} should be ' + + 'Invalid ICMP echo reply received ID {0} seq {1} should be ' \ 'ID {2} seq {3}, {0}'.format(icmpv4.id, icmpv4.seq, echo_id, echo_seq)) chksum = icmpv4.chksum del icmpv4.chksum tmp = ICMP(str(icmpv4)) - if tmp.chksum != chksum: + if not checksum_equal(tmp.chksum, chksum): raise RuntimeError( 'Invalid checksum {0} should be {1}'.format(chksum, tmp.chksum)) - recv_payload_len = ipv4.len - 20 - 8 - load = tmp['Raw'].load[0:recv_payload_len] + + if 'Raw' in icmpv4: + load = icmpv4['Raw'].load + else: + load = [] if load != data[0:echo_seq]: raise RuntimeError( 'Received ICMP payload does not match sent payload')