INET Framework for OMNeT++/OMNEST
inet::PimSm::PimsmInterface Struct Reference
Inheritance diagram for inet::PimSm::PimsmInterface:
inet::PimSm::DownstreamInterface inet::PimSm::UpstreamInterface

Public Types

enum  Flags { RECEIVER_INCLUDE = 1 << 0, RECEIVER_EXCLUDE = 1 << 1, COULD_ASSERT = 1 << 2, ASSERT_TRACKING_DESIRED = 1 << 3 }
 

Public Member Functions

 PimsmInterface (Route *owner, NetworkInterface *ie)
 
virtual ~PimsmInterface ()
 
Routeroute () const
 
PimSmpimsm () const
 
void startExpiryTimer (double holdTime)
 
bool localReceiverInclude () const
 
void setLocalReceiverInclude (bool value)
 
bool localReceiverExclude () const
 
void setLocalReceiverExclude (bool value)
 
bool couldAssert () const
 
void setCouldAssert (bool value)
 
bool assertTrackingDesired () const
 
void setAssertTrackingDesired (bool value)
 
bool pimInclude () const
 
bool pimExclude () const
 

Public Attributes

cMessage * expiryTimer
 

Member Enumeration Documentation

◆ Flags

Enumerator
RECEIVER_INCLUDE 
RECEIVER_EXCLUDE 
COULD_ASSERT 
ASSERT_TRACKING_DESIRED 
48  {
49  RECEIVER_INCLUDE = 1 << 0, // local_receiver_include(S,G,I) or local_receiver_include(*,G,I)
50  RECEIVER_EXCLUDE = 1 << 1, // local_receiver_exclude(S,G,I)
51  COULD_ASSERT = 1 << 2, // CouldAssert(S,G,I)
52  ASSERT_TRACKING_DESIRED = 1 << 3, // AssertTrackingDesired(S,G,I)
53  };

Constructor & Destructor Documentation

◆ PimsmInterface()

inet::PimSm::PimsmInterface::PimsmInterface ( Route owner,
NetworkInterface ie 
)
2029  : Interface(owner, ie), expiryTimer(nullptr)
2030 {
2031 }

◆ ~PimsmInterface()

inet::PimSm::PimsmInterface::~PimsmInterface ( )
virtual
2034 {
2035  pimsm()->cancelAndDelete(expiryTimer);
2036  pimsm()->cancelAndDelete(assertTimer);
2037 }

Member Function Documentation

◆ assertTrackingDesired()

bool inet::PimSm::PimsmInterface::assertTrackingDesired ( ) const
inline

◆ couldAssert()

bool inet::PimSm::PimsmInterface::couldAssert ( ) const
inline

◆ localReceiverExclude()

bool inet::PimSm::PimsmInterface::localReceiverExclude ( ) const
inline
63 { return isFlagSet(RECEIVER_EXCLUDE); }

◆ localReceiverInclude()

bool inet::PimSm::PimsmInterface::localReceiverInclude ( ) const
inline
61 { return isFlagSet(RECEIVER_INCLUDE); }

◆ pimExclude()

bool inet::PimSm::PimsmInterface::pimExclude ( ) const
inline
77  {
78  return localReceiverExclude() &&
79  (( /*I_am_DR AND*/ assertState != I_LOST_ASSERT) || assertState == I_WON_ASSERT);
80  }

◆ pimInclude()

bool inet::PimSm::PimsmInterface::pimInclude ( ) const
inline
71  {
72  return localReceiverInclude() &&
73  (( /*I_am_DR AND*/ assertState != I_LOST_ASSERT) || assertState == I_WON_ASSERT);
74  }

Referenced by inet::PimSm::DownstreamInterface::isInInheritedOlist().

◆ pimsm()

PimSm* inet::PimSm::PimsmInterface::pimsm ( ) const
inline
58 { return check_and_cast<PimSm *>(owner->owner); }

◆ route()

Route* inet::PimSm::PimsmInterface::route ( ) const
inline

◆ setAssertTrackingDesired()

void inet::PimSm::PimsmInterface::setAssertTrackingDesired ( bool  value)
inline
68 { setFlag(ASSERT_TRACKING_DESIRED, value); }

◆ setCouldAssert()

void inet::PimSm::PimsmInterface::setCouldAssert ( bool  value)
inline
66 { setFlag(COULD_ASSERT, value); }

◆ setLocalReceiverExclude()

void inet::PimSm::PimsmInterface::setLocalReceiverExclude ( bool  value)
inline
64 { setFlag(RECEIVER_EXCLUDE, value); }

◆ setLocalReceiverInclude()

void inet::PimSm::PimsmInterface::setLocalReceiverInclude ( bool  value)
inline

◆ startExpiryTimer()

void inet::PimSm::PimsmInterface::startExpiryTimer ( double  holdTime)
2040 {
2041  expiryTimer = new cMessage("PIMExpiryTimer", ExpiryTimer);
2042  expiryTimer->setContextPointer(this);
2043  pimsm()->scheduleAfter(holdTime, expiryTimer);
2044 }

Referenced by inet::PimSm::processJoinG(), and inet::PimSm::processJoinSG().

Member Data Documentation

◆ expiryTimer


The documentation for this struct was generated from the following files:
inet::PimSm::PimsmInterface::ASSERT_TRACKING_DESIRED
@ ASSERT_TRACKING_DESIRED
Definition: PimSm.h:52
inet::PimSm::PimsmInterface::pimsm
PimSm * pimsm() const
Definition: PimSm.h:58
inet::PimSm::PimsmInterface::expiryTimer
cMessage * expiryTimer
Definition: PimSm.h:46
inet::PimSm::PimsmInterface::COULD_ASSERT
@ COULD_ASSERT
Definition: PimSm.h:51
inet::PimSm::PimsmInterface::localReceiverInclude
bool localReceiverInclude() const
Definition: PimSm.h:61
inet::PimSm::PimsmInterface::RECEIVER_EXCLUDE
@ RECEIVER_EXCLUDE
Definition: PimSm.h:50
inet::PimBase::ExpiryTimer
@ ExpiryTimer
Definition: PimBase.h:139
inet::PimBase::holdTime
double holdTime
Definition: PimBase.h:158
inet::PimSm::PimsmInterface::RECEIVER_INCLUDE
@ RECEIVER_INCLUDE
Definition: PimSm.h:49
inet::PimSm::PimsmInterface::localReceiverExclude
bool localReceiverExclude() const
Definition: PimSm.h:63