IPv6Route Class Reference

#include <RoutingTable6.h>

List of all members.


Detailed Description

Represents a route in the route table. Routes with src=FROM_RA represent on-link prefixes advertised by routers.

Public Types

enum  RouteSrc { FROM_RA, OWN_ADV_PREFIX, STATIC, ROUTING_PROT }

Public Member Functions

 IPv6Route (IPv6Address destPrefix, int length, RouteSrc src)
virtual std::string info () const
virtual std::string detailedInfo () const
void setInterfaceId (int interfaceId)
void setNextHop (const IPv6Address &nextHop)
void setExpiryTime (simtime_t expiryTime)
void setMetric (int metric)
const IPv6AddressgetDestPrefix () const
int getPrefixLength () const
RouteSrc getSrc () const
int getInterfaceId () const
const IPv6AddressgetNextHop () const
simtime_t getExpiryTime () const
int getMetric () const

Static Public Member Functions

static const char * routeSrcName (RouteSrc src)

Protected Attributes

IPv6Address _destPrefix
short _length
RouteSrc _src
int _interfaceID
IPv6Address _nextHop
simtime_t _expiryTime
int _metric

Member Enumeration Documentation

Specifies where the route comes from

Enumerator:
FROM_RA  on-link prefix, from Router Advertisement
OWN_ADV_PREFIX  on routers: on-link prefix that the router **itself** advertises on the link
STATIC  static route
ROUTING_PROT  route is managed by a routing protocol (OSPF,BGP,etc)
00038     {
00039         FROM_RA,        
00040         OWN_ADV_PREFIX, 
00041         STATIC,         
00042         ROUTING_PROT,   
00043     };


Constructor & Destructor Documentation

IPv6Route::IPv6Route ( IPv6Address  destPrefix,
int  length,
RouteSrc  src 
) [inline]

Constructor. The destination prefix and the route source is passed to the constructor and cannot be changed afterwards.

00059                                                                 {
00060         _destPrefix = destPrefix;
00061         _length = length;
00062         _src = src;
00063         _interfaceID = -1;
00064         _expiryTime = 0;
00065         _metric = 0;
00066     }


Member Function Documentation

std::string IPv6Route::info (  )  const [virtual]

Referenced by operator<<().

00032 {
00033     std::stringstream out;
00034     out << getDestPrefix() << "/" << getPrefixLength() << " --> ";
00035     out << "if=" << getInterfaceId() << " next hop:" << getNextHop(); // FIXME try printing interface name
00036     out << " " << routeSrcName(getSrc());
00037     if (getExpiryTime()>0)
00038         out << " exp:" << getExpiryTime();
00039     return out.str();
00040 }

std::string IPv6Route::detailedInfo (  )  const [virtual]

00043 {
00044     return std::string();
00045 }

const char * IPv6Route::routeSrcName ( RouteSrc  src  )  [static]

Referenced by info().

00048 {
00049     switch (src)
00050     {
00051         case FROM_RA:         return "FROM_RA";
00052         case OWN_ADV_PREFIX:  return "OWN_ADV_PREFIX";
00053         case STATIC:          return "STATIC";
00054         case ROUTING_PROT:    return "ROUTING_PROT";
00055         default:              return "???";
00056     }
00057 }

void IPv6Route::setInterfaceId ( int  interfaceId  )  [inline]

void IPv6Route::setNextHop ( const IPv6Address nextHop  )  [inline]

void IPv6Route::setExpiryTime ( simtime_t  expiryTime  )  [inline]

void IPv6Route::setMetric ( int  metric  )  [inline]

const IPv6Address& IPv6Route::getDestPrefix (  )  const [inline]

Referenced by info().

00077 {return _destPrefix;}

int IPv6Route::getPrefixLength (  )  const [inline]

Referenced by info(), and RoutingTable6::routeLessThan().

00078 {return _length;}

RouteSrc IPv6Route::getSrc (  )  const [inline]

Referenced by RoutingTable6::addRoutingProtocolRoute(), and info().

00079 {return _src;}

int IPv6Route::getInterfaceId (  )  const [inline]

const IPv6Address& IPv6Route::getNextHop (  )  const [inline]

simtime_t IPv6Route::getExpiryTime (  )  const [inline]

Referenced by info().

00082 {return _expiryTime;}

int IPv6Route::getMetric (  )  const [inline]

Referenced by RoutingTable6::routeLessThan().

00083 {return _metric;}


Member Data Documentation

short IPv6Route::_length [protected]

int IPv6Route::_interfaceID [protected]

simtime_t IPv6Route::_expiryTime [protected]

int IPv6Route::_metric [protected]


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

Generated on Fri Mar 20 18:51:20 2009 for INET Framework for OMNeT++/OMNEST by  doxygen 1.5.5