1 #ifndef PACKETPP_IGMP_LAYER 2 #define PACKETPP_IGMP_LAYER 169 uint16_t calculateChecksum();
409 igmpv3_group_record* addGroupRecordAt(uint8_t recordType,
const IPv4Address& multicastAddress,
const std::vector<IPv4Address>& sourceAddresses,
int offset);
509 #endif // PACKETPP_IGMP_LAYER void setType(IgmpType type)
bool addSourceAddressAtIndex(const IPv4Address &addr, int index)
uint16_t reserved2
Definition: IgmpLayer.h:70
void computeCalculateFields()
uint8_t sourceAddresses[]
Definition: IgmpLayer.h:92
uint8_t auxDataLen
Definition: IgmpLayer.h:86
uint8_t type
Definition: IgmpLayer.h:64
static ProtocolType getIGMPVerFromData(uint8_t *data, size_t dataLen, bool &isQuery)
IgmpV1Layer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IgmpLayer.h:81
Definition: IgmpLayer.h:21
Definition: IgmpLayer.h:147
uint8_t maxResponseTime
Definition: IgmpLayer.h:43
Definition: IgmpLayer.h:129
uint8_t s_qrv
Definition: IgmpLayer.h:49
bool removeGroupRecordAtIndex(int index)
uint16_t numOfSources
Definition: IgmpLayer.h:88
Definition: IgmpLayer.h:127
Definition: IgmpLayer.h:125
uint8_t recordType
Definition: IgmpLayer.h:84
Definition: IgmpLayer.h:406
uint8_t reserved1
Definition: IgmpLayer.h:66
Definition: IgmpLayer.h:238
uint16_t checksum
Definition: IgmpLayer.h:45
Definition: IgmpLayer.h:61
uint8_t type
Definition: IgmpLayer.h:24
The main namespace for the PcapPlusPlus lib.
bool removeAllSourceAddresses()
uint8_t maxResponseTime
Definition: IgmpLayer.h:26
Definition: IpAddress.h:113
OsiModelLayer getOsiModelLayer()
Definition: IgmpLayer.h:230
bool addSourceAddress(const IPv4Address &addr)
igmpv3_query_header * getIgmpV3QueryHeader()
Definition: IgmpLayer.h:342
Definition: IgmpLayer.h:315
void setGroupAddress(const IPv4Address &groupAddr)
Definition: IgmpLayer.h:161
Definition: IgmpLayer.h:149
uint16_t numOfGroupRecords
Definition: IgmpLayer.h:72
uint16_t checksum
Definition: IgmpLayer.h:68
OsiModelLayer
Definition: ProtocolType.h:208
~IgmpV1Layer()
Definition: IgmpLayer.h:260
IPv4Address getSourceAddressAtIndex(int index)
igmpv3_group_record * addGroupRecordAtIndex(uint8_t recordType, const IPv4Address &multicastAddress, const std::vector< IPv4Address > &sourceAddresses, int index)
uint16_t numOfSources
Definition: IgmpLayer.h:53
uint8_t type
Definition: IgmpLayer.h:41
igmpv3_group_record * addGroupRecord(uint8_t recordType, const IPv4Address &multicastAddress, const std::vector< IPv4Address > &sourceAddresses)
static IPv4Address Zero
Definition: IpAddress.h:203
uint16_t getSourceAdressCount()
Definition: IgmpLayer.h:137
size_t getHeaderLen()
Definition: IgmpLayer.h:226
uint32_t multicastAddress
Definition: IgmpLayer.h:90
igmpv3_report_header * getReportHeader()
Definition: IgmpLayer.h:431
uint32_t groupAddress
Definition: IgmpLayer.h:30
IPv4Address getSoruceAddressAtIndex(int index)
IgmpV3QueryLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
IgmpType
Definition: IgmpLayer.h:122
uint8_t qqic
Definition: IgmpLayer.h:51
Definition: IgmpLayer.h:145
void computeCalculateFields()
ProtocolType
Definition: ProtocolType.h:16
Definition: ProtocolType.h:215
Definition: IgmpLayer.h:143
void computeCalculateFields()
IPv4Address getMulticastAddress()
void parseNextLayer()
Definition: IgmpLayer.h:221
uint16_t getSourceAddressCount()
uint16_t checksum
Definition: IgmpLayer.h:28
igmp_header * getIgmpHeader()
Definition: IgmpLayer.h:180
bool removeSourceAddressAtIndex(int index)
igmpv3_group_record * getFirstGroupRecord()
Definition: IgmpLayer.h:141
void computeCalculateFields()
Definition: IgmpLayer.h:38
Definition: IgmpLayer.h:131
IgmpV2Layer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IgmpLayer.h:151
~IgmpV2Layer()
Definition: IgmpLayer.h:299
Definition: IgmpLayer.h:139
IPv4Address getGroupAddress()
Definition: IgmpLayer.h:185
Definition: IgmpLayer.h:133
uint16_t getGroupRecordCount()
Definition: IgmpLayer.h:135
Definition: IgmpLayer.h:277
igmpv3_group_record * getNextGroupRecord(igmpv3_group_record *groupRecord)
uint32_t groupAddress
Definition: IgmpLayer.h:47
bool removeAllGroupRecords()