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"