feat(bootstrap): Add more granular eb scripts
[csit.git] / GPL / traffic_scripts / send_ip_check_headers.py
index e052b12..a13b1b7 100644 (file)
@@ -30,49 +30,15 @@ MAC addresses are checked in received packet.
 
 import sys
 
 
 import sys
 
-import ipaddress
-
 from robot.api import logger
 from scapy.layers.inet import IP
 from robot.api import logger
 from scapy.layers.inet import IP
-from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, ICMPv6MLReport2
+from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
 from scapy.layers.l2 import Ether, Dot1Q
 from scapy.packet import Raw
 
 from .PacketVerifier import RxQueue, TxQueue
 from .TrafficScriptArg import TrafficScriptArg
 from scapy.layers.l2 import Ether, Dot1Q
 from scapy.packet import Raw
 
 from .PacketVerifier import RxQueue, TxQueue
 from .TrafficScriptArg import TrafficScriptArg
-
-
-def valid_ipv4(ip_address):
-    """Check IPv4 address.
-
-    :param ip_address: IPv4 address to check.
-    :type ip_address: str
-    :returns: True if IP address is correct.
-    :rtype: bool
-    :raises AttributeError, AddressValueError: If IP address is not valid.
-    """
-    try:
-        ipaddress.IPv4Address(ip_address)
-        return True
-    except (AttributeError, ipaddress.AddressValueError):
-        return False
-
-
-def valid_ipv6(ip_address):
-    """Check IPv6 address.
-
-    :param ip_address: IPv6 address to check.
-    :type ip_address: str
-    :returns: True if IP address is correct.
-    :rtype: bool
-    :raises AttributeError, AddressValueError: If IP address is not valid.
-    """
-    try:
-        ipaddress.IPv6Address(ip_address)
-        return True
-    except (AttributeError, ipaddress.AddressValueError):
-        return False
-
+from .ValidIp import valid_ipv4, valid_ipv6
 
 def main():
     """Send IP/IPv6 packet from one traffic generator interface to the other."""
 
 def main():
     """Send IP/IPv6 packet from one traffic generator interface to the other."""
@@ -145,9 +111,12 @@ def main():
             # read another packet in the queue if the current one is
             # ICMPv6MLReport2
             continue
             # read another packet in the queue if the current one is
             # ICMPv6MLReport2
             continue
-        else:
-            # otherwise process the current packet
-            break
+        elif ether.haslayer(ICMPv6ND_RA):
+            # read another packet in the queue if the current one is
+            # ICMPv6ND_RA
+            continue
+
+        break
 
     if rx_dst_mac == ether[Ether].dst and rx_src_mac == ether[Ether].src:
         logger.trace(u"MAC matched")
 
     if rx_dst_mac == ether[Ether].dst and rx_src_mac == ether[Ether].src:
         logger.trace(u"MAC matched")