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

#include <fetherframe.h>

Classes

struct  eth_hdr_t
 
struct  eth_llc_hdr_t
 

Public Member Functions

struct rofl::fetherframe::eth_hdr_t __attribute__ ((packed))
 
struct
rofl::fetherframe::eth_llc_hdr_t 
__attribute__ ((packed))
 
 fetherframe (uint8_t *data, size_t datalen)
 
 fetherframe (size_t len=DEFAULT_ETHER_FRAME_SIZE)
 
virtual ~fetherframe ()
 
virtual void reset (uint8_t *data, size_t datalen)
 
void set_dl_src (cmacaddr const &dl_src) throw (eFrameInval)
 
cmacaddr get_dl_src () const
 
void set_dl_dst (cmacaddr const &dl_dst) throw (eFrameInval)
 
cmacaddr get_dl_dst () const
 
void set_dl_type (uint16_t dl_type) throw (eFrameInval)
 
uint16_t get_dl_type () const
 
bool is_llc_frame () 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)
 
- 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 * 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 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

struct eth_hdr_teth_hdr
 
struct eth_llc_hdr_teth_llc_hdr
 
- Public Attributes inherited from rofl::fframe
fframenext
 
fframeprev
 

Friends

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

Detailed Description

Ethernet frame

Inheritance diagram for rofl::fetherframe:
rofl::fframe

Constructor & Destructor Documentation

fetherframe::fetherframe ( uint8_t *  data,
size_t  datalen 
)

constructor

fetherframe::fetherframe ( size_t  len = DEFAULT_ETHER_FRAME_SIZE)

constructor

fetherframe::~fetherframe ( )
virtual

destructor

Member Function Documentation

bool fetherframe::complete ( ) const
virtual

returns boolean value indicating completeness of the packet

Reimplemented from rofl::fframe.

cmacaddr fetherframe::get_dl_dst ( ) const

get dl dst

cmacaddr fetherframe::get_dl_src ( ) const

get dl src

uint16_t fetherframe::get_dl_type ( ) const

get dl type

void fetherframe::initialize ( )
virtual

initialize (set eth_hdr, pppoe_hdr)

Reimplemented from rofl::fframe.

size_t fetherframe::need_bytes ( ) const
virtual

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

Reimplemented from rofl::fframe.

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

get payload

Reimplemented from rofl::fframe.

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

insert payload

Reimplemented from rofl::fframe.

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

get payload length

Reimplemented from rofl::fframe.

void fetherframe::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 fetherframe::set_dl_dst ( cmacaddr const &  dl_dst)
throw (eFrameInval
)

set dl dst

void fetherframe::set_dl_src ( cmacaddr const &  dl_src)
throw (eFrameInval
)

set dl src

void fetherframe::set_dl_type ( uint16_t  dl_type)
throw (eFrameInval
)

set dl type

void fetherframe::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: