scapy.contrib.igmpv3

class scapy.contrib.igmpv3.IGMPv3

Bases: scapy.contrib.igmp.IGMP

IGMP Message Class for v3.

This class is derived from class Packet. The fields defined below are a direct interpretation of the v3 Membership Query Message. Fields ‘type’ through ‘qqic’ are directly assignable. For ‘numsrc’, do not assign a value. Instead add to the ‘srcaddrs’ list to auto-set ‘numsrc’. To assign values to ‘srcaddrs’, use the following methods:

c = IGMPv3()
c.srcaddrs = ['1.2.3.4', '5.6.7.8']
c.srcaddrs += ['192.168.10.24']

At this point, ‘c.numsrc’ is three (3)

‘chksum’ is automagically calculated before the packet is sent.

‘mrcode’ is also the Advertisement Interval field

aliastypes
classmethod dispatch_hook(_pkt=None, *args, **kargs)
encode_maxrespcode()

Encode and replace the mrcode value to its IGMPv3 encoded time value if needed, # noqa: E501 as specified in rfc3376#section-4.1.1.

If value < 128, return the value specified. If >= 128, encode as a floating # noqa: E501 point value. Value can be 0 - 31744.

fields_desc
IGMPv3 fields

type

ByteEnumField

17

mrcode

ByteField

20

chksum

XShortField

None

igmpv3types = {17: 'Membership Query', 34: 'Version 3 Membership Report', 48: 'Multicast Router Advertisement', 49: 'Multicast Router Solicitation', 50: 'Multicast Router Termination'}
mysummary()

Display a summary of the IGMPv3 object.

payload_guess

Possible sublayers: IGMPv3mq, IGMPv3mr, IGMPv3mra

class scapy.contrib.igmpv3.IGMPv3gr

Bases: scapy.packet.Packet

IGMP Group Record for IGMPv3 Membership Report

This class is derived from class Packet and should be added in the records of an instantiation of class IGMPv3mr.

aliastypes
default_payload_class(payload)
fields_desc
IGMPv3gr fields

rtype

ByteEnumField

1

auxdlen

ByteField

0

numsrc

FieldLenField

None

maddr

IPField

'0.0.0.0'

srcaddrs

FieldListField

[]

igmpv3grtypes = {1: 'Mode Is Include', 2: 'Mode Is Exclude', 3: 'Change To Include Mode', 4: 'Change To Exclude Mode', 5: 'Allow New Sources', 6: 'Block Old Sources'}
mysummary()

Display a summary of the IGMPv3 group record.

class scapy.contrib.igmpv3.IGMPv3mq

Bases: scapy.packet.Packet

IGMPv3 Membership Query. Payload of IGMPv3 when type=0x11

aliastypes
fields_desc
IGMPv3mq fields

gaddr

IPField

'0.0.0.0'

resv

BitField (4 bits)

0

s

BitField (1 bit)

0

qrv

BitField (3 bits)

0

qqic

ByteField

0

numsrc

FieldLenField

None

srcaddrs

FieldListField

[]

class scapy.contrib.igmpv3.IGMPv3mr

Bases: scapy.packet.Packet

IGMP Membership Report extension for IGMPv3. Payload of IGMPv3 when type=0x22

aliastypes
fields_desc
IGMPv3mr fields

res2

XShortField

0

numgrp

FieldLenField

None

records

PacketListField

[]

class scapy.contrib.igmpv3.IGMPv3mra

Bases: scapy.packet.Packet

IGMP Multicast Router Advertisement extension for IGMPv3. Payload of IGMPv3 when type=0x30

aliastypes
fields_desc
IGMPv3mra fields

qryIntvl

ShortField

0

robust

ShortField

0