INET Framework for OMNeT++/OMNEST
inet::RipRoute Class Reference

#include <RipRouteData.h>

Inheritance diagram for inet::RipRoute:

Public Types

enum  RouteType {
  RIP_ROUTE_RTE, RIP_ROUTE_STATIC, RIP_ROUTE_DEFAULT, RIP_ROUTE_REDISTRIBUTE,
  RIP_ROUTE_INTERFACE
}
 

Public Member Functions

 RipRoute (IRoute *route, RouteType type, int metric, uint16_t routeTag)
 
virtual std::string str () const override
 
IRoutegetRoute () const
 
RouteType getType () const
 
L3Address getDestination () const
 
L3Address getNextHop () const
 
int getPrefixLength () const
 
int getMetric () const
 
NetworkInterfacegetInterface () const
 
L3Address getFrom () const
 
simtime_t getLastUpdateTime () const
 
bool isChanged () const
 
uint16_t getRouteTag () const
 
simtime_t getLastInvalidationTime () const
 
void setRoute (IRoute *route)
 
void setType (RouteType type)
 
void setDestination (const L3Address &dest)
 
void setNextHop (const L3Address &nextHop)
 
void setPrefixLength (int prefixLength)
 
void setMetric (int metric)
 
void setInterface (NetworkInterface *ie)
 
void setFrom (const L3Address &from)
 
void setLastUpdateTime (simtime_t time)
 
void setChanged (bool changed)
 
void setRouteTag (uint16_t routeTag)
 
void setLastInvalidationTime (simtime_t time)
 

Protected Attributes

IRouteroute = nullptr
 
RouteType type = static_cast<RouteType>(-1)
 
L3Address dest
 
L3Address nextHop
 
int prefixLength = 0
 
int metric = 0
 
NetworkInterfaceie = nullptr
 
L3Address from
 
simtime_t lastUpdateTime = 0
 
bool changed = false
 
uint16_t tag = 0
 
simtime_t lastInvalid = 0
 

Member Enumeration Documentation

◆ RouteType

Enumerator
RIP_ROUTE_RTE 
RIP_ROUTE_STATIC 
RIP_ROUTE_DEFAULT 
RIP_ROUTE_REDISTRIBUTE 
RIP_ROUTE_INTERFACE 
22  {
23  RIP_ROUTE_RTE, // route learned from a RipEntry
24  RIP_ROUTE_STATIC, // static route
25  RIP_ROUTE_DEFAULT, // default route
26  RIP_ROUTE_REDISTRIBUTE, // route imported from another routing protocol
27  RIP_ROUTE_INTERFACE // route belongs to a local interface
28  };

Constructor & Destructor Documentation

◆ RipRoute()

inet::RipRoute::RipRoute ( IRoute route,
RouteType  type,
int  metric,
uint16_t  routeTag 
)
inline
48  {
49  this->route = route;
50  this->type = type;
51 
55  this->metric = metric;
56  ie = route->getInterface();
57 
58  this->lastUpdateTime = 0;
59  this->changed = false;
60  this->tag = routeTag;
61  this->lastInvalid = 0;
62  }

Member Function Documentation

◆ getDestination()

L3Address inet::RipRoute::getDestination ( ) const
inline

◆ getFrom()

L3Address inet::RipRoute::getFrom ( ) const
inline
73 { return from; }

Referenced by inet::Rip::processResponse().

◆ getInterface()

NetworkInterface* inet::RipRoute::getInterface ( ) const
inline
72 { return ie; }

Referenced by inet::Rip::receiveSignal().

◆ getLastInvalidationTime()

simtime_t inet::RipRoute::getLastInvalidationTime ( ) const
inline
77 { return lastInvalid; }

Referenced by inet::Rip::processResponse().

◆ getLastUpdateTime()

simtime_t inet::RipRoute::getLastUpdateTime ( ) const
inline
74 { return lastUpdateTime; }

Referenced by inet::Rip::checkExpiredRoutes().

◆ getMetric()

int inet::RipRoute::getMetric ( ) const
inline

◆ getNextHop()

L3Address inet::RipRoute::getNextHop ( ) const
inline
69 { return nextHop; }

Referenced by inet::Rip::receiveSignal().

◆ getPrefixLength()

int inet::RipRoute::getPrefixLength ( ) const
inline

◆ getRoute()

IRoute* inet::RipRoute::getRoute ( ) const
inline

◆ getRouteTag()

uint16_t inet::RipRoute::getRouteTag ( ) const
inline
76 { return tag; }

◆ getType()

RouteType inet::RipRoute::getType ( ) const
inline

◆ isChanged()

bool inet::RipRoute::isChanged ( ) const
inline
75 { return changed; }

◆ setChanged()

void inet::RipRoute::setChanged ( bool  changed)
inline

◆ setDestination()

void inet::RipRoute::setDestination ( const L3Address dest)
inline
81 { this->dest = dest; }

Referenced by inet::Rip::receiveSignal().

◆ setFrom()

void inet::RipRoute::setFrom ( const L3Address from)
inline
86 { this->from = from; }

Referenced by inet::Rip::addRoute(), and inet::Rip::updateRoute().

◆ setInterface()

void inet::RipRoute::setInterface ( NetworkInterface ie)
inline

◆ setLastInvalidationTime()

void inet::RipRoute::setLastInvalidationTime ( simtime_t  time)
inline
90 { this->lastInvalid = time; }

Referenced by inet::Rip::invalidateRoute().

◆ setLastUpdateTime()

void inet::RipRoute::setLastUpdateTime ( simtime_t  time)
inline

◆ setMetric()

void inet::RipRoute::setMetric ( int  metric)
inline

◆ setNextHop()

void inet::RipRoute::setNextHop ( const L3Address nextHop)
inline

◆ setPrefixLength()

void inet::RipRoute::setPrefixLength ( int  prefixLength)
inline
83 { this->prefixLength = prefixLength; }

Referenced by inet::Rip::receiveSignal().

◆ setRoute()

void inet::RipRoute::setRoute ( IRoute route)
inline

◆ setRouteTag()

void inet::RipRoute::setRouteTag ( uint16_t  routeTag)
inline
89 { this->tag = routeTag; }

Referenced by inet::Rip::updateRoute().

◆ setType()

void inet::RipRoute::setType ( RouteType  type)
inline
80 { this->type = type; }

Referenced by inet::Rip::updateRoute().

◆ str()

std::string inet::RipRoute::str ( ) const
overridevirtual
13 {
14  std::stringstream out;
15  if (dest.isUnspecified())
16  out << "0.0.0.0";
17  else
18  out << dest;
19  out << "/" << prefixLength;
20  out << " gw: ";
21  if (nextHop.isUnspecified())
22  out << "* ";
23  else
24  out << nextHop << " ";
25 
26  out << "metric:" << metric << " ";
27 
28  out << "if:";
29  if (!ie)
30  out << "* ";
31  else
32  out << ie->getInterfaceName() << " ";
33 
34  out << "from:" << from << " ";
35  out << "lastUpdate:" << lastUpdateTime << "s ";
36  out << "changed:" << changed << " ";
37  out << "tag:" << tag << " ";
38  out << "lastInvalid:" << lastInvalid << "s ";
39 
40  switch (type) {
42  out << "INTERFACE";
43  break;
44 
45  case RIP_ROUTE_STATIC:
46  out << "STATIC";
47  break;
48 
49  case RIP_ROUTE_DEFAULT:
50  out << "DEFAULT";
51  break;
52 
53  case RIP_ROUTE_RTE:
54  out << "RTE";
55  break;
56 
58  out << "REDISTRIBUTE";
59  break;
60  }
61 
62  return out.str();
63 }

Member Data Documentation

◆ changed

bool inet::RipRoute::changed = false
protected

Referenced by str().

◆ dest

L3Address inet::RipRoute::dest
protected

Referenced by str().

◆ from

L3Address inet::RipRoute::from
protected

Referenced by str().

◆ ie

NetworkInterface* inet::RipRoute::ie = nullptr
protected

Referenced by str().

◆ lastInvalid

simtime_t inet::RipRoute::lastInvalid = 0
protected

Referenced by str().

◆ lastUpdateTime

simtime_t inet::RipRoute::lastUpdateTime = 0
protected

Referenced by str().

◆ metric

int inet::RipRoute::metric = 0
protected

Referenced by str().

◆ nextHop

L3Address inet::RipRoute::nextHop
protected

Referenced by str().

◆ prefixLength

int inet::RipRoute::prefixLength = 0
protected

Referenced by str().

◆ route

IRoute* inet::RipRoute::route = nullptr
protected

◆ tag

uint16_t inet::RipRoute::tag = 0
protected

Referenced by str().

◆ type

RouteType inet::RipRoute::type = static_cast<RouteType>(-1)
protected

Referenced by str().


The documentation for this class was generated from the following files:
inet::RipRoute::prefixLength
int prefixLength
Definition: RipRouteData.h:36
inet::RipRoute::lastInvalid
simtime_t lastInvalid
Definition: RipRouteData.h:44
inet::IRoute::setMetric
virtual void setMetric(int metric)=0
inet::IRoute::setInterface
virtual void setInterface(NetworkInterface *ie)=0
inet::RipRoute::route
IRoute * route
Definition: RipRouteData.h:31
inet::RipRoute::type
RouteType type
Definition: RipRouteData.h:32
inet::IRoute::getDestinationAsGeneric
virtual L3Address getDestinationAsGeneric() const =0
Destination address prefix to match.
inet::RipRoute::ie
NetworkInterface * ie
Definition: RipRouteData.h:38
inet::NetworkInterface::getInterfaceName
const char * getInterfaceName() const
Definition: NetworkInterface.h:233
inet::RipRoute::changed
bool changed
Definition: RipRouteData.h:42
inet::IRoute::setNextHop
virtual void setNextHop(const L3Address &nextHop)=0
inet::IRoute::getNextHopAsGeneric
virtual L3Address getNextHopAsGeneric() const =0
Next hop address.
inet::L3Address::isUnspecified
bool isUnspecified() const
Definition: L3Address.cc:138
inet::RipRoute::metric
int metric
Definition: RipRouteData.h:37
inet::IRoute::getPrefixLength
virtual int getPrefixLength() const =0
Represents length of prefix to match.
inet::RipRoute::lastUpdateTime
simtime_t lastUpdateTime
Definition: RipRouteData.h:41
inet::RipRoute::RIP_ROUTE_REDISTRIBUTE
@ RIP_ROUTE_REDISTRIBUTE
Definition: RipRouteData.h:26
inet::RipRoute::from
L3Address from
Definition: RipRouteData.h:40
inet::RipRoute::RIP_ROUTE_DEFAULT
@ RIP_ROUTE_DEFAULT
Definition: RipRouteData.h:25
inet::RipRoute::nextHop
L3Address nextHop
Definition: RipRouteData.h:35
inet::RipRoute::RIP_ROUTE_RTE
@ RIP_ROUTE_RTE
Definition: RipRouteData.h:23
inet::RipRoute::tag
uint16_t tag
Definition: RipRouteData.h:43
inet::RipRoute::dest
L3Address dest
Definition: RipRouteData.h:34
inet::RipRoute::RIP_ROUTE_INTERFACE
@ RIP_ROUTE_INTERFACE
Definition: RipRouteData.h:27
inet::RipRoute::RIP_ROUTE_STATIC
@ RIP_ROUTE_STATIC
Definition: RipRouteData.h:24
inet::IRoute::getInterface
virtual NetworkInterface * getInterface() const =0
Next hop interface.