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

#include <fframe.h>

Public Member Functions

 fframe (uint8_t *_data=NULL, size_t _datalen=0)
 
 fframe (size_t len=DEFAULT_FFRAME_SIZE)
 
virtual ~fframe ()
 
virtual void reset (uint8_t *_data, size_t _datalen)
 
 fframe (const fframe &frame)
 
fframeoperator= (const fframe &frame)
 
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).
 
virtual uint8_t & operator[] (size_t index) throw (eFrameOutOfRange)
 
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)
 
virtual uint8_t * payload () const
 
virtual size_t payloadlen () const
 
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)
 

Public Attributes

fframenext
 
fframeprev
 

Friends

std::ostream & operator<< (std::ostream &os, fframe const &frame)
 

Detailed Description

base class for all framing related classes these classes are used for mixin'g in an existing memory area parsing functionality for specific packet formats, e.g. OpenFlow, Ethernet, VLAN, IPv4, etc.

Inheritance diagram for rofl::fframe:
rofl::farpv4frame rofl::fetherframe rofl::fgtpuframe rofl::ficmpv4frame rofl::ficmpv6frame rofl::ficmpv6opt rofl::fipv4frame rofl::fipv6ext rofl::fipv6frame rofl::fl2tpv3frame rofl::fmplsframe rofl::fsctpframe rofl::ftcpframe rofl::fudpframe rofl::fvlanframe

Constructor & Destructor Documentation

fframe::fframe ( uint8_t *  _data = NULL,
size_t  _datalen = 0 
)

constructor for parsing existing frames

fframe::fframe ( size_t  len = DEFAULT_FFRAME_SIZE)

constructor for creating new frames

fframe::~fframe ( )
virtual

destructor

fframe::fframe ( const fframe frame)

copy constructor

Member Function Documentation

virtual bool rofl::fframe::complete ( ) const
inlinevirtual
bool rofl::fframe::empty ( ) const
inline

return bool whether frame is empty or not

virtual size_t rofl::fframe::framelen ( ) const
inlinevirtual

get length of data area

virtual void rofl::fframe::initialize ( )
inlinevirtual
virtual size_t rofl::fframe::need_bytes ( ) const
inlinevirtual
fframe & fframe::operator= ( const fframe frame)

assignment operator

uint8_t & fframe::operator[] ( size_t  index)
throw (eFrameOutOfRange
)
virtual

index operator

virtual uint8_t* rofl::fframe::payload ( ) const
inlinevirtual
virtual void rofl::fframe::payload_insert ( uint8_t *  data,
size_t  datalen 
)
inlinevirtual
virtual size_t rofl::fframe::payloadlen ( ) const
inlinevirtual
void fframe::reset ( uint8_t *  _data,
size_t  _datalen 
)
virtual

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

Reimplemented in rofl::fgtpuframe, rofl::fvlanframe, rofl::fetherframe, and rofl::fmplsframe.

void rofl::fframe::shift_left ( size_t  bytes)
inline

shift left

void rofl::fframe::shift_right ( size_t  bytes)
inline

shift right

virtual uint8_t* rofl::fframe::soframe ( ) const
inlinevirtual

get start of data area

virtual void rofl::fframe::validate ( uint16_t  total_len = 0) const
inlinevirtual

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