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

#include <fvlanframe.h>

Classes

struct  vlan_hdr_t
 

Public Types

enum  vlan_ether_t { VLAN_CTAG_ETHER = 0x8100, VLAN_STAG_ETHER = 0x88a8, VLAN_ITAG_ETHER = 0x88e7 }
 

Public Member Functions

struct rofl::fvlanframe::vlan_hdr_t __attribute__ ((packed))
 
 fvlanframe (uint8_t *data, size_t datalen)
 
 fvlanframe (size_t len=sizeof(struct fvlanframe::vlan_hdr_t))
 
virtual ~fvlanframe ()
 
virtual void reset (uint8_t *data, size_t datalen)
 
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)
 
void set_dl_vlan_id (uint16_t vid)
 
uint16_t get_dl_vlan_id () const
 
void set_dl_vlan_pcp (uint8_t pcp)
 
uint8_t get_dl_vlan_pcp () const
 
void set_dl_vlan_cfi (bool cfi)
 
bool get_dl_vlan_cfi () const
 
void set_dl_type (uint16_t dl_type) throw (eFrameInval)
 
uint16_t get_dl_type () const
 
- 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 vlan_hdr_tvlan_hdr
 
- Public Attributes inherited from rofl::fframe
fframenext
 
fframeprev
 

Friends

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

Detailed Description

VLAN frame

Inheritance diagram for rofl::fvlanframe:
rofl::fframe

Constructor & Destructor Documentation

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

constructor

fvlanframe::fvlanframe ( size_t  len = sizeof(struct fvlanframe::vlan_hdr_t))

constructor

fvlanframe::~fvlanframe ( )
virtual

destructor

Member Function Documentation

bool fvlanframe::complete ( ) const
virtual

returns boolean value indicating completeness of the packet

Reimplemented from rofl::fframe.

uint16_t fvlanframe::get_dl_type ( ) const

get dl type

uint16_t fvlanframe::get_dl_vlan_id ( ) const

get dl vlanid (if untagged, returns 0xffff)

void fvlanframe::initialize ( )
virtual

initialize (set eth_hdr, pppoe_hdr)

Reimplemented from rofl::fframe.

size_t fvlanframe::need_bytes ( ) const
virtual

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

Reimplemented from rofl::fframe.

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

get payload

Reimplemented from rofl::fframe.

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

insert payload

Reimplemented from rofl::fframe.

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

get payload length

Reimplemented from rofl::fframe.

void fvlanframe::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 fvlanframe::set_dl_type ( uint16_t  dl_type)
throw (eFrameInval
)

set dl type

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