X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftraffic_scripts%2Ficmpv6_echo.py;h=4bf573a1f1d76c459544634e571ded01e54cc653;hp=c3c8d5a381406efbbd698c043113366be217686f;hb=f3ec62c25fa612c5fc63d69c7f74413b84a76789;hpb=33499c81c94c2d3baef9d3e9f061cd76ef86fa74 diff --git a/resources/traffic_scripts/icmpv6_echo.py b/resources/traffic_scripts/icmpv6_echo.py index c3c8d5a381..4bf573a1f1 100755 --- a/resources/traffic_scripts/icmpv6_echo.py +++ b/resources/traffic_scripts/icmpv6_echo.py @@ -18,7 +18,8 @@ import sys import logging logging.getLogger("scapy.runtime").setLevel(logging.ERROR) -from resources.libraries.python.PacketVerifier import RxQueue, TxQueue +from resources.libraries.python.PacketVerifier import RxQueue, TxQueue,\ + checksum_equal from resources.libraries.python.TrafficScriptArg import TrafficScriptArg from scapy.layers.inet6 import IPv6, ICMPv6ND_NA, ICMPv6NDOptDstLLAddr from scapy.layers.inet6 import ICMPv6EchoRequest, ICMPv6EchoReply @@ -58,18 +59,15 @@ def main(): # receive ICMPv6 echo reply ether = rxq.recv(2, sent_packets) if ether is None: - rxq._proc.terminate() raise RuntimeError('ICMPv6 echo reply Rx timeout') if not ether.haslayer(IPv6): - rxq._proc.terminate() raise RuntimeError('Unexpected packet with no IPv6 received {0}'.format( ether.__repr__())) ipv6 = ether['IPv6'] if not ipv6.haslayer(ICMPv6EchoReply): - rxq._proc.terminate() raise RuntimeError( 'Unexpected packet with no IPv6 ICMP received {0}'.format( ipv6.__repr__())) @@ -78,21 +76,18 @@ def main(): # check identifier and sequence number if icmpv6.id != echo_id or icmpv6.seq != echo_seq: - rxq._proc.terminate() raise RuntimeError( - 'Invalid ICMPv6 echo reply received ID {0} seq {1} should be ' + + 'Invalid ICMPv6 echo reply received ID {0} seq {1} should be ' \ 'ID {2} seq {3}'.format(icmpv6.id, icmpv6.seq, echo_id, echo_seq)) # verify checksum cksum = icmpv6.cksum del icmpv6.cksum tmp = ICMPv6EchoReply(str(icmpv6)) - if tmp.cksum != cksum: - rxq._proc.terminate() + if not checksum_equal(tmp.cksum, cksum): raise RuntimeError( 'Invalid checksum {0} should be {1}'.format(cksum, tmp.cksum)) - rxq._proc.terminate() sys.exit(0) if __name__ == "__main__":