IP4 Router Alert option handling for IGMP
[vpp.git] / test / test_igmp.py
index 62b1c96..22b6d2f 100644 (file)
@@ -13,17 +13,6 @@ from scapy.contrib.igmpv3 import *
 from scapy.contrib.igmp import *
 
 
-def checkIGMPv3():
-    try:
-        tmp = IGMPv3()
-        tmp = IGMPv3mr()
-        tmp = IGMPv3gr()
-        tmp = IGMPv3mq()
-    except NameError:
-        return False
-    return True
-
-
 class TestIgmp(VppTestCase):
     """ IGMP Test Case """
 
@@ -52,7 +41,6 @@ class TestIgmp(VppTestCase):
         self.pg_enable_capture(self.pg_interfaces)
         self.pg_start()
 
-    @unittest.skipUnless(checkIGMPv3(), "missing scapy igmpv3 implementation")
     def test_igmp_parse_report(self):
         """ IGMP parse Membership Report """
 
@@ -63,7 +51,11 @@ class TestIgmp(VppTestCase):
 
         # hos sends join IGMP 'join'
         p_join = (Ether(dst=self.pg0.local_mac, src=self.pg0.remote_mac) /
-                  IP(src=self.pg0.remote_ip4, dst='224.0.0.22', tos=0xc0) /
+                  IP(src=self.pg0.remote_ip4, dst='224.0.0.22',
+                     tos=0xc0, ttl=1,
+                     options=IPOption(copy_flag=1, optclass=0,
+                                      option="router_alert",
+                                      length=2, value=0)) /
                   IGMPv3() /
                   IGMPv3mr(numgrp=1) /
                   IGMPv3gr(rtype=3, maddr="224.1.1.1", srcaddrs=["10.1.1.1"]))
@@ -148,7 +140,6 @@ class TestIgmp(VppTestCase):
         self.assertEqual(igmp.type, 0x11)
         self.assertEqual(igmp.gaddr, "0.0.0.0")
 
-    @unittest.skipUnless(checkIGMPv3(), "missing scapy igmpv3 implementation")
     def test_igmp_send_query(self):
         """ IGMP send General Query """
 
@@ -178,7 +169,7 @@ class TestIgmp(VppTestCase):
         self.sleep(10)
         self.assertFalse(self.vapi.igmp_dump())
 
-    @unittest.skipUnless(checkIGMPv3(), "missing scapy igmpv3 implementation")
+    @unittest.skipUnless(running_extended_tests(), "part of extended tests")
     def test_igmp_src_exp(self):
         """ IGMP per source timer """
 
@@ -238,7 +229,6 @@ class TestIgmp(VppTestCase):
         self.logger.error(self.vapi.cli("sh igmp config"))
         self.assertFalse(self.vapi.igmp_dump())
 
-    @unittest.skipUnless(checkIGMPv3(), "missing scapy igmpv3 implementation")
     def test_igmp_query_resp(self):
         """ IGMP General Query response """
 
@@ -281,7 +271,6 @@ class TestIgmp(VppTestCase):
         self.assertEqual(len(capture[0][IGMPv3gr].srcaddrs), 1)
         self.assertEqual(capture[0][IGMPv3gr].srcaddrs[0], "10.1.1.1")
 
-    @unittest.skipUnless(checkIGMPv3(), "missing scapy igmpv3 implementation")
     def test_igmp_listen(self):
         """ IGMP listen (S,G)s """