Multicast Routing Modelling In OMNeT++
Public Member Functions | Private Member Functions | Private Attributes
MulticastIPRoute Class Reference

Class represents one entry of MulticastRoutingTable. More...

#include <MulticastIPRoute.h>

List of all members.

Public Member Functions

 MulticastIPRoute ()
virtual std::string info () const
virtual std::string detailedInfo () const
void setSource (IPAddress source)
void setGroup (IPAddress group)
void setRP (IPAddress RP)
void setGrt (PIMgrt *grt)
void setSat (PIMsat *sat)
void setSrt (PIMsrt *srt)
void setFlags (std::vector< flag > flags)
bool isFlagSet (flag fl)
void addFlag (flag fl)
void removeFlag (flag fl)
void setInInt (InterfaceEntry *interfacePtr, int intId, IPAddress nextHop)
void setInInt (inInterface inInt)
void setOutInt (InterfaceVector outInt)
void addOutInt (outInterface outInt)
bool isRpf (int intId)
bool isOilistNull ()
IPAddress getSource () const
IPAddress getGroup () const
IPAddress getRP () const
PIMgrt * getGrt () const
PIMsat * getSat () const
PIMsrt * getSrt () const
std::vector< flaggetFlags () const
inInterface getInInt () const
InterfaceEntry * getInIntPtr () const
int getInIntId () const
IPAddress getInIntNextHop () const
InterfaceVector getOutInt () const
outInterface getOutIntByIntId (int intId)
int getOutIdByIntId (int intId)
simtime_t getInstallTime () const
void setInstallTime (simtime_t time)
void setSequencenumber (int i)
unsigned int getSequencenumber () const

Private Member Functions

MulticastIPRouteoperator= (const MulticastIPRoute &obj)

Private Attributes

IPAddress source
IPAddress group
IPAddress RP
std::vector< flagflags
PIMgrt * grt
PIMsat * sat
PIMsrt * srt
inInterface inInt
InterfaceVector outInt
unsigned int sequencenumber
simtime_t installtime

Detailed Description

Class represents one entry of MulticastRoutingTable.

Definition at line 83 of file MulticastIPRoute.h.


Constructor & Destructor Documentation

Set all pointers to null

Definition at line 12 of file MulticastIPRoute.cc.

{
        inInt.intPtr = NULL;
        grt = NULL;
        sat = NULL;
        srt = NULL;
}

Member Function Documentation

void MulticastIPRoute::setSource ( IPAddress  source) [inline]

Set multicast source IP address

Definition at line 115 of file MulticastIPRoute.h.

void MulticastIPRoute::setGroup ( IPAddress  group) [inline]

Set multicast group IP address

Definition at line 116 of file MulticastIPRoute.h.

void MulticastIPRoute::setRP ( IPAddress  RP) [inline]

Set RP IP address

Definition at line 117 of file MulticastIPRoute.h.

void MulticastIPRoute::setGrt ( PIMgrt *  grt) [inline]

Set pointer to PimGraftTimer

Definition at line 118 of file MulticastIPRoute.h.

void MulticastIPRoute::setSat ( PIMsat *  sat) [inline]

Set pointer to PimSourceActiveTimer

Definition at line 119 of file MulticastIPRoute.h.

void MulticastIPRoute::setSrt ( PIMsrt *  srt) [inline]

Set pointer to PimStateRefreshTimer

Definition at line 120 of file MulticastIPRoute.h.

void MulticastIPRoute::setFlags ( std::vector< flag flags) [inline]

Set vector of flags (flag)

Definition at line 122 of file MulticastIPRoute.h.

Returns if flag is set to entry or not

Definition at line 52 of file MulticastIPRoute.cc.

{
        for(unsigned int i = 0; i < flags.size(); i++)
        {
                if (flags[i] == fl)
                        return true;
        }
        return false;
}

Add flag to ineterface

Definition at line 62 of file MulticastIPRoute.cc.

{
        if (!isFlagSet(fl))
                flags.push_back(fl);
}

Remove flag from ineterface

Definition at line 68 of file MulticastIPRoute.cc.

{
        for(unsigned int i = 0; i < flags.size(); i++)
        {
                if (flags[i] == fl)
                {
                        flags.erase(flags.begin() + i);
                        return;
                }
        }
}
void MulticastIPRoute::setInInt ( InterfaceEntry *  interfacePtr,
int  intId,
IPAddress  nextHop 
) [inline]

Set information about incoming interface

Definition at line 127 of file MulticastIPRoute.h.

void MulticastIPRoute::setInInt ( inInterface  inInt) [inline]

Set incoming interface

Definition at line 128 of file MulticastIPRoute.h.

void MulticastIPRoute::setOutInt ( InterfaceVector  outInt) [inline]

Set list of outgoing interfaces

Definition at line 130 of file MulticastIPRoute.h.

void MulticastIPRoute::addOutInt ( outInterface  outInt) [inline]

Add interface to list of outgoing interfaces

Definition at line 131 of file MulticastIPRoute.h.

bool MulticastIPRoute::isRpf ( int  intId) [inline]

Returns if given interface is RPF or not

Definition at line 133 of file MulticastIPRoute.h.

Returns true if list of outgoing interfaces is empty, otherwise false

Definition at line 91 of file MulticastIPRoute.cc.

{
        bool olistNull = true;
        for (unsigned int i = 0; i < outInt.size(); i++)
        {
                if (outInt[i].forwarding == Forward)
                {
                        olistNull = false;
                        break;
                }
        }
        return olistNull;
}
IPAddress MulticastIPRoute::getSource ( ) const [inline]

Get multicast source IP address

Definition at line 137 of file MulticastIPRoute.h.

IPAddress MulticastIPRoute::getGroup ( ) const [inline]

Get multicast group IP address

Definition at line 138 of file MulticastIPRoute.h.

IPAddress MulticastIPRoute::getRP ( ) const [inline]

Get RP IP address

Definition at line 139 of file MulticastIPRoute.h.

PIMgrt* MulticastIPRoute::getGrt ( ) const [inline]

Get pointer to PimGraftTimer

Definition at line 140 of file MulticastIPRoute.h.

PIMsat* MulticastIPRoute::getSat ( ) const [inline]

Get pointer to PimSourceActiveTimer

Definition at line 141 of file MulticastIPRoute.h.

PIMsrt* MulticastIPRoute::getSrt ( ) const [inline]

Get pointer to PimStateRefreshTimer

Definition at line 142 of file MulticastIPRoute.h.

std::vector<flag> MulticastIPRoute::getFlags ( ) const [inline]

Get list of route flags

Definition at line 143 of file MulticastIPRoute.h.

Get incoming interface

Definition at line 146 of file MulticastIPRoute.h.

InterfaceEntry* MulticastIPRoute::getInIntPtr ( ) const [inline]

Get pointer to incoming interface

Definition at line 147 of file MulticastIPRoute.h.

int MulticastIPRoute::getInIntId ( ) const [inline]

Get ID of incoming interface

Definition at line 148 of file MulticastIPRoute.h.

IPAddress MulticastIPRoute::getInIntNextHop ( ) const [inline]

Get IP address of next hop for incoming interface

Definition at line 149 of file MulticastIPRoute.h.

Get list of outgoing interfaces

Definition at line 152 of file MulticastIPRoute.h.

Get outgoing interface with given interface ID

Get sequence number of outgoing interface with given interface ID

Definition at line 80 of file MulticastIPRoute.cc.

{
        unsigned int i;
        for (i = 0; i < outInt.size(); i++)
        {
                if (outInt[i].intId == intId)
                        break;
        }
        return i;
}

Member Data Documentation

IPAddress MulticastIPRoute::source [private]

Source of multicast

Definition at line 86 of file MulticastIPRoute.h.

IPAddress MulticastIPRoute::group [private]

Multicast group

Definition at line 87 of file MulticastIPRoute.h.

IPAddress MulticastIPRoute::RP [private]

Randevous point

Definition at line 88 of file MulticastIPRoute.h.

std::vector<flag> MulticastIPRoute::flags [private]

Route flags

Definition at line 89 of file MulticastIPRoute.h.

PIMgrt* MulticastIPRoute::grt [private]

Pointer to Graft Retry Timer

Definition at line 91 of file MulticastIPRoute.h.

PIMsat* MulticastIPRoute::sat [private]

Pointer to Source Active Timer

Definition at line 92 of file MulticastIPRoute.h.

PIMsrt* MulticastIPRoute::srt [private]

Pointer to State Refresh Timer

Definition at line 93 of file MulticastIPRoute.h.

Incoming interface

Definition at line 95 of file MulticastIPRoute.h.

Outgoing interface

Definition at line 96 of file MulticastIPRoute.h.


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