INET Framework for OMNeT++/OMNEST
IPv6Route Class Reference

#include <RoutingTable6.h>

List of all members.

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

Detailed Description

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


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)


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.

                                                                {
        _destPrefix = destPrefix;
        _length = length;
        _src = src;
        _interfaceID = -1;
        _expiryTime = 0;
        _metric = 0;
    }

Member Function Documentation

std::string IPv6Route::detailedInfo ( ) const [virtual]
{
    return std::string();
}
const IPv6Address& IPv6Route::getDestPrefix ( ) const [inline]

Referenced by info().

{return _destPrefix;}
simtime_t IPv6Route::getExpiryTime ( ) const [inline]

Referenced by info().

{return _expiryTime;}
int IPv6Route::getInterfaceId ( ) const [inline]
int IPv6Route::getMetric ( ) const [inline]

Referenced by RoutingTable6::routeLessThan().

{return _metric;}
const IPv6Address& IPv6Route::getNextHop ( ) const [inline]
int IPv6Route::getPrefixLength ( ) const [inline]

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

{return _length;}
RouteSrc IPv6Route::getSrc ( ) const [inline]

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

{return _src;}
std::string IPv6Route::info ( ) const [virtual]

Referenced by operator<<().

{
    std::stringstream out;
    out << getDestPrefix() << "/" << getPrefixLength() << " --> ";
    out << "if=" << getInterfaceId() << " next hop:" << getNextHop(); // FIXME try printing interface name
    out << " " << routeSrcName(getSrc());
    if (getExpiryTime()>0)
        out << " exp:" << getExpiryTime();
    return out.str();
}
const char * IPv6Route::routeSrcName ( RouteSrc  src) [static]

Referenced by info().

{
    switch (src)
    {
        case FROM_RA:         return "FROM_RA";
        case OWN_ADV_PREFIX:  return "OWN_ADV_PREFIX";
        case STATIC:          return "STATIC";
        case ROUTING_PROT:    return "ROUTING_PROT";
        default:              return "???";
    }
}
void IPv6Route::setExpiryTime ( simtime_t  expiryTime) [inline]
void IPv6Route::setInterfaceId ( int  interfaceId) [inline]
void IPv6Route::setNextHop ( const IPv6Address nextHop) [inline]

Member Data Documentation

simtime_t IPv6Route::_expiryTime [protected]
int IPv6Route::_interfaceID [protected]
short IPv6Route::_length [protected]
int IPv6Route::_metric [protected]

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