X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftraffic_scripts%2Fipv6_ns.py;h=70c6ab445a1500b9a70eacc03cd9353c71b8f58c;hp=dd1adad39ef0d15f71b47fc4977de8897a9a19be;hb=c478afc5aec0161cc66e837c1ab919542b68ebbc;hpb=33499c81c94c2d3baef9d3e9f061cd76ef86fa74 diff --git a/resources/traffic_scripts/ipv6_ns.py b/resources/traffic_scripts/ipv6_ns.py index dd1adad39e..70c6ab445a 100755 --- a/resources/traffic_scripts/ipv6_ns.py +++ b/resources/traffic_scripts/ipv6_ns.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, ICMPv6ND_NS from scapy.layers.inet6 import ICMPv6NDOptDstLLAddr, ICMPv6NDOptSrcLLAddr @@ -49,18 +50,15 @@ def main(): # receive ICMPv6 neighbor advertisement message 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(ICMPv6ND_NA): - rxq._proc.terminate() raise RuntimeError( 'Unexpected packet with no ICMPv6 ND-NA received {0}'.format( ipv6.__repr__())) @@ -69,12 +67,10 @@ def main(): # verify target address if icmpv6_na.tgt != dst_ip: - rxq._proc.terminate() raise RuntimeError('Invalid target address {0} should be {1}'.format( icmpv6_na.tgt, dst_ip)) if not icmpv6_na.haslayer(ICMPv6NDOptDstLLAddr): - rxq._proc.terminate() raise RuntimeError( 'Missing Destination Link-Layer Address option in ICMPv6 ' + 'Neighbor Advertisement {0}'.format(icmpv6_na.__repr__())) @@ -84,7 +80,6 @@ def main(): # verify destination link-layer address field if dst_ll_addr.lladdr != dst_mac: - rxq._proc.terminate() raise RuntimeError('Invalid lladdr {0} should be {1}'.format( dst_ll_addr.lladdr, dst_mac)) @@ -92,12 +87,10 @@ def main(): cksum = icmpv6_na.cksum del icmpv6_na.cksum tmp = ICMPv6ND_NA(str(icmpv6_na)) - 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__":