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

 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)
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 IPv6AddressdestPrefix () const
int prefixLength () const
RouteSrc src () const
int interfaceID () const
const IPv6AddressnextHop () const
simtime_t expiryTime () const
int metric () const

Static Public Member Functions

static const char * routeSrcName (RouteSrc src)

Private Attributes

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


Member Enumeration Documentation

enum IPv6Route::RouteSrc

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

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

00077 {return _destPrefix;}

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

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

simtime_t IPv6Route::expiryTime (  )  const [inline]

00082 {return _expiryTime;}

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

00033 {
00034     std::stringstream out;
00035     out << destPrefix() << "/" << prefixLength() << " --> ";
00036     out << "if=" << interfaceID() << " next hop:" << nextHop(); // FIXME try printing interface name
00037     out << " " << routeSrcName(src());
00038     if (expiryTime()>0)
00039         out << " exp:" << simtimeToStr(expiryTime());
00040     return out.str();
00041 }

int IPv6Route::interfaceID (  )  const [inline]

00080 {return _interfaceID;}

int IPv6Route::metric (  )  const [inline]

00083 {return _metric;}

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

00081 {return _nextHop;}

int IPv6Route::prefixLength (  )  const [inline]

00078 {return _length;}

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

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

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

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

00072 {_interfaceID = interfaceId;}

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

00075 {_metric = _metric;}

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

00073 {_nextHop = nextHop;}

RouteSrc IPv6Route::src (  )  const [inline]

00079 {return _src;}


Member Data Documentation

IPv6Address IPv6Route::_destPrefix [private]

simtime_t IPv6Route::_expiryTime [private]

int IPv6Route::_interfaceID [private]

short IPv6Route::_length [private]

int IPv6Route::_metric [private]

IPv6Address IPv6Route::_nextHop [private]

RouteSrc IPv6Route::_src [private]


The documentation for this class was generated from the following files:
Generated on Wed Apr 4 13:20:21 2007 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.7