Home | History | Annotate | Download | only in contrib
      1 ############
      2 % IGMP tests
      3 ############
      4 
      5 + Basic IGMP tests
      6 
      7 = Build IGMP - Basic
      8 
      9 a=Ether(src="00:01:02:03:04:05")
     10 b=IP(src="1.2.3.4")
     11 c=IGMP(gaddr="0.0.0.0")
     12 x = a/b/c
     13 x[IGMP].igmpize()
     14 assert x.mrcode == 20
     15 assert x[IP].dst == "224.0.0.1"
     16 
     17 = Build IGMP - Custom membership
     18 
     19 a=Ether(src="00:01:02:03:04:05")
     20 b=IP(src="1.2.3.4")
     21 c=IGMP(gaddr="224.0.1.2")
     22 x = a/b/c
     23 x[IGMP].igmpize()
     24 assert x.mrcode == 20
     25 assert x[IP].dst == "224.0.1.2"
     26 
     27 = Build IGMP - LG
     28 
     29 a=Ether(src="00:01:02:03:04:05")
     30 b=IP(src="1.2.3.4")
     31 c=IGMP(type=0x17, gaddr="224.2.3.4")
     32 x = a/b/c
     33 x[IGMP].igmpize()
     34 assert x.dst == "01:00:5e:00:00:02"
     35 assert x.mrcode == 0
     36 assert x[IP].dst == "224.0.0.2"
     37 
     38 = Change IGMP params
     39 
     40 x = Ether(src="00:01:02:03:04:05")/IP()/IGMP()
     41 x[IGMP].igmpize()
     42 assert x.mrcode == 20
     43 assert x[IP].dst == "224.0.0.1"
     44 
     45 x = Ether(src="00:01:02:03:04:05")/IP()/IGMP(gaddr="224.2.3.4", type=0x12)
     46 x.mrcode = 1
     47 x[IGMP].igmpize()
     48 x = Ether(raw(x))
     49 assert x.mrcode == 0
     50 
     51 x.gaddr = "224.3.2.4"
     52 x[IGMP].igmpize()
     53 assert x.dst == "01:00:5e:03:02:04"
     54 
     55 = Test mysummary
     56 
     57 x = Ether(src="00:01:02:03:04:05")/IP(src="192.168.0.1")/IGMP(gaddr="224.0.0.2", type=0x17)
     58 x[IGMP].igmpize()
     59 assert x[IGMP].mysummary() == "IGMP: 192.168.0.1 > 224.0.0.2 Leave Group 224.0.0.2"
     60 
     61 assert IGMP().mysummary() == "IGMP Group Membership Query 0.0.0.0"
     62 
     63 = IGMP - misc
     64 ~ netaccess
     65 
     66 x = Ether(src="00:01:02:03:04:05")/IP(dst="192.168.0.1")/IGMP(gaddr="www.google.fr", type=0x11)
     67 x = Ether(raw(x))
     68 assert not x[IGMP].igmpize()
     69 assert x[IP].dst == "192.168.0.1"
     70 
     71 x = Ether(src="00:01:02:03:04:05")/IP(dst="192.168.0.1")/IGMP(gaddr="124.0.2.1", type=0x00)
     72 assert not x[IGMP].igmpize()
     73 assert x[IP].dst == "192.168.0.1"