165 :
Layer(data, dataLen, prevLayer, packet, igmpVer)
170 uint16_t calculateChecksum();
440 const std::vector<IPv4Address>& sourceAddresses,
int offset);
502 const std::vector<IPv4Address>& sourceAddresses);
516 const std::vector<IPv4Address>& sourceAddresses,
int index);
Definition: IpAddress.h:32
Definition: IgmpLayer.h:162
IPv4Address getGroupAddress() const
Definition: IgmpLayer.h:190
std::string toString() const override
void setGroupAddress(const IPv4Address &groupAddr)
igmp_header * getIgmpHeader() const
Definition: IgmpLayer.h:182
static ProtocolType getIGMPVerFromData(uint8_t *data, size_t dataLen, bool &isQuery)
size_t getHeaderLen() const override
Definition: IgmpLayer.h:234
void parseNextLayer() override
Definition: IgmpLayer.h:228
void setType(IgmpType type)
OsiModelLayer getOsiModelLayer() const override
Definition: IgmpLayer.h:241
Definition: IgmpLayer.h:253
void computeCalculateFields() override
IgmpV1Layer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IgmpLayer.h:261
~IgmpV1Layer() override=default
IgmpV1Layer(IgmpType type, const IPv4Address &groupAddr=IPv4Address())
Definition: IgmpLayer.h:271
Definition: IgmpLayer.h:294
void computeCalculateFields() override
~IgmpV2Layer() override=default
IgmpV2Layer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IgmpLayer.h:302
IgmpV2Layer(IgmpType type, const IPv4Address &groupAddr=IPv4Address(), uint8_t maxResponseTime=0)
Definition: IgmpLayer.h:314
Definition: IgmpLayer.h:336
uint16_t getSourceAddressCount() const
bool addSourceAddressAtIndex(const IPv4Address &addr, int index)
bool addSourceAddress(const IPv4Address &addr)
size_t getHeaderLen() const override
IgmpV3QueryLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
bool removeSourceAddressAtIndex(int index)
IPv4Address getSourceAddressAtIndex(int index) const
IgmpV3QueryLayer(const IPv4Address &multicastAddr=IPv4Address(), uint8_t maxResponseTime=0, uint8_t s_qrv=0)
void computeCalculateFields() override
bool removeAllSourceAddresses()
igmpv3_query_header * getIgmpV3QueryHeader() const
Definition: IgmpLayer.h:364
Definition: IgmpLayer.h:437
igmpv3_group_record * addGroupRecord(uint8_t recordType, const IPv4Address &multicastAddress, const std::vector< IPv4Address > &sourceAddresses)
igmpv3_group_record * addGroupRecordAtIndex(uint8_t recordType, const IPv4Address &multicastAddress, const std::vector< IPv4Address > &sourceAddresses, int index)
IgmpV3ReportLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IgmpLayer.h:449
size_t getHeaderLen() const override
Definition: IgmpLayer.h:545
bool removeGroupRecordAtIndex(int index)
igmpv3_report_header * getReportHeader() const
Definition: IgmpLayer.h:464
uint16_t getGroupRecordCount() const
bool removeAllGroupRecords()
void computeCalculateFields() override
IgmpV3ReportLayer()
Definition: IgmpLayer.h:456
igmpv3_group_record * getFirstGroupRecord() const
igmpv3_group_record * getNextGroupRecord(igmpv3_group_record *groupRecord) const
The main namespace for the PcapPlusPlus lib.
uint8_t ProtocolType
Definition: ProtocolType.h:17
const ProtocolType IGMPv2
Definition: ProtocolType.h:163
const ProtocolType IGMPv3
Definition: ProtocolType.h:168
OsiModelLayer
Definition: ProtocolType.h:364
@ OsiModelNetworkLayer
Definition: ProtocolType.h:370
const ProtocolType IGMPv1
Definition: ProtocolType.h:158
IgmpType
Definition: IgmpLayer.h:124
@ IgmpType_MulticastRouterTermination
Definition: IgmpLayer.h:152
@ IgmpType_Unknown
Definition: IgmpLayer.h:126
@ IgmpType_MembershipReportV2
Definition: IgmpLayer.h:138
@ IgmpType_DVMRP
Definition: IgmpLayer.h:132
@ IgmpType_MembershipReportV3
Definition: IgmpLayer.h:146
@ IgmpType_MulticastTraceroute
Definition: IgmpLayer.h:144
@ IgmpType_P1Mv1
Definition: IgmpLayer.h:134
@ IgmpType_LeaveGroup
Definition: IgmpLayer.h:140
@ IgmpType_MembershipReportV1
Definition: IgmpLayer.h:130
@ IgmpType_MulticastRouterAdvertisement
Definition: IgmpLayer.h:148
@ IgmpType_MulticastRouterSolicitation
Definition: IgmpLayer.h:150
@ IgmpType_CiscoTrace
Definition: IgmpLayer.h:136
@ IgmpType_MembershipQuery
Definition: IgmpLayer.h:128
@ IgmpType_MulticastTracerouteResponse
Definition: IgmpLayer.h:142
Definition: IgmpLayer.h:80
uint8_t sourceAddresses[]
Definition: IgmpLayer.h:91
size_t getRecordLen() const
uint32_t multicastAddress
Definition: IgmpLayer.h:89
uint8_t auxDataLen
Definition: IgmpLayer.h:85
uint8_t recordType
Definition: IgmpLayer.h:82
IPv4Address getMulticastAddress() const
Definition: IgmpLayer.h:96
uint16_t numOfSources
Definition: IgmpLayer.h:87
IPv4Address getSourceAddressAtIndex(int index) const
uint16_t getSourceAddressCount() const