#include <RoutingTable6.h>
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 IPv6Address & | destPrefix () const |
int | prefixLength () const |
RouteSrc | src () const |
int | interfaceID () const |
const IPv6Address & | nextHop () 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 |
enum IPv6Route::RouteSrc |
Specifies where the route comes from
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 };
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 }
const IPv6Address& IPv6Route::destPrefix | ( | ) | const [inline] |
simtime_t IPv6Route::expiryTime | ( | ) | const [inline] |
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] |
int IPv6Route::metric | ( | ) | const [inline] |
const IPv6Address& IPv6Route::nextHop | ( | ) | const [inline] |
int IPv6Route::prefixLength | ( | ) | const [inline] |
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] |
void IPv6Route::setNextHop | ( | const IPv6Address & | nextHop | ) | [inline] |
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] |