INET Framework for OMNeT++/OMNEST
|
#include <MPLSPacket.h>
Public Member Functions | |
MPLSPacket (const char *name=NULL) | |
MPLSPacket (const MPLSPacket &p) | |
virtual MPLSPacket & | operator= (const MPLSPacket &p) |
virtual MPLSPacket * | dup () const |
virtual std::string | info () const |
void | swapLabel (int newLabel) |
void | pushLabel (int newLabel) |
void | popLabel () |
bool | hasLabel () |
int | getTopLabel () |
Protected Types | |
typedef std::vector< int > | LabelStack |
Protected Attributes | |
LabelStack | labels |
Represents a packet with MPLS headers
typedef std::vector<int> MPLSPacket::LabelStack [protected] |
MPLSPacket::MPLSPacket | ( | const char * | name = NULL | ) |
: cPacket(name) { }
MPLSPacket::MPLSPacket | ( | const MPLSPacket & | p | ) |
{ setName(p.getName()); operator=(p); }
virtual MPLSPacket* MPLSPacket::dup | ( | ) | const [inline, virtual] |
cloning function
{return new MPLSPacket(*this);}
int MPLSPacket::getTopLabel | ( | ) | [inline] |
bool MPLSPacket::hasLabel | ( | ) | [inline] |
Returns true if the label stack is not empty
Referenced by MPLS::doStackOps(), MPLS::processMPLSPacketFromL2(), and MPLS::tryLabelAndForwardIPDatagram().
{return !labels.empty();}
std::string MPLSPacket::info | ( | ) | const [virtual] |
MPLSPacket & MPLSPacket::operator= | ( | const MPLSPacket & | p | ) | [virtual] |
Referenced by MPLSPacket().
{ cPacket::operator=(p); labels = p.labels; return *this; }
void MPLSPacket::popLabel | ( | ) | [inline] |
void MPLSPacket::pushLabel | ( | int | newLabel | ) | [inline] |
Pushes new label on the label stack
Referenced by MPLS::doStackOps().
{labels.push_back(newLabel);addBitLength(32);}
void MPLSPacket::swapLabel | ( | int | newLabel | ) | [inline] |
LabelStack MPLSPacket::labels [protected] |
Referenced by info(), and operator=().