PcapPlusPlus
22.11
|
#include <IPv6Layer.h>
Public Member Functions | |
IPv6Layer (uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet) | |
IPv6Layer () | |
IPv6Layer (const IPv6Address &srcIP, const IPv6Address &dstIP) | |
IPv6Layer (const IPv6Layer &other) | |
~IPv6Layer () | |
IPv6Layer & | operator= (const IPv6Layer &other) |
ip6_hdr * | getIPv6Header () const |
IPAddress | getSrcIPAddress () const |
IPv6Address | getSrcIPv6Address () const |
void | setSrcIPv6Address (const IPv6Address &ipAddr) |
void | setDstIPv6Address (const IPv6Address &ipAddr) |
IPAddress | getDstIPAddress () const |
IPv6Address | getDstIPv6Address () const |
size_t | getExtensionCount () const |
template<class TIPv6Extension > | |
TIPv6Extension * | getExtensionOfType () const |
template<class TIPv6Extension > | |
TIPv6Extension * | addExtension (const TIPv6Extension &extensionHeader) |
void | removeAllExtensions () |
bool | isFragment () const |
void | parseNextLayer () |
size_t | getHeaderLen () const |
void | computeCalculateFields () |
std::string | toString () const |
OsiModelLayer | getOsiModelLayer () const |
Public Member Functions inherited from pcpp::Layer | |
virtual | ~Layer () |
Layer * | getNextLayer () const |
Layer * | getPrevLayer () const |
ProtocolType | getProtocol () const |
uint8_t * | getData () const |
size_t | getDataLen () const |
uint8_t * | getLayerPayload () const |
size_t | getLayerPayloadSize () const |
bool | isAllocatedToPacket () const |
void | copyData (uint8_t *toArr) const |
uint8_t * | getDataPtr (size_t offset=0) const |
Public Member Functions inherited from pcpp::IPLayer | |
virtual | ~IPLayer () |
Static Public Member Functions | |
static bool | isDataValid (const uint8_t *data, size_t dataLen) |
Represents an IPv6 protocol layer
pcpp::IPv6Layer::IPv6Layer | ( | ) |
A constructor that allocates a new IPv6 header with empty fields
pcpp::IPv6Layer::IPv6Layer | ( | const IPv6Address & | srcIP, |
const IPv6Address & | dstIP | ||
) |
A constructor that allocates a new IPv6 header with source and destination IPv6 addresses
[in] | srcIP | Source IPv6 address |
[in] | dstIP | Destination IPv6 address |
pcpp::IPv6Layer::IPv6Layer | ( | const IPv6Layer & | other | ) |
A copy constructor that copies the entire header from the other IPv6Layer (including IPv6 extensions)
pcpp::IPv6Layer::~IPv6Layer | ( | ) |
A destructor for this layer
TIPv6Extension * pcpp::IPv6Layer::addExtension | ( | const TIPv6Extension & | extensionHeader | ) |
Add a new extension of type TIPv6Extension to the layer. This is a templated method and TIPv6Extension has to be one of the supported IPv6 extensions, meaning a class that inherits IPv6Extension. If the extension is added successfully a pointer to the newly added extension object is returned, otherwise NULL is returned
[in] | extensionHeader | The extension object to add. Notice the object passed here is read-only, meaning its data is copied but the object itself isn't modified |
|
virtual |
Calculate the following fields:
Implements pcpp::Layer.
|
inlinevirtual |
Get the destination IP address in the form of IPAddress. This method is very similar to getDstIPv6Address(), but adds a level of abstraction because IPAddress can be used for both IPv4 and IPv6 addresses
Implements pcpp::IPLayer.
|
inline |
Get the destination IP address in the form of IPv6Address
size_t pcpp::IPv6Layer::getExtensionCount | ( | ) | const |
TIPv6Extension * pcpp::IPv6Layer::getExtensionOfType | ( | ) | const |
A templated getter for an IPv6 extension of a type TIPv6Extension. TIPv6Extension has to be one of the supported IPv6 extensions, meaning a class that inherits IPv6Extension. If the requested extension type isn't found NULL is returned
|
inlinevirtual |
Implements pcpp::Layer.
|
inline |
Get a pointer to the IPv6 header. Notice this points directly to the data, so every change will change the actual packet data
|
inlinevirtual |
Implements pcpp::Layer.
|
inlinevirtual |
Get the source IP address in the form of IPAddress. This method is very similar to getSrcIPv6Address(), but adds a level of abstraction because IPAddress can be used for both IPv4 and IPv6 addresses
Implements pcpp::IPLayer.
|
inline |
Get the source IP address in the form of IPv6Address
|
inlinestatic |
The static method makes validation of input data
[in] | data | The pointer to the beginning of byte stream of IP packet |
[in] | dataLen | The length of byte stream |
bool pcpp::IPv6Layer::isFragment | ( | ) | const |
An assignment operator that first delete all data from current layer and then copy the entire header from the other IPv6Layer (including IPv6 extensions)
|
virtual |
Currently identifies the following next layers:
Otherwise sets PayloadLayer
Implements pcpp::Layer.
void pcpp::IPv6Layer::removeAllExtensions | ( | ) |
Remove all IPv6 extensions in this layer
|
inline |
Set the dest IP address
[in] | ipAddr | The IP address to set |
|
inline |
Set the source IP address
[in] | ipAddr | The IP address to set |
|
virtual |
Implements pcpp::Layer.