Myra Canyon  v0.0.1-768
network control
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
L4_TCP.hpp File Reference

This file contains some definitions and helper functions for when layer 4 is TCP. More...

#include "Types.hpp"
#include "L3_IPv4.hpp"
#include "L3_IPv6.hpp"
Include dependency graph for L4_TCP.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  Myra::L4_TCP::Header
 TCP header. More...
 

Namespaces

 Myra
 Namespace declaration for all of the Myra Canyon helper functions.
 
 Myra::L3_IPv4
 Layer 3 is IPv4.
 
 Myra::L3_IPv6
 Layer 3 is IPv6.
 
 Myra::L4_TCP
 Definitions and helper functions for when layer 4 is TCP.
 

Functions

const Header * Myra::L4_TCP::get_header (const L3_IPv4::Header *l3)
 Get the L4_TCP::Header. More...
 
const Header * Myra::L4_TCP::get_header (const L3_IPv6::Header *l3)
 Get the L4_TCP::Header. More...
 
int Myra::L4_TCP::get_data_offset (const Header *header)
 Number of 32-bit words in the TCP header. More...
 
bool Myra::L4_TCP::is_RES3_flag (const Header *header)
 Reserved flag #3. More...
 
bool Myra::L4_TCP::is_RES2_flag (const Header *header)
 Reserved flag #2. More...
 
bool Myra::L4_TCP::is_RES1_flag (const Header *header)
 Reserved flag #1. More...
 
bool Myra::L4_TCP::is_NS_flag (const Header *header)
 ECN-nonce concealment in L4_TCP::Header::data_offset_and_flags. More...
 
bool Myra::L4_TCP::is_CWR_flag (const Header *header)
 Congrestion window reduced (RFC 3168) in L4_TCP::Header::flags. More...
 
bool Myra::L4_TCP::is_ECE_flag (const Header *header)
 ECN-Echo (RFC 3168) in L4_TCP::Header::flags. More...
 
bool Myra::L4_TCP::is_URG_flag (const Header *header)
 Urgent pointer field in L4_TCP::Header::flags. More...
 
bool Myra::L4_TCP::is_ACK_flag (const Header *header)
 Acknowledgement in L4_TCP::Header::flags. More...
 
bool Myra::L4_TCP::is_PSH_flag (const Header *header)
 Push in L4_TCP::Header::flags. More...
 
bool Myra::L4_TCP::is_RST_flag (const Header *header)
 RST in L4_TCP::Header::flags. More...
 
bool Myra::L4_TCP::is_SYN_flag (const Header *header)
 SYN in L4_TCP::Header::flags. More...
 
bool Myra::L4_TCP::is_FIN_flag (const Header *header)
 FIN in L4_TCP::Header::flags. More...
 
uint16_t Myra::L4_TCP::get_header_length (const Header *header)
 32 bit words, but 8 bits per byte. More...
 
uint16_t Myra::L4_TCP::get_payload_length (const L3_IPv4::Header *l3)
 Get the TCP payload length. More...
 
uint16_t Myra::L4_TCP::get_payload_length (const L3_IPv6::Header *l3)
 Get the TCP payload length. More...
 
uint16_t Myra::L4_TCP::get_options_length (const Header *header)
 Get the number of bytes in the TCP options between the header and the payload. More...
 
const uint8_t * Myra::L4_TCP::get_payload (const Header *header)
 Get a pointer to the payload. More...
 
bool Myra::L3_IPv4::protocol_is_TCP (const Protocol &protocol)
 Determine if a packet's layer 4 is TCP. More...
 
bool Myra::L3_IPv4::protocol_is_TCP (const L3_IPv4::Header *l3)
 Determine if a packet's layer 4 is TCP. More...
 
bool Myra::L3_IPv6::protocol_is_TCP (const Protocol &protocol)
 Determine if a packet's layer 4 is TCP. More...
 
bool Myra::L3_IPv6::protocol_is_TCP (const L3_IPv6::Header *l3)
 Determine if a packet's layer 4 is TCP. More...
 

Detailed Description

This file contains some definitions and helper functions for when layer 4 is TCP.