INET Framework for OMNeT++/OMNEST
|
Generic multicast route in an IRoutingTable. More...
#include <IRoute.h>
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 IRoutingTable * | getRoutingTableAsGeneric () 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) |
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).
typedef std::vector<OutInterface *> inet::IMulticastRoute::OutInterfaceVector |
|
pure virtual |
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Cost to reach the destination.
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Multicast group address.
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Source address prefix to match.
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Prefix length to match.
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
The routing table in which this route is inserted, or nullptr.
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Source of route.
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Source type of the route.
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Disabled entries are ignored by routing until the became enabled again.
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Expired entries are ignored by routing, and may be periodically purged.
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
|
pure virtual |
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
Implemented in inet::IPv4MulticastRoute.
|
pure virtual |
|
static |
Referenced by inet::IPv4MulticastRoute::info().