Revised OpenFlow Library  v0.6.0dev
 All Classes Files Functions Variables Friends Groups Pages
Classes | Public Types | Public Member Functions | List of all members
rofl::fgtpuframe Class Reference

Classes

struct  gtpu_base_hdr_t
 
struct  gtpu_e_hdr_t
 
struct  gtpu_pn_hdr_t
 
struct  gtpu_s_hdr_t
 

Public Types

enum  gtpu_version_t { GTPU_VERS_1 = 1 }
 
enum  gtpu_udp_port_t { GTPU_UDP_PORT = 2152 }
 
enum  gtpu_flag_t { GTPU_PT_FLAG = (1 << 4), GTPU_E_FLAG = (1 << 2), GTPU_S_FLAG = (1 << 1), GTPU_PN_FLAG = (1 << 0) }
 

Public Member Functions

 fgtpuframe (uint8_t *data, size_t datalen)
 
 fgtpuframe (size_t len=sizeof(struct gtpu_e_hdr_t))
 
virtual void reset (uint8_t *data, size_t datalen)
 
virtual uint8_t * sopdu () const
 Returns pointer to begin of this PDU.
 
virtual size_t pdulen () const
 Returns length of this PDU.
 
virtual uint8_t * sosdu () const
 Returns pointer to begin of SDU encapsulated in this PDU (if any).
 
uint8_t get_version () const
 
void set_version (uint8_t version=GTPU_VERS_1)
 
bool get_pt_flag () const
 
void set_pt_flag (bool pt=true)
 
bool get_e_flag () const
 
void set_e_flag (bool e=true)
 
bool get_s_flag () const
 
void set_s_flag (bool s=true)
 
bool get_pn_flag () const
 
void set_pn_flag (bool pn=true)
 
uint8_t get_msg_type () const
 
void set_msg_type (uint8_t msg_type)
 
uint16_t get_length () const
 
void set_length (uint16_t len)
 
uint32_t get_teid () const
 
void set_teid (uint32_t teid)
 
uint16_t get_seq_no () const
 
void set_seq_no (uint16_t seq_no)
 
uint8_t get_npdu_no () const
 
void set_npdu_no (uint8_t n_pdu_no)
 
uint8_t get_ext_type () const
 
void set_ext_type (uint8_t ext_type)
 
size_t get_hdr_length () const
 
virtual bool complete () const
 
virtual size_t need_bytes () const
 
virtual void validate (uint16_t total_len=0) const
 
virtual void initialize ()
 
virtual void payload_insert (uint8_t *data, size_t datalen) throw (eFrameOutOfRange)
 
virtual uint8_t * payload () const throw (eFrameNoPayload)
 
virtual size_t payloadlen () const throw (eFrameNoPayload)
 
virtual const char * c_str ()
 
- Public Member Functions inherited from rofl::fframe
 fframe (uint8_t *_data=NULL, size_t _datalen=0)
 
 fframe (size_t len=DEFAULT_FFRAME_SIZE)
 
virtual ~fframe ()
 
 fframe (const fframe &frame)
 
fframeoperator= (const fframe &frame)
 
virtual uint8_t & operator[] (size_t index) throw (eFrameOutOfRange)
 
virtual uint8_t * soframe () const
 
virtual size_t framelen () const
 
bool empty () const
 
void shift_left (size_t bytes)
 
void shift_right (size_t bytes)
 

Additional Inherited Members

- Public Attributes inherited from rofl::fframe
fframenext
 
fframeprev
 
Inheritance diagram for rofl::fgtpuframe:
rofl::fframe

Member Function Documentation

bool fgtpuframe::complete ( ) const
virtual

returns boolean value indicating completeness of the packet

Reimplemented from rofl::fframe.

void fgtpuframe::initialize ( )
virtual

initialize (set eth_hdr, pppoe_hdr)

Reimplemented from rofl::fframe.

size_t fgtpuframe::need_bytes ( ) const
virtual

returns the number of bytes this packet expects from the socket next

Reimplemented from rofl::fframe.

uint8_t * fgtpuframe::payload ( ) const
throw (eFrameNoPayload
)
virtual

get payload

Reimplemented from rofl::fframe.

void fgtpuframe::payload_insert ( uint8_t *  data,
size_t  datalen 
)
throw (eFrameOutOfRange
)
virtual

insert payload

Reimplemented from rofl::fframe.

size_t fgtpuframe::payloadlen ( ) const
throw (eFrameNoPayload
)
virtual

get payload length

Reimplemented from rofl::fframe.

void fgtpuframe::reset ( uint8_t *  _data,
size_t  _datalen 
)
virtual

reset this frame to a new buffer pointing to at (data, datalen)

Reimplemented from rofl::fframe.

void fgtpuframe::validate ( uint16_t  total_len = 0) const
virtual

validate (frame structure)

Reimplemented from rofl::fframe.


The documentation for this class was generated from the following files: