42             return 8 * (getBaseHeader()->headerLen + 1);
 
   61         struct ipv6_ext_base_header
 
   68         IPv6Extension(IDataContainer* dataContainer, 
size_t offset)
 
   69             : m_NextHeader(nullptr), m_ExtType(
IPv6ExtensionUnknown), m_DataContainer(dataContainer), m_Offset(offset),
 
   80         IPv6Extension& operator=(
const IPv6Extension& other);
 
   82         uint8_t* getDataPtr() 
const;
 
   84         void initShadowPtr(
size_t size);
 
   86         ipv6_ext_base_header* getBaseHeader()
 const 
   88             return (ipv6_ext_base_header*)getDataPtr();
 
   91         void setNextHeader(IPv6Extension* nextHeader)
 
   93             m_NextHeader = nextHeader;
 
   96         IPv6Extension* m_NextHeader;
 
  100         IDataContainer* m_DataContainer;
 
  102         uint8_t* m_ShadowData;
 
  176             static const uint8_t Pad0OptionType = 0;
 
  177             static const uint8_t PadNOptionType = 1;
 
  192             static bool canAssign(
const uint8_t* recordRawData, 
size_t tlvDataLen)
 
  194                 auto data = (TLVRawData*)recordRawData;
 
  198                 if (tlvDataLen < 
sizeof(TLVRawData::recordType))
 
  201                 if (data->recordType == Pad0OptionType)
 
  211                 if (m_Data == 
nullptr)
 
  214                 if (m_Data->recordType == Pad0OptionType)
 
  215                     return sizeof(uint8_t);
 
  217                 return (
size_t)(m_Data->recordLen + 
sizeof(uint16_t));
 
  222                 if (m_Data == 
nullptr || m_Data->recordType == Pad0OptionType)
 
  225                 return (
size_t)m_Data->recordLen;
 
  269                 TLVRecordBuilder::operator=(other);
 
  384         IPv6RoutingHeader(uint8_t routingType, uint8_t segmentsLeft, 
const uint8_t* additionalRoutingData,
 
  385                           size_t additionalRoutingDataLen);
 
  458                                  const uint8_t* integrityCheckValue, 
size_t integrityCheckValueLen);
 
  482             return 4 * (getBaseHeader()->headerLen + 2);
 
Definition: IpAddress.h:156
Definition: IPv6Extensions.h:18
IPv6ExtensionType
An enum representing all supported IPv6 extension types.
Definition: IPv6Extensions.h:24
@ IPv6HopByHop
Hop-By-Hop extension type.
Definition: IPv6Extensions.h:26
@ IPv6Routing
Routing extension type.
Definition: IPv6Extensions.h:28
@ IPv6Fragmentation
IPv6 fragmentation extension type.
Definition: IPv6Extensions.h:30
@ IPv6ExtensionUnknown
Unknown or unsupported extension type.
Definition: IPv6Extensions.h:36
@ IPv6Destination
Destination extension type.
Definition: IPv6Extensions.h:34
@ IPv6AuthenticationHdr
Authentication Header extension type.
Definition: IPv6Extensions.h:32
virtual ~IPv6Extension()
A destructor for this class.
IPv6Extension * getNextHeader() const
Definition: IPv6Extensions.h:55
IPv6ExtensionType getExtensionType() const
Definition: IPv6Extensions.h:46
virtual size_t getExtensionLen() const
Definition: IPv6Extensions.h:40
Definition: IPv6Layer.h:50
Definition: TLVData.h:357
static bool canAssign(const uint8_t *recordRawData, size_t tlvDataLen)
Definition: TLVData.h:66
Definition: TLVData.h:204
The main namespace for the PcapPlusPlus lib.