INET Framework for OMNeT++/OMNEST
inet::IRoute Class Referenceabstract

C++ interface for accessing unicast routing table entries of various protocols (IPv4, IPv6, etc) in a uniform way. More...

#include <IRoute.h>

Inheritance diagram for inet::IRoute:
inet::Ipv4Route inet::Ipv6Route inet::NextHopRoute inet::bgp::BgpRoutingTableEntry inet::DsdvIpv4Route inet::ospfv2::Ospfv2RoutingTableEntry inet::ospfv3::Ospfv3Ipv4RoutingTableEntry inet::ospfv3::Ospfv3RoutingTableEntry

Public Types

enum  SourceType {
  MANUAL, IFACENETMASK, ROUTER_ADVERTISEMENT, OWN_ADV_PREFIX,
  ICMP_REDIRECT, RIP, OSPF, BGP,
  ZEBRA, MANET, MANET2, DYMO,
  AODV, EIGRP, LISP, BABEL,
  ODR, UNKNOWN, ISIS
}
 Specifies where the route comes from. More...
 
enum  ChangeCodes {
  F_DESTINATION, F_PREFIX_LENGTH, F_NEXTHOP, F_IFACE,
  F_SOURCE, F_TYPE, F_ADMINDIST, F_METRIC,
  F_EXPIRYTIME, F_LAST
}
 Field codes for NB_ROUTE_CHANGED notifications. More...
 
enum  RouteAdminDist {
  dDirectlyConnected = 0, dStatic = 1, dEIGRPSummary = 5, dBGPExternal = 20,
  dEIGRPInternal = 90, dIGRP = 100, dOSPF = 110, dISIS = 115,
  dRIP = 120, dEGP = 140, dODR = 160, dEIGRPExternal = 170,
  dBGPInternal = 200, dDHCPlearned = 254, dBABEL = 125, dLISP = 210,
  dUnknown = 255
}
 Cisco like administrative distances. More...
 

Public Member Functions

virtual ~IRoute ()
 
virtual IRoutingTablegetRoutingTableAsGeneric () const =0
 The routing table in which this route is inserted, or nullptr. More...
 
virtual void setDestination (const L3Address &dest)=0
 
virtual void setPrefixLength (int l)=0
 
virtual void setNextHop (const L3Address &nextHop)=0
 
virtual void setInterface (NetworkInterface *ie)=0
 
virtual void setSource (cObject *source)=0
 
virtual void setSourceType (SourceType type)=0
 
virtual void setMetric (int metric)=0
 
virtual void setAdminDist (unsigned int adminDist)=0
 
virtual L3Address getDestinationAsGeneric () const =0
 Destination address prefix to match. More...
 
virtual int getPrefixLength () const =0
 Represents length of prefix to match. More...
 
virtual L3Address getNextHopAsGeneric () const =0
 Next hop address. More...
 
virtual NetworkInterfacegetInterface () const =0
 Next hop interface. More...
 
virtual cObject * getSource () const =0
 Source of route. More...
 
virtual SourceType getSourceType () const =0
 Source type of the route. More...
 
virtual int getMetric () const =0
 Cost to reach the destination. More...
 
virtual cObject * getProtocolData () const =0
 
virtual void setProtocolData (cObject *protocolData)=0
 

Static Public Member Functions

static const char * sourceTypeName (SourceType sourceType)
 

Detailed Description

C++ interface for accessing unicast routing table entries of various protocols (IPv4, IPv6, etc) in a uniform way.

See also
IRoutingTable, Ipv4Route, Ipv6Route

Member Enumeration Documentation

◆ ChangeCodes

Field codes for NB_ROUTE_CHANGED notifications.

Enumerator
F_DESTINATION 
F_PREFIX_LENGTH 
F_NEXTHOP 
F_IFACE 
F_SOURCE 
F_TYPE 
F_ADMINDIST 
F_METRIC 
F_EXPIRYTIME 
F_LAST 
46  {
49  F_NEXTHOP,
50  F_IFACE,
51  F_SOURCE,
52  F_TYPE,
54  F_METRIC,
56  F_LAST
57  };

◆ RouteAdminDist

Cisco like administrative distances.

Enumerator
dDirectlyConnected 
dStatic 
dEIGRPSummary 
dBGPExternal 
dEIGRPInternal 
dIGRP 
dOSPF 
dISIS 
dRIP 
dEGP 
dODR 
dEIGRPExternal 
dBGPInternal 
dDHCPlearned 
dBABEL 
dLISP 
dUnknown 
60  {
62  dStatic = 1,
63  dEIGRPSummary = 5,
64  dBGPExternal = 20,
65  dEIGRPInternal = 90,
66  dIGRP = 100,
67  dOSPF = 110,
68  dISIS = 115,
69  dRIP = 120,
70  dEGP = 140,
71  dODR = 160,
72  dEIGRPExternal = 170,
73  dBGPInternal = 200,
74  dDHCPlearned = 254,
75  dBABEL = 125,
76  dLISP = 210,
77  dUnknown = 255
78  };

◆ SourceType

Specifies where the route comes from.

Enumerator
MANUAL 

manually added static route

IFACENETMASK 

comes from an interface's netmask

ROUTER_ADVERTISEMENT 

on-link prefix, from Router Advertisement

OWN_ADV_PREFIX 

on routers: on-link prefix that the router itself advertises on the link

ICMP_REDIRECT 

ICMP redirect message.

RIP 

managed by the given routing protocol

OSPF 

managed by the given routing protocol

BGP 

managed by the given routing protocol

ZEBRA 

managed by the Quagga/Zebra based model

MANET 

managed by manet, search exact address

MANET2 

managed by manet, search approximate address

DYMO 

managed by DYMO routing

AODV 

managed by AODV routing

EIGRP 
LISP 
BABEL 
ODR 
UNKNOWN 
ISIS 
28  {
29  MANUAL,
30  IFACENETMASK,
34  RIP,
35  OSPF,
36  BGP,
37  ZEBRA,
38  MANET,
39  MANET2,
40  DYMO,
41  AODV,
43  };

Constructor & Destructor Documentation

◆ ~IRoute()

virtual inet::IRoute::~IRoute ( )
inlinevirtual
88 {}

Member Function Documentation

◆ getDestinationAsGeneric()

◆ getInterface()

◆ getMetric()

◆ getNextHopAsGeneric()

◆ getPrefixLength()

virtual int inet::IRoute::getPrefixLength ( ) const
pure virtual

◆ getProtocolData()

◆ getRoutingTableAsGeneric()

virtual IRoutingTable* inet::IRoute::getRoutingTableAsGeneric ( ) const
pure virtual

The routing table in which this route is inserted, or nullptr.

Implemented in inet::Ipv6Route, inet::Ipv4Route, and inet::NextHopRoute.

Referenced by inet::RoutingTableRecorder::recordRouteChange().

◆ getSource()

◆ getSourceType()

virtual SourceType inet::IRoute::getSourceType ( ) const
pure virtual

Source type of the route.

Implemented in inet::Ipv6Route, inet::Ipv4Route, and inet::NextHopRoute.

◆ setAdminDist()

virtual void inet::IRoute::setAdminDist ( unsigned int  adminDist)
pure virtual

◆ setDestination()

virtual void inet::IRoute::setDestination ( const L3Address dest)
pure virtual

◆ setInterface()

◆ setMetric()

◆ setNextHop()

◆ setPrefixLength()

virtual void inet::IRoute::setPrefixLength ( int  l)
pure virtual

◆ setProtocolData()

virtual void inet::IRoute::setProtocolData ( cObject *  protocolData)
pure virtual

◆ setSource()

virtual void inet::IRoute::setSource ( cObject *  source)
pure virtual

◆ setSourceType()

virtual void inet::IRoute::setSourceType ( SourceType  type)
pure virtual

◆ sourceTypeName()

const char * inet::IRoute::sourceTypeName ( SourceType  sourceType)
static
13 {
14  switch (sourceType) {
15  case MANUAL:
16  return "MANUAL";
17 
18  case IFACENETMASK:
19  return "IFACENETMASK";
20 
22  return "FROM_RA";
23 
24  case OWN_ADV_PREFIX:
25  return "OWN_ADV_PREFIX";
26 
27  case ICMP_REDIRECT:
28  return "REDIRECT";
29 
30  case RIP:
31  return "RIP";
32 
33  case OSPF:
34  return "OSPF";
35 
36  case BGP:
37  return "BGP";
38 
39  case ZEBRA:
40  return "ZEBRA";
41 
42  case MANET:
43  return "MANET";
44 
45  case MANET2:
46  return "MANET2";
47 
48  case DYMO:
49  return "DYMO";
50 
51  case AODV:
52  return "AODV";
53  case EIGRP:
54  return "EIGRP";
55  case LISP:
56  return "LISP";
57  case BABEL:
58  return "BABEL";
59  default:
60  return "???";
61  }
62 }

Referenced by inet::NextHopRoute::str().


The documentation for this class was generated from the following files:
inet::IRoute::dEIGRPExternal
@ dEIGRPExternal
Definition: IRoute.h:72
inet::IRoute::F_IFACE
@ F_IFACE
Definition: IRoute.h:50
inet::IRoute::AODV
@ AODV
managed by AODV routing
Definition: IRoute.h:41
inet::IRoute::ODR
@ ODR
Definition: IRoute.h:42
inet::IRoute::F_DESTINATION
@ F_DESTINATION
Definition: IRoute.h:47
inet::IRoute::RIP
@ RIP
managed by the given routing protocol
Definition: IRoute.h:34
inet::IRoute::dBABEL
@ dBABEL
Definition: IRoute.h:75
inet::IRoute::MANUAL
@ MANUAL
manually added static route
Definition: IRoute.h:29
inet::IRoute::MANET
@ MANET
managed by manet, search exact address
Definition: IRoute.h:38
inet::IRoute::dDirectlyConnected
@ dDirectlyConnected
Definition: IRoute.h:61
inet::IRoute::LISP
@ LISP
Definition: IRoute.h:42
inet::IRoute::dLISP
@ dLISP
Definition: IRoute.h:76
inet::IRoute::ROUTER_ADVERTISEMENT
@ ROUTER_ADVERTISEMENT
on-link prefix, from Router Advertisement
Definition: IRoute.h:31
inet::IRoute::EIGRP
@ EIGRP
Definition: IRoute.h:42
inet::IRoute::BGP
@ BGP
managed by the given routing protocol
Definition: IRoute.h:36
inet::IRoute::dEIGRPInternal
@ dEIGRPInternal
Definition: IRoute.h:65
inet::IRoute::dBGPInternal
@ dBGPInternal
Definition: IRoute.h:73
inet::IRoute::dOSPF
@ dOSPF
Definition: IRoute.h:67
inet::IRoute::F_EXPIRYTIME
@ F_EXPIRYTIME
Definition: IRoute.h:55
inet::IRoute::DYMO
@ DYMO
managed by DYMO routing
Definition: IRoute.h:40
inet::IRoute::MANET2
@ MANET2
managed by manet, search approximate address
Definition: IRoute.h:39
inet::IRoute::F_SOURCE
@ F_SOURCE
Definition: IRoute.h:51
inet::IRoute::OWN_ADV_PREFIX
@ OWN_ADV_PREFIX
on routers: on-link prefix that the router itself advertises on the link
Definition: IRoute.h:32
inet::IRoute::dEIGRPSummary
@ dEIGRPSummary
Definition: IRoute.h:63
inet::IRoute::dODR
@ dODR
Definition: IRoute.h:71
inet::IRoute::OSPF
@ OSPF
managed by the given routing protocol
Definition: IRoute.h:35
inet::IRoute::dIGRP
@ dIGRP
Definition: IRoute.h:66
inet::IRoute::ISIS
@ ISIS
Definition: IRoute.h:42
inet::IRoute::F_TYPE
@ F_TYPE
Definition: IRoute.h:52
inet::IRoute::dRIP
@ dRIP
Definition: IRoute.h:69
inet::IRoute::ICMP_REDIRECT
@ ICMP_REDIRECT
ICMP redirect message.
Definition: IRoute.h:33
inet::IRoute::F_LAST
@ F_LAST
Definition: IRoute.h:56
inet::IRoute::dBGPExternal
@ dBGPExternal
Definition: IRoute.h:64
inet::IRoute::dISIS
@ dISIS
Definition: IRoute.h:68
inet::IRoute::dUnknown
@ dUnknown
Definition: IRoute.h:77
inet::IRoute::BABEL
@ BABEL
Definition: IRoute.h:42
inet::IRoute::dDHCPlearned
@ dDHCPlearned
Definition: IRoute.h:74
inet::IRoute::F_PREFIX_LENGTH
@ F_PREFIX_LENGTH
Definition: IRoute.h:48
inet::IRoute::dStatic
@ dStatic
Definition: IRoute.h:62
inet::IRoute::F_METRIC
@ F_METRIC
Definition: IRoute.h:54
inet::IRoute::F_NEXTHOP
@ F_NEXTHOP
Definition: IRoute.h:49
inet::IRoute::IFACENETMASK
@ IFACENETMASK
comes from an interface's netmask
Definition: IRoute.h:30
inet::IRoute::ZEBRA
@ ZEBRA
managed by the Quagga/Zebra based model
Definition: IRoute.h:37
inet::IRoute::UNKNOWN
@ UNKNOWN
Definition: IRoute.h:42
inet::IRoute::dEGP
@ dEGP
Definition: IRoute.h:70
inet::IRoute::F_ADMINDIST
@ F_ADMINDIST
Definition: IRoute.h:53