1 #ifndef PACKETPP_IGMP_LAYER 2 #define PACKETPP_IGMP_LAYER 92 uint8_t sourceAddresses[];
102 uint16_t getSourceAddressCount()
const;
110 IPv4Address getSourceAddressAtIndex(
int index)
const;
115 size_t getRecordLen()
const;
169 uint16_t calculateChecksum();
191 void setGroupAddress(
const IPv4Address& groupAddr);
213 static ProtocolType getIGMPVerFromData(uint8_t* data,
size_t dataLen,
bool& isQuery);
228 std::string toString()
const;
270 void computeCalculateFields();
311 void computeCalculateFields();
351 uint16_t getSourceAddressCount()
const;
358 IPv4Address getSourceAddressAtIndex(
int index)
const;
375 bool addSourceAddressAtIndex(
const IPv4Address& addr,
int index);
383 bool removeSourceAddressAtIndex(
int index);
390 bool removeAllSourceAddresses();
397 void computeCalculateFields();
402 size_t getHeaderLen()
const;
413 igmpv3_group_record* addGroupRecordAt(uint8_t recordType,
const IPv4Address& multicastAddress,
const std::vector<IPv4Address>& sourceAddresses,
int offset);
441 uint16_t getGroupRecordCount()
const;
482 igmpv3_group_record* addGroupRecordAtIndex(uint8_t recordType,
const IPv4Address& multicastAddress,
const std::vector<IPv4Address>& sourceAddresses,
int index);
490 bool removeGroupRecordAtIndex(
int index);
497 bool removeAllGroupRecords();
504 void computeCalculateFields();
514 #endif // PACKETPP_IGMP_LAYER The main namespace for the PcapPlusPlus lib.
OsiModelLayer
Definition: ProtocolType.h:253
Definition: IgmpLayer.h:279
Definition: IgmpLayer.h:161
const ProtocolType IGMPv2
Definition: ProtocolType.h:163
OsiModelLayer getOsiModelLayer() const
Definition: IgmpLayer.h:230
Definition: IgmpLayer.h:149
Definition: IgmpLayer.h:410
Definition: IgmpLayer.h:139
~IgmpV2Layer()
Definition: IgmpLayer.h:303
igmpv3_report_header * getReportHeader() const
Definition: IgmpLayer.h:436
Definition: IgmpLayer.h:151
Definition: IgmpLayer.h:143
Definition: IgmpLayer.h:131
IPv4Address getMulticastAddress() const
Definition: IgmpLayer.h:97
Definition: IgmpLayer.h:127
Definition: ProtocolType.h:260
uint8_t recordType
Definition: IgmpLayer.h:84
uint64_t ProtocolType
Definition: ProtocolType.h:18
Definition: IgmpLayer.h:125
Definition: IgmpLayer.h:137
void parseNextLayer()
Definition: IgmpLayer.h:221
IgmpV3ReportLayer()
Definition: IgmpLayer.h:429
IgmpV1Layer(IgmpType type, const IPv4Address &groupAddr=IPv4Address())
Definition: IgmpLayer.h:256
~IgmpV1Layer()
Definition: IgmpLayer.h:262
Definition: IgmpLayer.h:145
Definition: IgmpLayer.h:81
igmpv3_query_header * getIgmpV3QueryHeader() const
Definition: IgmpLayer.h:346
Definition: IpAddress.h:26
uint16_t numOfSources
Definition: IgmpLayer.h:88
Definition: IgmpLayer.h:319
Definition: IgmpLayer.h:135
Definition: IgmpLayer.h:133
const ProtocolType IGMPv1
Definition: ProtocolType.h:158
IgmpType
Definition: IgmpLayer.h:122
Definition: IgmpLayer.h:141
igmp_header * getIgmpHeader() const
Definition: IgmpLayer.h:180
IgmpV2Layer(IgmpType type, const IPv4Address &groupAddr=IPv4Address(), uint8_t maxResponseTime=0)
Definition: IgmpLayer.h:297
size_t getHeaderLen() const
Definition: IgmpLayer.h:226
uint8_t auxDataLen
Definition: IgmpLayer.h:86
IgmpV1Layer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IgmpLayer.h:247
Definition: IgmpLayer.h:129
Definition: IgmpLayer.h:238
const ProtocolType IGMPv3
Definition: ProtocolType.h:168
uint32_t multicastAddress
Definition: IgmpLayer.h:90
IgmpV2Layer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IgmpLayer.h:288
IPv4Address getGroupAddress() const
Definition: IgmpLayer.h:185
size_t getHeaderLen() const
Definition: IgmpLayer.h:509
Definition: IgmpLayer.h:147
IgmpV3ReportLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IgmpLayer.h:423