fix(Pylint): Small fixes
[csit.git] / GPL / traffic_scripts / send_icmp_wait_for_reply.py
index 70d9a99..f09287f 100644 (file)
 """Traffic script that sends an IP ICMPv4 or ICMPv6."""
 
 import sys
 """Traffic script that sends an IP ICMPv4 or ICMPv6."""
 
 import sys
-import ipaddress
 
 from scapy.layers.inet import ICMP, IP
 
 from scapy.layers.inet import ICMP, IP
-from scapy.layers.inet6 import IPv6, ICMPv6EchoRequest, ICMPv6EchoReply,\
-    ICMPv6ND_NS
+from scapy.layers.inet6 import ICMPv6EchoRequest, ICMPv6EchoReply,\
+    ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
 from scapy.layers.l2 import Ether
 from scapy.packet import Raw
 
 from .PacketVerifier import RxQueue, TxQueue
 from .TrafficScriptArg import TrafficScriptArg
 from scapy.layers.l2 import Ether
 from scapy.packet import Raw
 
 from .PacketVerifier import RxQueue, TxQueue
 from .TrafficScriptArg import TrafficScriptArg
-
-
-def valid_ipv4(ip):
-    """Check if IP address has the correct IPv4 address format.
-
-    :param ip: IP address.
-    :type ip: str
-    :return: True in case of correct IPv4 address format,
-             otherwise return False.
-    :rtype: bool
-    """
-    try:
-        ipaddress.IPv4Address(ip)
-        return True
-    except (AttributeError, ipaddress.AddressValueError):
-        return False
-
-
-def valid_ipv6(ip):
-    """Check if IP address has the correct IPv6 address format.
-
-    :param ip: IP address.
-    :type ip: str
-    :return: True in case of correct IPv6 address format,
-             otherwise return False.
-    :rtype: bool
-    """
-    try:
-        ipaddress.IPv6Address(ip)
-        return True
-    except (AttributeError, ipaddress.AddressValueError):
-        return False
+from .ValidIp import valid_ipv4, valid_ipv6
 
 
 def main():
 
 
 def main():
@@ -105,9 +73,9 @@ def main():
         raise ValueError(u"IP not in correct format")
 
     icmp_request = (
         raise ValueError(u"IP not in correct format")
 
     icmp_request = (
-            Ether(src=src_mac, dst=dst_mac) /
-            ip_layer(src=src_ip, dst=dst_ip) /
-            icmp_req()
+        Ether(src=src_mac, dst=dst_mac) /
+        ip_layer(src=src_ip, dst=dst_ip) /
+        icmp_req()
     )
 
     # Send created packet on the interface
     )
 
     # Send created packet on the interface
@@ -126,9 +94,16 @@ def main():
             elif icmp_reply.haslayer(ICMPv6ND_NS):
                 # read another packet in the queue in case of ICMPv6ND_NS packet
                 continue
             elif icmp_reply.haslayer(ICMPv6ND_NS):
                 # read another packet in the queue in case of ICMPv6ND_NS packet
                 continue
-            else:
-                # otherwise process the current packet
-                break
+            elif icmp_reply.haslayer(ICMPv6MLReport2):
+                # read another packet in the queue if the current one is
+                # ICMPv6MLReport2
+                continue
+            elif icmp_reply.haslayer(ICMPv6ND_RA):
+                # read another packet in the queue if the current one is
+                # ICMPv6ND_RA
+                continue
+
+            break
 
         if icmp_reply[ip_layer][icmp_resp].type == icmp_type:
             if icmp_reply[ip_layer].src == dst_ip and \
 
         if icmp_reply[ip_layer][icmp_resp].type == icmp_type:
             if icmp_reply[ip_layer].src == dst_ip and \