165 :
Layer(data, dataLen, prevLayer, packet, igmpVer)
170 uint16_t calculateChecksum();
443 const std::vector<IPv4Address>& sourceAddresses,
int offset);
505 const std::vector<IPv4Address>& sourceAddresses);
519 const std::vector<IPv4Address>& sourceAddresses,
int index);
Definition: IpAddress.h:32
Definition: IgmpLayer.h:162
IPv4Address getGroupAddress() const
Definition: IgmpLayer.h:191
void parseNextLayer()
Definition: IgmpLayer.h:229
void setGroupAddress(const IPv4Address &groupAddr)
igmp_header * getIgmpHeader() const
Definition: IgmpLayer.h:183
static ProtocolType getIGMPVerFromData(uint8_t *data, size_t dataLen, bool &isQuery)
void setType(IgmpType type)
size_t getHeaderLen() const
Definition: IgmpLayer.h:235
OsiModelLayer getOsiModelLayer() const
Definition: IgmpLayer.h:242
std::string toString() const
Definition: IgmpLayer.h:254
~IgmpV1Layer()
Definition: IgmpLayer.h:279
IgmpV1Layer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IgmpLayer.h:262
void computeCalculateFields()
IgmpV1Layer(IgmpType type, const IPv4Address &groupAddr=IPv4Address())
Definition: IgmpLayer.h:272
Definition: IgmpLayer.h:296
~IgmpV2Layer()
Definition: IgmpLayer.h:323
void computeCalculateFields()
IgmpV2Layer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IgmpLayer.h:304
IgmpV2Layer(IgmpType type, const IPv4Address &groupAddr=IPv4Address(), uint8_t maxResponseTime=0)
Definition: IgmpLayer.h:316
Definition: IgmpLayer.h:339
uint16_t getSourceAddressCount() const
bool addSourceAddressAtIndex(const IPv4Address &addr, int index)
bool addSourceAddress(const IPv4Address &addr)
void computeCalculateFields()
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)
bool removeAllSourceAddresses()
size_t getHeaderLen() const
igmpv3_query_header * getIgmpV3QueryHeader() const
Definition: IgmpLayer.h:367
Definition: IgmpLayer.h:440
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:452
void computeCalculateFields()
bool removeGroupRecordAtIndex(int index)
igmpv3_report_header * getReportHeader() const
Definition: IgmpLayer.h:467
uint16_t getGroupRecordCount() const
bool removeAllGroupRecords()
IgmpV3ReportLayer()
Definition: IgmpLayer.h:459
igmpv3_group_record * getFirstGroupRecord() const
igmpv3_group_record * getNextGroupRecord(igmpv3_group_record *groupRecord) const
size_t getHeaderLen() const
Definition: IgmpLayer.h:548
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:354
@ OsiModelNetworkLayer
Definition: ProtocolType.h:360
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