INET Framework for OMNeT++/OMNEST
inet::Udp::SockDesc Struct Reference

#include <Udp.h>

Public Member Functions

 SockDesc (int sockId)
 
 ~SockDesc ()
 
MulticastMembershipTable::iterator findFirstMulticastMembership (const L3Address &multicastAddress)
 
MulticastMembershipfindMulticastMembership (const L3Address &multicastAddress, int interfaceId)
 
void addMulticastMembership (MulticastMembership *membership)
 
void deleteMulticastMembership (MulticastMembership *membership)
 

Public Attributes

int sockId = -1
 
bool isBound = false
 
bool onlyLocalPortIsSet = false
 
bool reuseAddr = false
 
L3Address localAddr
 
L3Address remoteAddr
 
int localPort = -1
 
int remotePort = -1
 
bool isBroadcast = false
 
int multicastOutputInterfaceId = -1
 
bool multicastLoop = true
 
int ttl = -1
 
short dscp = -1
 
short tos = -1
 
MulticastMembershipTable multicastMembershipTable
 

Constructor & Destructor Documentation

◆ SockDesc()

inet::Udp::SockDesc::SockDesc ( int  sockId)
1375 {
1376  sockId = sockId_;
1377 }

◆ ~SockDesc()

inet::Udp::SockDesc::~SockDesc ( )
1380 {
1381  for (auto& elem : multicastMembershipTable)
1382  delete elem;
1383 }

Member Function Documentation

◆ addMulticastMembership()

void inet::Udp::SockDesc::addMulticastMembership ( MulticastMembership membership)
1427 {
1428  auto it = lower_bound(multicastMembershipTable.begin(), multicastMembershipTable.end(), membership, lessMembership);
1429  multicastMembershipTable.insert(it, membership);
1430 }

Referenced by inet::Udp::joinMulticastGroups(), inet::Udp::joinMulticastSources(), and inet::Udp::setMulticastSourceFilter().

◆ deleteMulticastMembership()

void inet::Udp::SockDesc::deleteMulticastMembership ( MulticastMembership membership)
1433 {
1435  multicastMembershipTable.end());
1436  delete membership;
1437 }

Referenced by inet::Udp::leaveMulticastSources().

◆ findFirstMulticastMembership()

Udp::MulticastMembershipTable::iterator inet::Udp::SockDesc::findFirstMulticastMembership ( const L3Address multicastAddress)
1401 {
1402  MulticastMembership membership;
1403  membership.multicastAddress = multicastAddress;
1404  membership.interfaceId = 0; // less than any other interfaceId
1405 
1406  auto it = lower_bound(multicastMembershipTable.begin(), multicastMembershipTable.end(), &membership, lessMembership);
1407  if (it != multicastMembershipTable.end() && (*it)->multicastAddress == multicastAddress)
1408  return it;
1409  else
1410  return multicastMembershipTable.end();
1411 }

Referenced by inet::Udp::handleUpperPacket(), and inet::Udp::leaveMulticastGroups().

◆ findMulticastMembership()

Udp::MulticastMembership * inet::Udp::SockDesc::findMulticastMembership ( const L3Address multicastAddress,
int  interfaceId 
)
1414 {
1415  MulticastMembership membership;
1416  membership.multicastAddress = multicastAddress;
1417  membership.interfaceId = interfaceId;
1418 
1419  auto it = lower_bound(multicastMembershipTable.begin(), multicastMembershipTable.end(), &membership, lessMembership);
1420  if (it != multicastMembershipTable.end() && (*it)->multicastAddress == multicastAddress && (*it)->interfaceId == interfaceId)
1421  return *it;
1422  else
1423  return nullptr;
1424 }

Referenced by inet::Udp::blockMulticastSources(), inet::Udp::joinMulticastGroups(), inet::Udp::joinMulticastSources(), inet::Udp::leaveMulticastSources(), inet::Udp::setMulticastSourceFilter(), and inet::Udp::unblockMulticastSources().

Member Data Documentation

◆ dscp

short inet::Udp::SockDesc::dscp = -1

◆ isBound

bool inet::Udp::SockDesc::isBound = false

◆ isBroadcast

bool inet::Udp::SockDesc::isBroadcast = false

Referenced by inet::Udp::setBroadcast().

◆ localAddr

◆ localPort

◆ multicastLoop

bool inet::Udp::SockDesc::multicastLoop = true

◆ multicastMembershipTable

MulticastMembershipTable inet::Udp::SockDesc::multicastMembershipTable

◆ multicastOutputInterfaceId

int inet::Udp::SockDesc::multicastOutputInterfaceId = -1

◆ onlyLocalPortIsSet

bool inet::Udp::SockDesc::onlyLocalPortIsSet = false

◆ remoteAddr

◆ remotePort

◆ reuseAddr

bool inet::Udp::SockDesc::reuseAddr = false

◆ sockId

◆ tos

short inet::Udp::SockDesc::tos = -1

◆ ttl

int inet::Udp::SockDesc::ttl = -1

The documentation for this struct was generated from the following files:
inet::remove
void remove(std::vector< T > &v, const Tk &a)
Definition: stlutils.h:107
inet::Udp::SockDesc::sockId
int sockId
Definition: Udp.h:80
inet::Udp::SockDesc::multicastMembershipTable
MulticastMembershipTable multicastMembershipTable
Definition: Udp.h:94