Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

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 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

Enumeration values:
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]
 

00074 {_expiryTime = expiryTime;}

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 Sat Apr 1 20:52:22 2006 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.1