Multicast Routing Modelling In OMNeT++
Public Member Functions | Protected Attributes
PimInterface Class Reference

Class represents one entry of PimInterfaceTable. More...

#include <PimInterfaceTable.h>

List of all members.

Public Member Functions

virtual std::string info () const
void setInterfaceID (int iftID)
void setInterfacePtr (InterfaceEntry *intPtr)
void setMode (PIMmode mode)
int getInterfaceID () const
InterfaceEntry * getInterfacePtr () const
PIMmode getMode () const
std::vector< IPAddress > getIntMulticastAddresses () const
void setIntMulticastAddresses (std::vector< IPAddress > intMulticastAddresses)
void addIntMulticastAddress (IPAddress addr)
void removeIntMulticastAddress (IPAddress addr)
bool isLocalIntMulticastAddress (IPAddress addr)
std::vector< IPAddress > deleteLocalIPs (std::vector< IPAddress > multicastAddr)

Protected Attributes

int intID
InterfaceEntry * intPtr
PIMmode mode
std::vector< IPAddress > intMulticastAddresses

Detailed Description

Class represents one entry of PimInterfaceTable.

One entry contains interfaces ID, pointer to the interface, PIM mode and multicast addresses assigned to the interface.

Definition at line 31 of file PimInterfaceTable.h.


Member Function Documentation

std::string PimInterface::info ( ) const [virtual]

Actually not in use

Definition at line 50 of file PimInterfaceTable.cc.

{
        std::stringstream out;
        out << "ID = " << intID << "; mode = " << mode;
        return out.str();
}
void PimInterface::setInterfaceID ( int  iftID) [inline]

Set identifier of interface.

Definition at line 45 of file PimInterfaceTable.h.

void PimInterface::setInterfacePtr ( InterfaceEntry *  intPtr) [inline]

Set pointer to interface.

Definition at line 46 of file PimInterfaceTable.h.

void PimInterface::setMode ( PIMmode  mode) [inline]

Set PIM mode configured on the interface.

Definition at line 47 of file PimInterfaceTable.h.

int PimInterface::getInterfaceID ( ) const [inline]

Get identifier of interface.

Definition at line 50 of file PimInterfaceTable.h.

InterfaceEntry* PimInterface::getInterfacePtr ( ) const [inline]

Get pointer to interface.

Definition at line 51 of file PimInterfaceTable.h.

PIMmode PimInterface::getMode ( ) const [inline]

Get PIM mode configured on the interface.

Definition at line 52 of file PimInterfaceTable.h.

std::vector<IPAddress> PimInterface::getIntMulticastAddresses ( ) const [inline]

Get list of multicast addresses assigned to the interface.

Definition at line 53 of file PimInterfaceTable.h.

void PimInterface::setIntMulticastAddresses ( std::vector< IPAddress >  intMulticastAddresses) [inline]

Set multicast addresses to the interface.

Definition at line 56 of file PimInterfaceTable.h.

void PimInterface::addIntMulticastAddress ( IPAddress  addr) [inline]

Add multicast address to the interface.

Definition at line 57 of file PimInterfaceTable.h.

void PimInterface::removeIntMulticastAddress ( IPAddress  addr)

REMOVE INTERFACE MULTICAST ADDRESS

The method removes given address from vector of multicast addresses.

Parameters:
addrIP address which should be deleted.

Definition at line 64 of file PimInterfaceTable.cc.

{
        for(unsigned int i = 0; i < intMulticastAddresses.size(); i++)
        {
                if (intMulticastAddresses[i] == addr)
                {
                        intMulticastAddresses.erase(intMulticastAddresses.begin() + i);
                        return;
                }
        }
}
bool PimInterface::isLocalIntMulticastAddress ( IPAddress  addr)

IS LOCAL INETRFACE MULTICAST ADDRESS

The method finds out if IP address is assigned to interface as local multicast address.

Parameters:
addrMulticast IP address which we are looking for.
Returns:
True if method finds the IP address on the list, return false otherwise.

Definition at line 116 of file PimInterfaceTable.cc.

{
        for(unsigned int i = 0; i < intMulticastAddresses.size(); i++)
        {
                if (intMulticastAddresses[i] == addr)
                        return true;
        }
        return false;
}
std::vector< IPAddress > PimInterface::deleteLocalIPs ( std::vector< IPAddress >  multicastAddr)

DELETE LOCAL IPs

The method removes all link local (224.0.0.0 to 224.0.0.255) multicast addresses from the list.

Parameters:
multicastAddrList of address which has to be checked.
Returns:
List of multicast address without link local IPs.
See also:
isLinkLocalMulticast()

Definition at line 86 of file PimInterfaceTable.cc.

{
        EV << "PimInterface::deleteLocalIPs" << endl;

        for(int j = 0; j < (multicastAddr.size()); j++)
                EV << multicastAddr[j] << ", ";
        EV << endl;

        std::vector<IPAddress> newMulticastAddresses;
        for(unsigned int i = 0; i < multicastAddr.size(); i++)
        {
                EV << multicastAddr[i] << endl;
                if (!multicastAddr[i].isLinkLocalMulticast())
                {
                        EV << "isLinkLocalMulticast" << endl;
                        newMulticastAddresses.push_back(multicastAddr[i]);
                }
        }
        EV << "Velikost vysledku: " << newMulticastAddresses.size() << endl;
        return newMulticastAddresses;
}

Member Data Documentation

int PimInterface::intID [protected]

Identification of interface.

Definition at line 34 of file PimInterfaceTable.h.

InterfaceEntry* PimInterface::intPtr [protected]

Pointer to interface table entry.

Definition at line 35 of file PimInterfaceTable.h.

Type of mode.

Definition at line 36 of file PimInterfaceTable.h.

std::vector<IPAddress> PimInterface::intMulticastAddresses [protected]

Multicast addresses assigned to interface.

Definition at line 37 of file PimInterfaceTable.h.


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