INET Framework for OMNeT++/OMNEST
inet::PimDm::Route Struct Reference
Inheritance diagram for inet::PimDm::Route:

Public Member Functions

 Route (PimDm *owner, Ipv4Address source, Ipv4Address group)
 
virtual ~Route ()
 
DownstreamInterfacefindDownstreamInterfaceByInterfaceId (int interfaceId) const
 
DownstreamInterfacecreateDownstreamInterface (NetworkInterface *ie)
 
DownstreamInterfaceremoveDownstreamInterface (int interfaceId)
 
bool isOilistNull ()
 

Public Attributes

UpstreamInterfaceupstreamInterface
 
std::vector< DownstreamInterface * > downstreamInterfaces
 

Constructor & Destructor Documentation

◆ Route()

inet::PimDm::Route::Route ( PimDm owner,
Ipv4Address  source,
Ipv4Address  group 
)
inline
130  : RouteEntry(owner, source, group), upstreamInterface(nullptr) {}

◆ ~Route()

inet::PimDm::Route::~Route ( )
virtual
1752 {
1753  delete upstreamInterface;
1754  for (auto& elem : downstreamInterfaces)
1755  delete elem;
1756  downstreamInterfaces.clear();
1757 }

Member Function Documentation

◆ createDownstreamInterface()

PimDm::DownstreamInterface * inet::PimDm::Route::createDownstreamInterface ( NetworkInterface ie)
1769 {
1770  DownstreamInterface *downstream = new DownstreamInterface(this, ie);
1771  downstreamInterfaces.push_back(downstream);
1772  return downstream;
1773 }

Referenced by inet::PimDm::multicastReceiverAdded(), inet::PimDm::rpfInterfaceHasChanged(), and inet::PimDm::unroutableMulticastPacketArrived().

◆ findDownstreamInterfaceByInterfaceId()

PimDm::DownstreamInterface * inet::PimDm::Route::findDownstreamInterfaceByInterfaceId ( int  interfaceId) const
1760 {
1761  for (auto& elem : downstreamInterfaces)
1762  if (elem->ie->getInterfaceId() == interfaceId)
1763  return elem;
1764 
1765  return nullptr;
1766 }

Referenced by inet::PimDm::multicastPacketArrivedOnNonRpfInterface(), inet::PimDm::multicastReceiverAdded(), inet::PimDm::multicastReceiverRemoved(), inet::PimDm::processAssertPacket(), inet::PimDm::processGraft(), and inet::PimDm::processJoin().

◆ isOilistNull()

bool inet::PimDm::Route::isOilistNull ( )

◆ removeDownstreamInterface()

PimDm::DownstreamInterface * inet::PimDm::Route::removeDownstreamInterface ( int  interfaceId)
1776 {
1777  for (auto it = downstreamInterfaces.begin(); it != downstreamInterfaces.end(); ++it) {
1778  DownstreamInterface *downstream = *it;
1779  if (downstream->ie->getInterfaceId() == interfaceId) {
1780  downstreamInterfaces.erase(it);
1781  return downstream;
1782  }
1783  }
1784  return nullptr;
1785 }

Referenced by inet::PimDm::rpfInterfaceHasChanged().

Member Data Documentation

◆ downstreamInterfaces

◆ upstreamInterface


The documentation for this struct was generated from the following files:
inet::PimDm::Route::upstreamInterface
UpstreamInterface * upstreamInterface
Definition: PimDm.h:126
inet::PimDm::Route::downstreamInterfaces
std::vector< DownstreamInterface * > downstreamInterfaces
Definition: PimDm.h:127