|
enum | OpCodes { BOOTREQUEST = 1
, BOOTREPLY = 2
} |
| Enum which contains the different opcodes BootP messages.
|
|
typedef IPv4Address | ipaddress_type |
|
typedef HWAddress< 16 > | chaddr_type |
|
typedef std::vector< uint8_t > | vend_type |
|
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 |
|
|
| BootP () |
| Creates an instance of BootP.
|
|
| BootP (const uint8_t *buffer, uint32_t total_sz, uint32_t vend_field_size=64) |
| Constructs a BootP object from a buffer .
|
|
uint8_t | opcode () const |
| Getter for the opcode field.
|
|
uint8_t | htype () const |
| Getter for the htype field.
|
|
uint8_t | hlen () const |
| Getter for the hlen field.
|
|
uint8_t | hops () const |
| Getter for the hops field.
|
|
uint32_t | xid () const |
| Getter for the xid field.
|
|
uint16_t | secs () const |
| Getter for the secs field.
|
|
uint16_t | padding () const |
| Getter for the padding field.
|
|
ipaddress_type | ciaddr () const |
| Getter for the ciaddr field.
|
|
ipaddress_type | yiaddr () const |
| Getter for the yiaddr field.
|
|
ipaddress_type | siaddr () const |
| Getter for the siaddr field.
|
|
ipaddress_type | giaddr () const |
| Getter for the giaddr field.
|
|
chaddr_type | chaddr () const |
| Getter for the chaddr field.
|
|
const uint8_t * | sname () const |
| Getter for the sname field.
|
|
const uint8_t * | file () const |
| Getter for the file field.
|
|
const vend_type & | vend () const |
| Getter for the vend field.
|
|
uint32_t | header_size () const |
| Getter for the header size.
|
|
void | opcode (uint8_t code) |
| Setter for the opcode field.
|
|
void | htype (uint8_t type) |
| Setter for the hardware type field.
|
|
void | hlen (uint8_t length) |
| Setter for the hlen field.
|
|
void | hops (uint8_t count) |
| Setter for the hops field.
|
|
void | xid (uint32_t identifier) |
| Setter for the xid field.
|
|
void | secs (uint16_t value) |
| Setter for the secs field.
|
|
void | padding (uint16_t value) |
| Setter for the padding field.
|
|
void | ciaddr (ipaddress_type address) |
| Setter for the ciaddr field.
|
|
void | yiaddr (ipaddress_type address) |
| Setter for the yiaddr field.
|
|
void | siaddr (ipaddress_type address) |
| Setter for the siaddr field.
|
|
void | giaddr (ipaddress_type address) |
| Setter for the giaddr field.
|
|
template<size_t n> |
void | chaddr (const HWAddress< n > &new_chaddr) |
| Setter for the chaddr field. The new_chaddr pointer must be at least BOOTP::hlen() bytes long.
|
|
void | sname (const uint8_t *new_sname) |
| Setter for the sname field.
|
|
void | file (const uint8_t *new_file) |
| Setter for the file field.
|
|
void | vend (const vend_type &newvend_) |
| Setter for the vend field.
|
|
bool | matches_response (const uint8_t *ptr, uint32_t total_sz) const |
| Check whether ptr points to a valid response for this PDU.
|
|
PDUType | pdu_type () const |
| Getter for the PDU's type.
|
|
BootP * | clone () const |
|
| PDU () |
| Default constructor.
|
|
| PDU (PDU &&rhs) TINS_NOEXCEPT |
| Move constructor.
|
|
PDU & | operator= (PDU &&rhs) TINS_NOEXCEPT |
| Move assignment operator.
|
|
virtual | ~PDU () |
| PDU destructor.
|
|
virtual uint32_t | trailer_size () const |
| Trailer's size.
|
|
uint32_t | size () const |
| The whole chain of PDU's size, including this one.
|
|
virtual uint32_t | advertised_size () const |
| The whole chain of PDU's advertised size, including this one.
|
|
PDU * | inner_pdu () const |
| Getter for the inner PDU.
|
|
PDU * | parent_pdu () const |
|
PDU * | release_inner_pdu () |
| Releases the inner PDU.
|
|
void | inner_pdu (PDU *next_pdu) |
| Sets the child PDU.
|
|
void | inner_pdu (const PDU &next_pdu) |
| Sets the child PDU.
|
|
serialization_type | serialize () |
| Serializes the whole chain of PDU's, including this one.
|
|
template<typename T > |
T * | find_pdu (PDUType type=T::pdu_flag) |
| Finds and returns the first PDU that matches the given flag.
|
|
template<typename T > |
const T * | find_pdu (PDUType type=T::pdu_flag) const |
| Finds and returns the first PDU that matches the given flag.
|
|
template<typename T > |
T & | rfind_pdu (PDUType type=T::pdu_flag) |
| Finds and returns the first PDU that matches the given flag.
|
|
template<typename T > |
const T & | rfind_pdu (PDUType type=T::pdu_flag) const |
| Finds and returns the first PDU that matches the given flag.
|
|
virtual void | send (PacketSender &sender, const NetworkInterface &iface) |
| Send the stack of PDUs through a PacketSender.
|
|
virtual PDU * | recv_response (PacketSender &sender, const NetworkInterface &iface) |
| Receives a matching response for this packet.
|
|
virtual bool | matches_flag (PDUType flag) const |
| Check whether this PDU matches the specified flag.
|
|