Myra Canyon  v0.0.1-768
network control
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Myra::L3_IPv6 Namespace Reference

Layer 3 is IPv6. More...

Classes

struct  Header
 IPv6 header. More...
 

Typedefs

typedef L3_IP::Protocol Protocol
 Pull into L3_IPv6 the IP protocol declaration to use in L3_IPv6::Header::next_header. More...
 

Functions

const Headerget_header (const uint8_t *ptr)
 Get the L3_IPv6 header. More...
 
const Headerget_header (const L2::Header *l2)
 Get the L3_IPv6 header. More...
 
int get_version (const Header *header)
 Get the high 4 bits from L3_IPv6::Header::ver_class_flow_label. More...
 
int get_diffserv (const Header *header)
 Get the DiffServ (6 bits) from L3_IPv6::Header::ver_class_flow_label. More...
 
int get_ecn (const Header *header)
 Get the ECN (2 bits) from L3_IPv6::Header::ver_class_flow_label. More...
 
int get_flow_label (const Header *header)
 Get the flow label (20 bits) from L3_IPv6::Header::ver_class_flow_label. More...
 
const uint8_t * get_L4_pointer (const Header *header)
 Get a pointer to the start of L4. More...
 
Protocol get_protocol (const Header *header)
 Get the protocol from the header to determine how to interpret L4. More...
 
Protocol get_next_header (const Header *header)
 get_next_header() is the IPv6 equivalent to L3_IPv4::get_protocol() More...
 
bool is_known_protocol (const Header *header)
 Determine if the protocol is a known value. More...
 
bool is_unknown_protocol (const Header *header)
 Determine if the protocol is unknown. More...
 
std::string to_string (const Protocol &proto)
 Return a simple text string that represents the IP protocol name. More...
 
uint16_t get_payload_length (const Header *header)
 
bool protocol_is_ICMPv6 (const Protocol &protocol)
 Determine if a packet's layer 4 is UDP. More...
 
bool protocol_is_ICMPv6 (const L3_IPv6::Header *l3)
 Determine if a packet's layer 4 is UDP. More...
 
bool protocol_is_TCP (const Protocol &protocol)
 Determine if a packet's layer 4 is TCP. More...
 
bool protocol_is_TCP (const L3_IPv6::Header *l3)
 Determine if a packet's layer 4 is TCP. More...
 
bool protocol_is_UDP (const Protocol &protocol)
 Determine if a packet's layer 4 is UDP. More...
 
bool protocol_is_UDP (const L3_IPv6::Header *l3)
 Determine if a packet's layer 4 is UDP. More...
 

Detailed Description

Layer 3 is IPv6.

Typedef Documentation

Pull into L3_IPv6 the IP protocol declaration to use in L3_IPv6::Header::next_header.

Function Documentation

int Myra::L3_IPv6::get_diffserv ( const Header *  header)
inline

Get the DiffServ (6 bits) from L3_IPv6::Header::ver_class_flow_label.

int Myra::L3_IPv6::get_ecn ( const Header *  header)
inline

Get the ECN (2 bits) from L3_IPv6::Header::ver_class_flow_label.

int Myra::L3_IPv6::get_flow_label ( const Header *  header)
inline

Get the flow label (20 bits) from L3_IPv6::Header::ver_class_flow_label.

const Header* Myra::L3_IPv6::get_header ( const uint8_t *  ptr)
inline

Get the L3_IPv6 header.

Here is the caller graph for this function:

const Header* Myra::L3_IPv6::get_header ( const L2::Header *  l2)
inline

Get the L3_IPv6 header.

Here is the call graph for this function:

const uint8_t* Myra::L3_IPv6::get_L4_pointer ( const Header *  header)
inline

Get a pointer to the start of L4.

Here is the caller graph for this function:

Protocol Myra::L3_IPv6::get_next_header ( const Header *  header)
inline

get_next_header() is the IPv6 equivalent to L3_IPv4::get_protocol()

Here is the call graph for this function:

Here is the caller graph for this function:

uint16_t Myra::L3_IPv6::get_payload_length ( const Header *  header)
inline
Todo:
need to deal with extension headers

Here is the caller graph for this function:

Protocol Myra::L3_IPv6::get_protocol ( const Header *  header)
inline

Get the protocol from the header to determine how to interpret L4.

Here is the caller graph for this function:

int Myra::L3_IPv6::get_version ( const Header *  header)
inline

Get the high 4 bits from L3_IPv6::Header::ver_class_flow_label.

Here is the caller graph for this function:

bool Myra::L3_IPv6::is_known_protocol ( const Header *  header)
inline

Determine if the protocol is a known value.

See also
L3_IP::is_known_protocol()

Here is the call graph for this function:

bool Myra::L3_IPv6::is_unknown_protocol ( const Header *  header)
inline

Determine if the protocol is unknown.

See also
L3_IP::is_unknown_protocol()

Here is the call graph for this function:

bool Myra::L3_IPv6::protocol_is_ICMPv6 ( const Protocol &  protocol)
inline

Determine if a packet's layer 4 is UDP.

Here is the caller graph for this function:

bool Myra::L3_IPv6::protocol_is_ICMPv6 ( const L3_IPv6::Header *  l3)
inline

Determine if a packet's layer 4 is UDP.

Here is the call graph for this function:

bool Myra::L3_IPv6::protocol_is_TCP ( const Protocol &  protocol)
inline

Determine if a packet's layer 4 is TCP.

Here is the caller graph for this function:

bool Myra::L3_IPv6::protocol_is_TCP ( const L3_IPv6::Header *  l3)
inline

Determine if a packet's layer 4 is TCP.

Here is the call graph for this function:

bool Myra::L3_IPv6::protocol_is_UDP ( const Protocol &  protocol)
inline

Determine if a packet's layer 4 is UDP.

Here is the caller graph for this function:

bool Myra::L3_IPv6::protocol_is_UDP ( const L3_IPv6::Header *  l3)
inline

Determine if a packet's layer 4 is UDP.

Here is the call graph for this function:

std::string Myra::L3_IPv6::to_string ( const Protocol &  proto)
inline

Return a simple text string that represents the IP protocol name.

Here is the call graph for this function: