INET Framework for OMNeT++/OMNEST
IPv6Route Class Reference

#include <RoutingTable6.h>

Inheritance diagram for IPv6Route:
AnsaIPv6Route AnsaOspf6::RoutingTableEntry

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.

Definition at line 33 of file RoutingTable6.h.


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)

Definition at line 37 of file RoutingTable6.h.


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.

Definition at line 59 of file RoutingTable6.h.

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

Member Function Documentation

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

Definition at line 42 of file RoutingTable6.cc.

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

Definition at line 77 of file RoutingTable6.h.

Referenced by AnsaRoutingTable6::addRoute(), info(), and AnsaIPv6Route::printRoute().

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

Definition at line 82 of file RoutingTable6.h.

Referenced by AnsaRoutingTable6::addRoute(), and info().

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

Definition at line 31 of file RoutingTable6.cc.

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]

Definition at line 47 of file RoutingTable6.cc.

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]

Member Data Documentation

simtime_t IPv6Route::_expiryTime [protected]

Definition at line 51 of file RoutingTable6.h.

int IPv6Route::_interfaceID [protected]

Definition at line 49 of file RoutingTable6.h.

Referenced by AnsaOspf6::RoutingTableEntry::RoutingTableEntry().

int IPv6Route::_metric [protected]

Definition at line 52 of file RoutingTable6.h.

Referenced by AnsaOspf6::RoutingTableEntry::RoutingTableEntry().

Definition at line 48 of file RoutingTable6.h.


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