INET Framework for OMNeT++/OMNEST
inet::bgp::BgpRoutingTableEntry Class Reference

#include <BgpRoutingTableEntry.h>

Inheritance diagram for inet::bgp::BgpRoutingTableEntry:
inet::Ipv4Route inet::IRoute

Public Member Functions

 BgpRoutingTableEntry (void)
 
 BgpRoutingTableEntry (const Ipv4Route *entry)
 
virtual ~BgpRoutingTableEntry (void)
 
void setPathType (RoutingPathType type)
 
RoutingPathType getPathType (void) const
 
void addAS (AsId newAS)
 
unsigned int getASCount (void) const
 
AsId getAS (unsigned int index) const
 
int getLocalPreference (void) const
 
void setLocalPreference (int l)
 
bool isIBgpLearned (void)
 
void setIBgpLearned (bool i)
 
virtual std::string str () const
 
- Public Member Functions inherited from inet::Ipv4Route
 Ipv4Route ()
 
virtual ~Ipv4Route ()
 
virtual std::string detailedInfo () const
 
bool operator== (const Ipv4Route &route) const
 
bool operator!= (const Ipv4Route &route) const
 
bool equals (const Ipv4Route &route) const
 
virtual void setRoutingTable (IIpv4RoutingTable *rt)
 To be called by the routing table when this route is added or removed from it. More...
 
IIpv4RoutingTablegetRoutingTable () const
 
virtual bool isValid () const
 test validity of route entry, e.g. More...
 
virtual void setDestination (Ipv4Address _dest)
 
virtual void setNetmask (Ipv4Address _netmask)
 
virtual void setGateway (Ipv4Address _gateway)
 
virtual void setInterface (NetworkInterface *_interfacePtr) override
 
virtual void setSourceType (SourceType _source) override
 
const char * getSourceTypeAbbreviation () const
 
virtual void setAdminDist (unsigned int _adminDist) override
 
virtual void setMetric (int _metric) override
 
const Ipv4AddressgetDestination () const
 Destination address prefix to match. More...
 
const Ipv4AddressgetNetmask () const
 Represents length of prefix to match. More...
 
const Ipv4AddressgetGateway () const
 Next hop address. More...
 
NetworkInterfacegetInterface () const override
 Next hop interface. More...
 
const char * getInterfaceName () const
 Convenience method. More...
 
SourceType getSourceType () const override
 Source of route. More...
 
unsigned int getAdminDist () const
 Route source specific preference value. More...
 
int getMetric () const override
 "Cost" to reach the destination More...
 
void setSource (cObject *_source) override
 
cObject * getSource () const override
 Source of route. More...
 
cObject * getProtocolData () const override
 
void setProtocolData (cObject *protocolData) override
 
virtual IRoutingTablegetRoutingTableAsGeneric () const override
 The routing table in which this route is inserted, or nullptr. More...
 
virtual void setDestination (const L3Address &dest) override
 
virtual void setPrefixLength (int len) override
 
virtual void setNextHop (const L3Address &nextHop) override
 
virtual L3Address getDestinationAsGeneric () const override
 Destination address prefix to match. More...
 
virtual int getPrefixLength () const override
 Represents length of prefix to match. More...
 
virtual L3Address getNextHopAsGeneric () const override
 Next hop address. More...
 
- Public Member Functions inherited from inet::IRoute
virtual ~IRoute ()
 
virtual void setSourceType (SourceType type)=0
 

Static Public Member Functions

static const std::string getPathTypeString (RoutingPathType type)
 
- Static Public Member Functions inherited from inet::IRoute
static const char * sourceTypeName (SourceType sourceType)
 

Private Types

typedef unsigned char RoutingPathType
 

Private Attributes

RoutingPathType _pathType = INCOMPLETE
 
std::vector< AsId_ASList
 
int localPreference = 0
 
bool IBGP_learned = false
 

Additional Inherited Members

- Public Types inherited from inet::IRoute
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...
 
- Protected Member Functions inherited from inet::Ipv4Route
void changed (int fieldCode)
 

Member Typedef Documentation

◆ RoutingPathType

typedef unsigned char inet::bgp::BgpRoutingTableEntry::RoutingPathType
private

Constructor & Destructor Documentation

◆ BgpRoutingTableEntry() [1/2]

inet::bgp::BgpRoutingTableEntry::BgpRoutingTableEntry ( void  )
inline

◆ BgpRoutingTableEntry() [2/2]

inet::bgp::BgpRoutingTableEntry::BgpRoutingTableEntry ( const Ipv4Route entry)
inline
54 {
55  setDestination(entry->getDestination());
56  setNetmask(entry->getNetmask());
57  setGateway(entry->getGateway());
58  setInterface(entry->getInterface());
62 }

◆ ~BgpRoutingTableEntry()

virtual inet::bgp::BgpRoutingTableEntry::~BgpRoutingTableEntry ( void  )
inlinevirtual
31 {}

Member Function Documentation

◆ addAS()

void inet::bgp::BgpRoutingTableEntry::addAS ( AsId  newAS)
inline

◆ getAS()

AsId inet::bgp::BgpRoutingTableEntry::getAS ( unsigned int  index) const
inline

◆ getASCount()

unsigned int inet::bgp::BgpRoutingTableEntry::getASCount ( void  ) const
inline

◆ getLocalPreference()

int inet::bgp::BgpRoutingTableEntry::getLocalPreference ( void  ) const
inline

◆ getPathType()

RoutingPathType inet::bgp::BgpRoutingTableEntry::getPathType ( void  ) const
inline

◆ getPathTypeString()

const std::string inet::bgp::BgpRoutingTableEntry::getPathTypeString ( RoutingPathType  type)
inlinestatic
65 {
66  if (type == IGP)
67  return "IGP";
68  else if (type == EGP)
69  return "EGP";
70  else if (type == INCOMPLETE)
71  return "INCOMPLETE";
72 
73  return "Unknown";
74 }

Referenced by inet::bgp::operator<<(), and str().

◆ isIBgpLearned()

bool inet::bgp::BgpRoutingTableEntry::isIBgpLearned ( void  )
inline

◆ setIBgpLearned()

void inet::bgp::BgpRoutingTableEntry::setIBgpLearned ( bool  i)
inline

◆ setLocalPreference()

void inet::bgp::BgpRoutingTableEntry::setLocalPreference ( int  l)
inline

◆ setPathType()

void inet::bgp::BgpRoutingTableEntry::setPathType ( RoutingPathType  type)
inline

◆ str()

std::string inet::bgp::BgpRoutingTableEntry::str ( ) const
inlinevirtual

Reimplemented from inet::Ipv4Route.

101 {
102  std::stringstream out;
103  out << getSourceTypeAbbreviation();
104  out << " ";
105  if (getDestination().isUnspecified())
106  out << "0.0.0.0";
107  else
108  out << getDestination();
109  out << "/";
110  if (getNetmask().isUnspecified())
111  out << "0";
112  else
113  out << getNetmask().getNetmaskLength();
114  out << " gw:";
115  if (getGateway().isUnspecified())
116  out << "* ";
117  else
118  out << getGateway() << " ";
119  if (getRoutingTable() && getRoutingTable()->isAdminDistEnabled())
120  out << "AD:" << getAdminDist() << " ";
121  out << "metric:" << getMetric() << " ";
122  out << "if:";
123  if (!getInterface())
124  out << "*";
125  else
126  out << getInterfaceName();
127 
128  out << " origin: " << BgpRoutingTableEntry::getPathTypeString(_pathType);
129  if (IBGP_learned)
130  out << " localPref: " << getLocalPreference();
131  out << " ASlist: ";
132  for (auto& element : _ASList)
133  out << element << ' ';
134 
135  return out.str();
136 }

Member Data Documentation

◆ _ASList

std::vector<AsId> inet::bgp::BgpRoutingTableEntry::_ASList
private

Referenced by str().

◆ _pathType

RoutingPathType inet::bgp::BgpRoutingTableEntry::_pathType = INCOMPLETE
private

Referenced by str().

◆ IBGP_learned

bool inet::bgp::BgpRoutingTableEntry::IBGP_learned = false
private

Referenced by str().

◆ localPreference

int inet::bgp::BgpRoutingTableEntry::localPreference = 0
private

The documentation for this class was generated from the following file:
inet::Ipv4Route::getGateway
const Ipv4Address & getGateway() const
Next hop address.
Definition: Ipv4Route.h:80
inet::bgp::EGP
@ EGP
Definition: BgpCommon_m.h:57
inet::Ipv4Route::getSourceTypeAbbreviation
const char * getSourceTypeAbbreviation() const
Definition: Ipv4Route.cc:29
inet::bgp::BgpRoutingTableEntry::IBGP_learned
bool IBGP_learned
Definition: BgpRoutingTableEntry.h:26
inet::Ipv4Route::setMetric
virtual void setMetric(int _metric) override
Definition: Ipv4Route.h:71
inet::Ipv4Route::getMetric
int getMetric() const override
"Cost" to reach the destination
Definition: Ipv4Route.h:95
inet::Ipv4Address::getNetmaskLength
int getNetmaskLength() const
Counts 1 bits in a netmask.
Definition: Ipv4Address.cc:234
inet::bgp::DEFAULT_COST
const unsigned char DEFAULT_COST
Definition: BgpCommon.h:29
inet::IRoute::BGP
@ BGP
managed by the given routing protocol
Definition: IRoute.h:36
inet::Ipv4Route::getInterfaceName
const char * getInterfaceName() const
Convenience method.
Definition: Ipv4Route.cc:100
inet::bgp::BgpRoutingTableEntry::getPathTypeString
static const std::string getPathTypeString(RoutingPathType type)
Definition: BgpRoutingTableEntry.h:64
inet::bgp::BgpRoutingTableEntry::localPreference
int localPreference
Definition: BgpRoutingTableEntry.h:25
inet::Ipv4Route::setNetmask
virtual void setNetmask(Ipv4Address _netmask)
Definition: Ipv4Route.h:65
inet::Ipv4Route::getDestination
const Ipv4Address & getDestination() const
Destination address prefix to match.
Definition: Ipv4Route.h:74
inet::Ipv4Address::ALLONES_ADDRESS
static const Ipv4Address ALLONES_ADDRESS
255.255.255.255
Definition: Ipv4Address.h:94
inet::Ipv4Route::getRoutingTable
IIpv4RoutingTable * getRoutingTable() const
Definition: Ipv4Route.h:59
inet::bgp::IGP
@ IGP
Definition: BgpCommon_m.h:56
inet::Ipv4Route::setGateway
virtual void setGateway(Ipv4Address _gateway)
Definition: Ipv4Route.h:66
type
removed type
Definition: IUdp-gates.txt:7
inet::Ipv4Route::getInterface
NetworkInterface * getInterface() const override
Next hop interface.
Definition: Ipv4Route.h:83
inet::Ipv4Route::setAdminDist
virtual void setAdminDist(unsigned int _adminDist) override
Definition: Ipv4Route.h:70
inet::bgp::BgpRoutingTableEntry::_pathType
RoutingPathType _pathType
Definition: BgpRoutingTableEntry.h:23
inet::Ipv4Route::getNetmask
const Ipv4Address & getNetmask() const
Represents length of prefix to match.
Definition: Ipv4Route.h:77
inet::IRoute::dBGPExternal
@ dBGPExternal
Definition: IRoute.h:64
inet::bgp::BgpRoutingTableEntry::getLocalPreference
int getLocalPreference(void) const
Definition: BgpRoutingTableEntry.h:39
inet::bgp::BgpRoutingTableEntry::_ASList
std::vector< AsId > _ASList
Definition: BgpRoutingTableEntry.h:24
inet::Ipv4Route::setInterface
virtual void setInterface(NetworkInterface *_interfacePtr) override
Definition: Ipv4Route.h:67
inet::Ipv4Route::getAdminDist
unsigned int getAdminDist() const
Route source specific preference value.
Definition: Ipv4Route.h:92
inet::Ipv4Route::setDestination
virtual void setDestination(Ipv4Address _dest)
Definition: Ipv4Route.h:64
inet::Ipv4Route::setSourceType
virtual void setSourceType(SourceType _source) override
Definition: Ipv4Route.h:68
inet::bgp::INCOMPLETE
@ INCOMPLETE
Definition: BgpCommon_m.h:58