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

Generic multicast route in an IRoutingTable. More...

#include <IRoute.h>

Inheritance diagram for inet::IMulticastRoute:
inet::IPv4MulticastRoute

Classes

class  InInterface
 
class  OutInterface
 

Public Types

enum  SourceType { MANUAL, DVMRP, PIM_DM, PIM_SM }
 Specifies where the route comes from. More...
 
typedef std::vector< OutInterface * > OutInterfaceVector
 

Public Member Functions

virtual ~IMulticastRoute ()
 
virtual IRoutingTablegetRoutingTableAsGeneric () const =0
 The routing table in which this route is inserted, or nullptr. More...
 
virtual void setEnabled (bool enabled)=0
 
virtual void setOrigin (const L3Address &origin)=0
 
virtual void setPrefixLength (int len)=0
 
virtual void setMulticastGroup (const L3Address &group)=0
 
virtual void setInInterface (InInterface *_inInterface)=0
 
virtual void clearOutInterfaces ()=0
 
virtual void addOutInterface (OutInterface *outInterface)=0
 
virtual bool removeOutInterface (const InterfaceEntry *ie)=0
 
virtual void removeOutInterface (unsigned int i)=0
 
virtual void setSource (cObject *source)=0
 
virtual void setSourceType (SourceType type)=0
 
virtual void setMetric (int metric)=0
 
virtual bool isEnabled () const =0
 Disabled entries are ignored by routing until the became enabled again. More...
 
virtual bool isExpired () const =0
 Expired entries are ignored by routing, and may be periodically purged. More...
 
virtual L3Address getOriginAsGeneric () const =0
 Source address prefix to match. More...
 
virtual int getPrefixLength () const =0
 Prefix length to match. More...
 
virtual L3Address getMulticastGroupAsGeneric () const =0
 Multicast group address. 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...
 

Static Public Member Functions

static const char * sourceTypeName (SourceType sourceType)
 

Detailed Description

Generic multicast route in an IRoutingTable.

Multicast datagrams are forwarded along the edges of a multicast tree. The tree might depend on the multicast group and the source (origin) of the multicast datagram.

The forwarding algorithm chooses the route according the to origin (source address) and multicast group (destination address) of the received datagram. The route might specify a prefix of the origin and a multicast group to be matched.

Then the forwarding algorithm copies the datagrams arrived on the parent (upstream) interface to the child interfaces (downstream). If there are no downstream routers on a child interface (i.e. it is a leaf in the multicast routing tree), then the datagram is forwarded only if there are listeners of the multicast group on that link (TRPB routing).

See also
IRoutingTable, IPv4MulticastRoute, IPv6MulticastRoute

Member Typedef Documentation

Member Enumeration Documentation

Specifies where the route comes from.

Enumerator
MANUAL 

manually added static route

DVMRP 

managed by DVMRP router

PIM_DM 

managed by PIM-DM router

PIM_SM 

managed by PIM-SM router

153  {
154  MANUAL,
155  DVMRP,
156  PIM_DM,
157  PIM_SM,
158  };
managed by PIM-DM router
Definition: IRoute.h:156
managed by DVMRP router
Definition: IRoute.h:155
managed by PIM-SM router
Definition: IRoute.h:157
manually added static route
Definition: IRoute.h:154

Constructor & Destructor Documentation

virtual inet::IMulticastRoute::~IMulticastRoute ( )
inlinevirtual
196 {}

Member Function Documentation

virtual void inet::IMulticastRoute::addOutInterface ( OutInterface outInterface)
pure virtual

Implemented in inet::IPv4MulticastRoute.

virtual void inet::IMulticastRoute::clearOutInterfaces ( )
pure virtual

Implemented in inet::IPv4MulticastRoute.

virtual int inet::IMulticastRoute::getMetric ( ) const
pure virtual

Cost to reach the destination.

Implemented in inet::IPv4MulticastRoute.

virtual L3Address inet::IMulticastRoute::getMulticastGroupAsGeneric ( ) const
pure virtual

Multicast group address.

Implemented in inet::IPv4MulticastRoute.

virtual L3Address inet::IMulticastRoute::getOriginAsGeneric ( ) const
pure virtual

Source address prefix to match.

Implemented in inet::IPv4MulticastRoute.

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

Prefix length to match.

Implemented in inet::IPv4MulticastRoute.

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

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

Implemented in inet::IPv4MulticastRoute.

virtual cObject* inet::IMulticastRoute::getSource ( ) const
pure virtual

Source of route.

Implemented in inet::IPv4MulticastRoute.

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

Source type of the route.

Implemented in inet::IPv4MulticastRoute.

virtual bool inet::IMulticastRoute::isEnabled ( ) const
pure virtual

Disabled entries are ignored by routing until the became enabled again.

Implemented in inet::IPv4MulticastRoute.

virtual bool inet::IMulticastRoute::isExpired ( ) const
pure virtual

Expired entries are ignored by routing, and may be periodically purged.

Implemented in inet::IPv4MulticastRoute.

virtual bool inet::IMulticastRoute::removeOutInterface ( const InterfaceEntry ie)
pure virtual

Implemented in inet::IPv4MulticastRoute.

virtual void inet::IMulticastRoute::removeOutInterface ( unsigned int  i)
pure virtual

Implemented in inet::IPv4MulticastRoute.

virtual void inet::IMulticastRoute::setEnabled ( bool  enabled)
pure virtual

Implemented in inet::IPv4MulticastRoute.

virtual void inet::IMulticastRoute::setInInterface ( InInterface _inInterface)
pure virtual
virtual void inet::IMulticastRoute::setMetric ( int  metric)
pure virtual

Implemented in inet::IPv4MulticastRoute.

virtual void inet::IMulticastRoute::setMulticastGroup ( const L3Address group)
pure virtual

Implemented in inet::IPv4MulticastRoute.

virtual void inet::IMulticastRoute::setOrigin ( const L3Address origin)
pure virtual

Implemented in inet::IPv4MulticastRoute.

virtual void inet::IMulticastRoute::setPrefixLength ( int  len)
pure virtual

Implemented in inet::IPv4MulticastRoute.

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

Implemented in inet::IPv4MulticastRoute.

virtual void inet::IMulticastRoute::setSourceType ( SourceType  type)
pure virtual
const char * inet::IMulticastRoute::sourceTypeName ( SourceType  sourceType)
static

Referenced by inet::IPv4MulticastRoute::info().

70 {
71  switch (sourceType) {
72  case MANUAL:
73  return "MANUAL";
74 
75  case DVMRP:
76  return "DVRMP";
77 
78  case PIM_SM:
79  return "PIM-SM";
80 
81  default:
82  return "???";
83  }
84 }
managed by DVMRP router
Definition: IRoute.h:155
managed by PIM-SM router
Definition: IRoute.h:157
manually added static route
Definition: IRoute.h:154

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