|
libtins
4.5
|
Class representing an IEEE 802.3 PDU. More...
#include <dot3.h>
Public Types | |
| typedef HWAddress< 6 > | address_type |
| The address type. | |
Public Types inherited from Tins::PDU | |
| enum | endian_type { BE , LE } |
| enum | PDUType { RAW , ETHERNET_II , IEEE802_3 , DOT3 = IEEE802_3 , RADIOTAP , DOT11 , DOT11_ACK , DOT11_ASSOC_REQ , DOT11_ASSOC_RESP , DOT11_AUTH , DOT11_BEACON , DOT11_BLOCK_ACK , DOT11_BLOCK_ACK_REQ , DOT11_CF_END , DOT11_DATA , DOT11_CONTROL , DOT11_DEAUTH , DOT11_DIASSOC , DOT11_END_CF_ACK , DOT11_MANAGEMENT , DOT11_PROBE_REQ , DOT11_PROBE_RESP , DOT11_PS_POLL , DOT11_REASSOC_REQ , DOT11_REASSOC_RESP , DOT11_RTS , DOT11_QOS_DATA , LLC , SNAP , IP , ARP , TCP , UDP , ICMP , BOOTP , DHCP , EAPOL , RC4EAPOL , RSNEAPOL , DNS , LOOPBACK , IPv6 , ICMPv6 , SLL , DHCPv6 , DOT1AD , DOT1Q , PPPOE , STP , PPI , IPSEC_AH , IPSEC_ESP , PKTAP , MPLS , DOT11_CONTROL_TA , VXLAN , UNKNOWN = 999 , USER_DEFINED_PDU = 1000 } |
| Enum which identifies each type of PDU. More... | |
| typedef byte_array | serialization_type |
Public Member Functions | |
| Dot3 (const address_type &dst_hw_addr=address_type(), const address_type &src_hw_addr=address_type()) | |
| Constructor for creating an Dot3 PDU. More... | |
| Dot3 (const uint8_t *buffer, uint32_t total_sz) | |
| Constructs a Dot3 object from a buffer and adds a LLC object with the remaining data as the inner PDU. More... | |
| address_type | dst_addr () const |
| Getter for the destination hardware address. More... | |
| address_type | src_addr () const |
| Getter for the source hardware address. More... | |
| uint16_t | length () const |
| Getter for the length field. More... | |
| void | dst_addr (const address_type &address) |
| Setter for the destination hardware address. More... | |
| void | src_addr (const address_type &address) |
| Setter for the source hardware address. More... | |
| void | length (uint16_t value) |
| Setter for the length field. More... | |
| uint32_t | header_size () const |
| Returns the Dot3 frame's header length. More... | |
| void | send (PacketSender &sender, const NetworkInterface &iface) |
| bool | matches_response (const uint8_t *ptr, uint32_t total_sz) const |
| Check whether ptr points to a valid response for this PDU. More... | |
| PDU * | recv_response (PacketSender &sender, const NetworkInterface &iface) |
| PDUType | pdu_type () const |
| Getter for the PDU's type. More... | |
| Dot3 * | clone () const |
Public Member Functions inherited from Tins::PDU | |
| PDU () | |
| Default constructor. | |
| PDU (PDU &&rhs) TINS_NOEXCEPT | |
| Move constructor. More... | |
| PDU & | operator= (PDU &&rhs) TINS_NOEXCEPT |
| Move assignment operator. More... | |
| virtual | ~PDU () |
| PDU destructor. More... | |
| virtual uint32_t | trailer_size () const |
| Trailer's size. More... | |
| uint32_t | size () const |
| The whole chain of PDU's size, including this one. More... | |
| virtual uint32_t | advertised_size () const |
| The whole chain of PDU's advertised size, including this one. More... | |
| PDU * | inner_pdu () const |
| Getter for the inner PDU. More... | |
| PDU * | parent_pdu () const |
| PDU * | release_inner_pdu () |
| Releases the inner PDU. More... | |
| void | inner_pdu (PDU *next_pdu) |
| Sets the child PDU. More... | |
| void | inner_pdu (const PDU &next_pdu) |
| Sets the child PDU. More... | |
| serialization_type | serialize () |
| Serializes the whole chain of PDU's, including this one. More... | |
| template<typename T > | |
| T * | find_pdu (PDUType type=T::pdu_flag) |
| Finds and returns the first PDU that matches the given flag. More... | |
| template<typename T > | |
| const T * | find_pdu (PDUType type=T::pdu_flag) const |
| Finds and returns the first PDU that matches the given flag. More... | |
| template<typename T > | |
| T & | rfind_pdu (PDUType type=T::pdu_flag) |
| Finds and returns the first PDU that matches the given flag. More... | |
| template<typename T > | |
| const T & | rfind_pdu (PDUType type=T::pdu_flag) const |
| Finds and returns the first PDU that matches the given flag. More... | |
| virtual bool | matches_flag (PDUType flag) const |
| Check whether this PDU matches the specified flag. More... | |
Static Public Member Functions | |
| static metadata | extract_metadata (const uint8_t *buffer, uint32_t total_sz) |
| Extracts metadata for this protocol based on the buffer provided. More... | |
Static Public Attributes | |
| static const PDU::PDUType | pdu_flag = PDU::IEEE802_3 |
| This PDU's flag. | |
| static const address_type | BROADCAST |
| Represents the Dot3 broadcast address. | |
Static Public Attributes inherited from Tins::PDU | |
| static const endian_type | endianness = BE |
Additional Inherited Members | |
Protected Member Functions inherited from Tins::PDU | |
| PDU (const PDU &other) | |
| Copy constructor. | |
| PDU & | operator= (const PDU &other) |
| Copy assignment operator. | |
| void | copy_inner_pdu (const PDU &pdu) |
| Copy other PDU's inner PDU(if any). More... | |
| virtual void | prepare_for_serialize () |
| Prepares this PDU for serialization. More... | |
| void | serialize (uint8_t *buffer, uint32_t total_sz) |
| Serializes this PDU and propagates this action to child PDUs. More... | |
Class representing an IEEE 802.3 PDU.
| Tins::Dot3::Dot3 | ( | const address_type & | dst_hw_addr = address_type(), |
| const address_type & | src_hw_addr = address_type() |
||
| ) |
| Tins::Dot3::Dot3 | ( | const uint8_t * | buffer, |
| uint32_t | total_sz | ||
| ) |
|
inlinevirtual |
Implements Tins::PDU.
|
inline |
Getter for the destination hardware address.
| void Tins::Dot3::dst_addr | ( | const address_type & | address | ) |
Setter for the destination hardware address.
| address | The new destination hardware address. |
|
static |
Extracts metadata for this protocol based on the buffer provided.
| buffer | Pointer to a buffer |
| total_sz | Size of the buffer pointed by buffer |
|
virtual |
Returns the Dot3 frame's header length.
Implements Tins::PDU.
|
inline |
Getter for the length field.
| void Tins::Dot3::length | ( | uint16_t | value | ) |
Setter for the length field.
| value | The new value for the length field |
|
virtual |
Check whether ptr points to a valid response for this PDU.
| ptr | The pointer to the buffer. |
| total_sz | The size of the buffer. |
Reimplemented from Tins::PDU.
|
inlinevirtual |
|
virtual |
Reimplemented from Tins::PDU.
|
virtual |
Reimplemented from Tins::PDU.
|
inline |
Getter for the source hardware address.
| void Tins::Dot3::src_addr | ( | const address_type & | address | ) |
Setter for the source hardware address.
| address | The new source hardware address. |