ns3::SatOrbiterNetDevice Class Referenceabstract

SatOrbiterNetDevice to be utilized in geostationary satellite. More...

#include "satellite-orbiter-net-device.h"

+ Inheritance diagram for ns3::SatOrbiterNetDevice:
+ Collaboration diagram for ns3::SatOrbiterNetDevice:

Public Member Functions

 SatOrbiterNetDevice ()
 Default constructor. More...
 
void AddFeederMac (Ptr< SatMac > mac, Ptr< SatMac > macUsed, uint32_t beamId)
 Add the Feeder MAC object for the beam. More...
 
void AddFeederPair (uint32_t beamId, Mac48Address satelliteFeederAddress)
 Add an entry in the database to get satellite feeder address from beam ID. More...
 
void AddFeederPhy (Ptr< SatPhy > phy, uint32_t beamId)
 Add the Feeder Phy object for the beam. More...
 
void AddIslsNetDevice (Ptr< PointToPointIslNetDevice > islNetDevices)
 Add a ISL Net Device to this satellite. More...
 
virtual void AddLinkChangeCallback (Callback< void > callback)
 
void AddUserMac (Ptr< SatMac > mac, uint32_t beamId)
 Add the User MAC object for the beam. More...
 
void AddUserPair (uint32_t beamId, Mac48Address satelliteUserAddress)
 Add an entry in the database to get satellite user address from beam ID. More...
 
void AddUserPhy (Ptr< SatPhy > phy, uint32_t beamId)
 Add the User Phy object for the beam. More...
 
void ConnectGw (Mac48Address gwAddress, uint32_t beamId)
 Connect a GW to this satellite. More...
 
virtual void ConnectUt (Mac48Address utAddress, uint32_t beamId)=0
 Connect a UT to this satellite. More...
 
void DisconnectGw (Mac48Address gwAddress, uint32_t beamId)
 Disconnect a GW to this satellite. More...
 
virtual void DisconnectUt (Mac48Address utAddress, uint32_t beamId)=0
 Disconnect a UT to this satellite. More...
 
virtual Address GetAddress (void) const
 
std::map< uint32_t, Ptr< SatMac > > GetAllFeederMac ()
 Get all Feeder MAC objects attached to this satellite. More...
 
Ptr< SatIslArbiterGetArbiter ()
 Get the arbiter for ISL routing. More...
 
virtual Address GetBroadcast (void) const
 
virtual Ptr< Channel > GetChannel (void) const
 
std::map< uint32_t, Ptr< SatMac > > GetFeederMac ()
 Get all Feeder MAC objects attached to this satellite that are in use. More...
 
Ptr< SatMacGetFeederMac (uint32_t beamId)
 Get the Feeder MAC object for the beam. More...
 
std::map< uint32_t, Ptr< SatPhy > > GetFeederPhy ()
 Get all Feeder Phy objects attached to this satellite. More...
 
Ptr< SatPhyGetFeederPhy (uint32_t beamId)
 Get the Feeder Phy object for the beam. More...
 
std::set< Mac48Address > GetGwConnected ()
 The the list of MAC GW connected to this satellite. More...
 
virtual uint32_t GetIfIndex (void) const
 
std::vector< Ptr< PointToPointIslNetDevice > > GetIslsNetDevices ()
 Get all the ISL Net devices. More...
 
virtual uint16_t GetMtu (void) const
 
virtual Address GetMulticast (Ipv4Address multicastGroup) const
 
virtual Address GetMulticast (Ipv6Address addr) const
 
virtual Ptr< Node > GetNode (void) const
 
Mac48Address GetSatelliteFeederAddress (uint32_t beamId)
 Get satellite feeder entry from associated beam ID. More...
 
Mac48Address GetSatelliteUserAddress (uint32_t beamId)
 Get satellite user entry from associated beam ID. More...
 
std::map< uint32_t, Ptr< SatMac > > GetUserMac ()
 Get all User MAC objects attached to this satellite. More...
 
Ptr< SatMacGetUserMac (uint32_t beamId)
 Get the User MAC object for the beam. More...
 
std::map< uint32_t, Ptr< SatPhy > > GetUserPhy ()
 Get all User Phy objects attached to this satellite. More...
 
Ptr< SatPhyGetUserPhy (uint32_t beamId)
 Get the User Phy object for the beam. More...
 
std::set< Mac48Address > GetUtConnected ()
 The the list of UT MAC connected to this satellite. More...
 
virtual bool IsBridge (void) const
 
virtual bool IsBroadcast (void) const
 
virtual bool IsLinkUp (void) const
 
virtual bool IsMulticast (void) const
 
virtual bool IsPointToPoint (void) const
 
virtual bool NeedsArp (void) const
 
void ReceiveFeeder (SatPhy::PacketContainer_t packets, Ptr< SatSignalParameters > rxParams)
 Receive the packet from the lower layers. More...
 
virtual void ReceiveFromIsl (Ptr< Packet > packet, Mac48Address destination)=0
 Receive a packet from ISL. More...
 
virtual void ReceivePacketFeeder (Ptr< Packet > packet, const Address &feederAddress)=0
 Receive the packet from the lower layers, in network regeneration on forward link. More...
 
virtual void ReceivePacketUser (Ptr< Packet > packet, const Address &userAddress)=0
 Receive the packet from the lower layers, in network regeneration on return link. More...
 
void ReceiveUser (SatPhy::PacketContainer_t packets, Ptr< SatSignalParameters > rxParams)
 Receive the packet from the lower layers. More...
 
virtual bool Send (Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
 
virtual bool SendControlMsgToFeeder (Ptr< SatControlMessage > msg, const Address &dest, Ptr< SatSignalParameters > rxParams)=0
 Send a control packet on the feeder link. More...
 
virtual bool SendFrom (Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber)
 
void SendToIsl (Ptr< Packet > packet, Mac48Address destination)
 Send a packet to ISL. More...
 
virtual void SetAddress (Address address)
 
void SetArbiter (Ptr< SatIslArbiter > arbiter)
 Set the arbiter for ISL routing. More...
 
void SetForwardLinkRegenerationMode (SatEnums::RegenerationMode_t forwardLinkRegenerationMode)
 Set the forward link regeneration mode. More...
 
virtual void SetIfIndex (const uint32_t index)
 
virtual bool SetMtu (const uint16_t mtu)
 
virtual void SetNode (Ptr< Node > node)
 
void SetNodeId (uint32_t nodeId)
 
virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb)
 
virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb)
 
void SetReceiveErrorModel (Ptr< ErrorModel > em)
 Attach a receive ErrorModel to the SatOrbiterNetDevice. More...
 
void SetReturnLinkRegenerationMode (SatEnums::RegenerationMode_t returnLinkRegenerationMode)
 Set the return link regeneration mode. More...
 
virtual bool SupportsSendFrom (void) const
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type ID. More...
 

Protected Member Functions

virtual void DoDispose (void)
 Dispose of this class instance. More...
 
Address GetRxUtAddress (Ptr< Packet > packet, SatEnums::SatLinkDir_t ld)
 Get UT MAC address associated to this packet. More...
 

Protected Attributes

Mac48Address m_address
 
std::map< uint32_t, Mac48Address > m_addressMapFeeder
 
std::map< uint32_t, Mac48Address > m_addressMapUser
 
std::map< uint32_t, Ptr< SatMac > > m_allFeederMac
 
Ptr< SatIslArbiterm_arbiter
 Arbiter used to route on ISLs. More...
 
std::set< uint32_t > m_broadcastReceived
 Keep a count of all incoming broadcast data to avoid handling them several times. More...
 
std::map< uint32_t, Ptr< SatMac > > m_feederMac
 
std::map< uint32_t, Ptr< SatPhy > > m_feederPhy
 
SatEnums::RegenerationMode_t m_forwardLinkRegenerationMode
 
std::map< Mac48Address, uint32_t > m_gwConnected
 Set containing all connected GWs. More...
 
uint32_t m_ifIndex
 
std::vector< Ptr< PointToPointIslNetDevice > > m_islNetDevices
 List of ISLs starting from this node. More...
 
bool m_isStatisticsTagsEnabled
 
std::map< Mac48Address, Time > m_lastDelays
 
uint16_t m_mtu
 
Ptr< Node > m_node
 
uint32_t m_nodeId
 
TracedCallback< Time, SatEnums::SatPacketEvent_t, SatEnums::SatNodeType_t, uint32_t, Mac48Address, SatEnums::SatLogLevel_t, SatEnums::SatLinkDir_t, std::string > m_packetTrace
 
NetDevice::PromiscReceiveCallback m_promiscCallback
 
Ptr< ErrorModel > m_receiveErrorModel
 
SatEnums::RegenerationMode_t m_returnLinkRegenerationMode
 
NetDevice::ReceiveCallback m_rxCallback
 
TracedCallback< const Time &, const Address & > m_rxFeederLinkDelayTrace
 Traced callback for all received packets, including feeder link delay information and the address of the senders. More...
 
TracedCallback< const Time &, const Address & > m_rxFeederLinkJitterTrace
 Traced callback for all received packets, including feeder link jitter information and the address of the senders. More...
 
TracedCallback< Ptr< const Packet >, const Address & > m_rxFeederTrace
 Traced callback for all received packets on feeder, including the address of the senders. More...
 
TracedCallback< const Time &, const Address & > m_rxUserLinkDelayTrace
 Traced callback for all received packets, including user link delay information and the address of the senders. More...
 
TracedCallback< const Time &, const Address & > m_rxUserLinkJitterTrace
 Traced callback for all received packets, including user link jitter information and the address of the senders. More...
 
TracedCallback< Ptr< const Packet >, const Address & > m_rxUserTrace
 Traced callback for all received packets on user, including the address of the senders. More...
 
TracedCallback< Ptr< const Packet >, const Address & > m_signallingTxTrace
 Traced callback for all signalling (control message) packets sent, including the destination address. More...
 
TracedCallback< Ptr< const Packet > > m_txTrace
 Traced callback for all packets received to be transmitted. More...
 
std::map< uint32_t, Ptr< SatMac > > m_userMac
 
std::map< uint32_t, Ptr< SatPhy > > m_userPhy
 
std::map< Mac48Address, uint32_t > m_utConnected
 Set containing all connected UTs. More...
 

Detailed Description

SatOrbiterNetDevice to be utilized in geostationary satellite.

SatOrbiterNetDevice holds a set of phy layers towards user and feeder links; one pair of phy layers for each spot-beam. The SatNetDevice implements a simple switching between all user and feeder links modeling transparent payload.

Definition at line 57 of file satellite-orbiter-net-device.h.

Constructor & Destructor Documentation

◆ SatOrbiterNetDevice()

ns3::SatOrbiterNetDevice::SatOrbiterNetDevice ( )

Default constructor.

Definition at line 141 of file satellite-orbiter-net-device.cc.

Member Function Documentation

◆ AddFeederMac()

void ns3::SatOrbiterNetDevice::AddFeederMac ( Ptr< SatMac mac,
Ptr< SatMac macUsed,
uint32_t  beamId 
)

Add the Feeder MAC object for the beam.

Parameters
macfeeder MAC created for this beam
macUsedfeeder MAC that will be used to send data
beamIdthe id of the beam to use MAC for

Definition at line 489 of file satellite-orbiter-net-device.cc.

References m_allFeederMac, and m_feederMac.

◆ AddFeederPair()

void ns3::SatOrbiterNetDevice::AddFeederPair ( uint32_t  beamId,
Mac48Address  satelliteFeederAddress 
)

Add an entry in the database to get satellite feeder address from beam ID.

Parameters
beamIdBeam ID
satelliteFeederAddressMAC address on the satellite feeder

Definition at line 535 of file satellite-orbiter-net-device.cc.

References m_addressMapFeeder.

◆ AddFeederPhy()

void ns3::SatOrbiterNetDevice::AddFeederPhy ( Ptr< SatPhy phy,
uint32_t  beamId 
)

Add the Feeder Phy object for the beam.

Parameters
phyfeeder phy object to add.
beamIdthe id of the beam to use phy for

Definition at line 443 of file satellite-orbiter-net-device.cc.

References m_feederPhy.

◆ AddIslsNetDevice()

void ns3::SatOrbiterNetDevice::AddIslsNetDevice ( Ptr< PointToPointIslNetDevice islNetDevices)

Add a ISL Net Device to this satellite.

Parameters
islNetDevicesISL Net Device to add.

Definition at line 672 of file satellite-orbiter-net-device.cc.

References m_islNetDevices.

◆ AddLinkChangeCallback()

void ns3::SatOrbiterNetDevice::AddLinkChangeCallback ( Callback< void >  callback)
virtual

Definition at line 289 of file satellite-orbiter-net-device.cc.

◆ AddUserMac()

void ns3::SatOrbiterNetDevice::AddUserMac ( Ptr< SatMac mac,
uint32_t  beamId 
)

Add the User MAC object for the beam.

Parameters
macuser MAC object to add.
beamIdthe id of the beam to use MAC for

Definition at line 482 of file satellite-orbiter-net-device.cc.

References m_userMac.

◆ AddUserPair()

void ns3::SatOrbiterNetDevice::AddUserPair ( uint32_t  beamId,
Mac48Address  satelliteUserAddress 
)

Add an entry in the database to get satellite user address from beam ID.

Parameters
beamIdBeam ID
satelliteUserAddressMAC address on the satellite user

Definition at line 543 of file satellite-orbiter-net-device.cc.

References m_addressMapUser.

◆ AddUserPhy()

void ns3::SatOrbiterNetDevice::AddUserPhy ( Ptr< SatPhy phy,
uint32_t  beamId 
)

Add the User Phy object for the beam.

Parameters
phyuser phy object to add.
beamIdthe id of the beam to use phy for

Definition at line 436 of file satellite-orbiter-net-device.cc.

References m_userPhy.

◆ ConnectGw()

void ns3::SatOrbiterNetDevice::ConnectGw ( Mac48Address  gwAddress,
uint32_t  beamId 
)

Connect a GW to this satellite.

Parameters
gwAddressMAC address of the GW to connect
beamIdbeam used by satellite to reach this GW

Definition at line 599 of file satellite-orbiter-net-device.cc.

References GetFeederMac(), m_feederMac, m_gwConnected, and m_nodeId.

+ Here is the call graph for this function:

◆ ConnectUt()

virtual void ns3::SatOrbiterNetDevice::ConnectUt ( Mac48Address  utAddress,
uint32_t  beamId 
)
pure virtual

Connect a UT to this satellite.

Parameters
utAddressMAC address of the UT to connect
beamIdbeam used by satellite to reach this UT

Implemented in ns3::SatOrbiterNetDeviceLora, and ns3::SatOrbiterNetDeviceDvb.

◆ DisconnectGw()

void ns3::SatOrbiterNetDevice::DisconnectGw ( Mac48Address  gwAddress,
uint32_t  beamId 
)

Disconnect a GW to this satellite.

Parameters
gwAddressMAC address of the GW to disconnect
beamIdbeam used by satellite to reach this GW

Definition at line 621 of file satellite-orbiter-net-device.cc.

References GetFeederMac(), m_feederMac, and m_gwConnected.

+ Here is the call graph for this function:

◆ DisconnectUt()

virtual void ns3::SatOrbiterNetDevice::DisconnectUt ( Mac48Address  utAddress,
uint32_t  beamId 
)
pure virtual

Disconnect a UT to this satellite.

Parameters
utAddressMAC address of the UT to disconnect
beamIdbeam used by satellite to reach this UT

Implemented in ns3::SatOrbiterNetDeviceLora, and ns3::SatOrbiterNetDeviceDvb.

◆ DoDispose()

void ns3::SatOrbiterNetDevice::DoDispose ( void  )
protectedvirtual

Dispose of this class instance.

Definition at line 400 of file satellite-orbiter-net-device.cc.

References m_addressMapFeeder, m_addressMapUser, m_feederMac, m_feederPhy, m_node, m_receiveErrorModel, m_userMac, and m_userPhy.

◆ GetAddress()

Address ns3::SatOrbiterNetDevice::GetAddress ( void  ) const
virtual

Definition at line 257 of file satellite-orbiter-net-device.cc.

References m_address.

◆ GetAllFeederMac()

std::map< uint32_t, Ptr< SatMac > > ns3::SatOrbiterNetDevice::GetAllFeederMac ( )

Get all Feeder MAC objects attached to this satellite.

Returns
All the Feeder MAC. They may or not be used to send on return feeder

Definition at line 529 of file satellite-orbiter-net-device.cc.

References m_allFeederMac.

◆ GetArbiter()

Ptr< SatIslArbiter > ns3::SatOrbiterNetDevice::GetArbiter ( )

Get the arbiter for ISL routing.

Returns
The arbiter used on this satellite

Definition at line 696 of file satellite-orbiter-net-device.cc.

References m_arbiter.

◆ GetBroadcast()

Address ns3::SatOrbiterNetDevice::GetBroadcast ( void  ) const
virtual

Definition at line 302 of file satellite-orbiter-net-device.cc.

◆ GetChannel()

Ptr< Channel > ns3::SatOrbiterNetDevice::GetChannel ( void  ) const
virtual

Definition at line 429 of file satellite-orbiter-net-device.cc.

◆ GetFeederMac() [1/2]

std::map< uint32_t, Ptr< SatMac > > ns3::SatOrbiterNetDevice::GetFeederMac ( )

Get all Feeder MAC objects attached to this satellite that are in use.

Returns
All the Feeder MAC used to send on return feeder link

Definition at line 523 of file satellite-orbiter-net-device.cc.

References m_feederMac.

Referenced by ConnectGw(), and DisconnectGw().

+ Here is the caller graph for this function:

◆ GetFeederMac() [2/2]

Ptr< SatMac > ns3::SatOrbiterNetDevice::GetFeederMac ( uint32_t  beamId)

Get the Feeder MAC object for the beam.

Parameters
beamIdthe id of the beam to use MAC for
Returns
The Feeder MAC

Definition at line 507 of file satellite-orbiter-net-device.cc.

References m_feederMac.

◆ GetFeederPhy() [1/2]

std::map< uint32_t, Ptr< SatPhy > > ns3::SatOrbiterNetDevice::GetFeederPhy ( )

Get all Feeder Phy objects attached to this satellite.

Returns
All the Feeder Phy

Definition at line 476 of file satellite-orbiter-net-device.cc.

References m_feederPhy.

◆ GetFeederPhy() [2/2]

Ptr< SatPhy > ns3::SatOrbiterNetDevice::GetFeederPhy ( uint32_t  beamId)

Get the Feeder Phy object for the beam.

Parameters
beamIdthe id of the beam to use phy for
Returns
The Feeder Phy

Definition at line 460 of file satellite-orbiter-net-device.cc.

References m_feederPhy, and m_userPhy.

◆ GetGwConnected()

std::set< Mac48Address > ns3::SatOrbiterNetDevice::GetGwConnected ( )

The the list of MAC GW connected to this satellite.

The SatOrbiterNetDevice will send to a GW if connected, otherwise it will send to ISLs.

Definition at line 642 of file satellite-orbiter-net-device.cc.

References m_gwConnected.

◆ GetIfIndex()

uint32_t ns3::SatOrbiterNetDevice::GetIfIndex ( void  ) const
virtual

Definition at line 243 of file satellite-orbiter-net-device.cc.

References m_ifIndex.

◆ GetIslsNetDevices()

std::vector< Ptr< PointToPointIslNetDevice > > ns3::SatOrbiterNetDevice::GetIslsNetDevices ( )

Get all the ISL Net devices.

Returns
Vector of all ISL Net Devices

Definition at line 680 of file satellite-orbiter-net-device.cc.

References m_islNetDevices.

◆ GetMtu()

uint16_t ns3::SatOrbiterNetDevice::GetMtu ( void  ) const
virtual

Definition at line 275 of file satellite-orbiter-net-device.cc.

References m_mtu.

◆ GetMulticast() [1/2]

Address ns3::SatOrbiterNetDevice::GetMulticast ( Ipv4Address  multicastGroup) const
virtual

Definition at line 316 of file satellite-orbiter-net-device.cc.

◆ GetMulticast() [2/2]

Address ns3::SatOrbiterNetDevice::GetMulticast ( Ipv6Address  addr) const
virtual

Definition at line 323 of file satellite-orbiter-net-device.cc.

◆ GetNode()

Ptr< Node > ns3::SatOrbiterNetDevice::GetNode ( void  ) const
virtual

Definition at line 373 of file satellite-orbiter-net-device.cc.

References m_node.

◆ GetRxUtAddress()

Address ns3::SatOrbiterNetDevice::GetRxUtAddress ( Ptr< Packet >  packet,
SatEnums::SatLinkDir_t  ld 
)
protected

Get UT MAC address associated to this packet.

May be source or destination depending on link

Definition at line 575 of file satellite-orbiter-net-device.cc.

References ns3::SatAddressE2ETag::GetE2EDestAddress(), ns3::SatAddressE2ETag::GetE2ESourceAddress(), ns3::SatEnums::LD_FORWARD, and ns3::SatEnums::LD_RETURN.

Referenced by ns3::SatOrbiterNetDeviceDvb::ReceivePacketFeeder(), ns3::SatOrbiterNetDeviceLora::ReceivePacketFeeder(), ns3::SatOrbiterNetDeviceDvb::ReceivePacketUser(), and ns3::SatOrbiterNetDeviceLora::ReceivePacketUser().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetSatelliteFeederAddress()

Mac48Address ns3::SatOrbiterNetDevice::GetSatelliteFeederAddress ( uint32_t  beamId)

Get satellite feeder entry from associated beam ID.

Parameters
beamIdBeam ID
Returns
satellite feeder MAC associated to this beam

Definition at line 551 of file satellite-orbiter-net-device.cc.

References m_addressMapFeeder.

◆ GetSatelliteUserAddress()

Mac48Address ns3::SatOrbiterNetDevice::GetSatelliteUserAddress ( uint32_t  beamId)

Get satellite user entry from associated beam ID.

Parameters
beamIdBeam ID
Returns
satellite user MAC associated to this beam

Definition at line 563 of file satellite-orbiter-net-device.cc.

References m_addressMapUser.

◆ GetTypeId()

◆ GetUserMac() [1/2]

std::map< uint32_t, Ptr< SatMac > > ns3::SatOrbiterNetDevice::GetUserMac ( )

Get all User MAC objects attached to this satellite.

Returns
All the User MAC

Definition at line 517 of file satellite-orbiter-net-device.cc.

References m_userMac.

Referenced by ns3::SatOrbiterNetDeviceDvb::ConnectUt(), and ns3::SatOrbiterNetDeviceDvb::DisconnectUt().

+ Here is the caller graph for this function:

◆ GetUserMac() [2/2]

Ptr< SatMac > ns3::SatOrbiterNetDevice::GetUserMac ( uint32_t  beamId)

Get the User MAC object for the beam.

Parameters
beamIdthe id of the beam to use MAC for
Returns
The User MAC

Definition at line 497 of file satellite-orbiter-net-device.cc.

References m_userMac.

◆ GetUserPhy() [1/2]

std::map< uint32_t, Ptr< SatPhy > > ns3::SatOrbiterNetDevice::GetUserPhy ( )

Get all User Phy objects attached to this satellite.

Returns
All the User Phy

Definition at line 470 of file satellite-orbiter-net-device.cc.

References m_userPhy.

◆ GetUserPhy() [2/2]

Ptr< SatPhy > ns3::SatOrbiterNetDevice::GetUserPhy ( uint32_t  beamId)

Get the User Phy object for the beam.

Parameters
beamIdthe id of the beam to use phy for
Returns
The User Phy

Definition at line 450 of file satellite-orbiter-net-device.cc.

References m_userPhy.

◆ GetUtConnected()

std::set< Mac48Address > ns3::SatOrbiterNetDevice::GetUtConnected ( )

The the list of UT MAC connected to this satellite.

The SatOrbiterNetDevice will send to a UT if connected, otherwise it will send to ISLs.

Definition at line 657 of file satellite-orbiter-net-device.cc.

References m_utConnected.

◆ IsBridge()

bool ns3::SatOrbiterNetDevice::IsBridge ( void  ) const
virtual

Definition at line 337 of file satellite-orbiter-net-device.cc.

◆ IsBroadcast()

bool ns3::SatOrbiterNetDevice::IsBroadcast ( void  ) const
virtual

Definition at line 295 of file satellite-orbiter-net-device.cc.

◆ IsLinkUp()

bool ns3::SatOrbiterNetDevice::IsLinkUp ( void  ) const
virtual

Definition at line 282 of file satellite-orbiter-net-device.cc.

◆ IsMulticast()

bool ns3::SatOrbiterNetDevice::IsMulticast ( void  ) const
virtual

Definition at line 309 of file satellite-orbiter-net-device.cc.

◆ IsPointToPoint()

bool ns3::SatOrbiterNetDevice::IsPointToPoint ( void  ) const
virtual

Definition at line 330 of file satellite-orbiter-net-device.cc.

◆ NeedsArp()

bool ns3::SatOrbiterNetDevice::NeedsArp ( void  ) const
virtual

Definition at line 387 of file satellite-orbiter-net-device.cc.

◆ ReceiveFeeder()

void ns3::SatOrbiterNetDevice::ReceiveFeeder ( SatPhy::PacketContainer_t  packets,
Ptr< SatSignalParameters rxParams 
)

Receive the packet from the lower layers.

Parameters
packetsContainer of pointers to the packets to be received.
rxParamsPacket transmission parameters

Definition at line 185 of file satellite-orbiter-net-device.cc.

References m_forwardLinkRegenerationMode, m_userPhy, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::REGENERATION_PHY, and ns3::SatEnums::TRANSPARENT.

Referenced by ns3::SatOrbiterHelper::AttachChannelsFeeder().

+ Here is the caller graph for this function:

◆ ReceiveFromIsl()

virtual void ns3::SatOrbiterNetDevice::ReceiveFromIsl ( Ptr< Packet >  packet,
Mac48Address  destination 
)
pure virtual

Receive a packet from ISL.

Parameters
packetThe packet to send
destinationThe MAC address of ground station that will receive the packet

Implemented in ns3::SatOrbiterNetDeviceLora, and ns3::SatOrbiterNetDeviceDvb.

◆ ReceivePacketFeeder()

virtual void ns3::SatOrbiterNetDevice::ReceivePacketFeeder ( Ptr< Packet >  packet,
const Address &  feederAddress 
)
pure virtual

Receive the packet from the lower layers, in network regeneration on forward link.

Parameters
packetPacket received
feederAddressMAC address of feeder that received this packet

Implemented in ns3::SatOrbiterNetDeviceLora, and ns3::SatOrbiterNetDeviceDvb.

Referenced by ns3::SatOrbiterHelper::AttachChannelsFeeder().

+ Here is the caller graph for this function:

◆ ReceivePacketUser()

virtual void ns3::SatOrbiterNetDevice::ReceivePacketUser ( Ptr< Packet >  packet,
const Address &  userAddress 
)
pure virtual

Receive the packet from the lower layers, in network regeneration on return link.

Parameters
packetPacket received
userAddressMAC address of user that received this packet

Implemented in ns3::SatOrbiterNetDeviceLora, and ns3::SatOrbiterNetDeviceDvb.

Referenced by ns3::SatOrbiterHelperDvb::AttachChannelsUser().

+ Here is the caller graph for this function:

◆ ReceiveUser()

void ns3::SatOrbiterNetDevice::ReceiveUser ( SatPhy::PacketContainer_t  packets,
Ptr< SatSignalParameters rxParams 
)

Receive the packet from the lower layers.

Parameters
packetsContainer of pointers to the packets to be received.
rxParamsPacket transmission parameters

Definition at line 150 of file satellite-orbiter-net-device.cc.

References m_feederMac, m_feederPhy, m_returnLinkRegenerationMode, ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::REGENERATION_PHY, and ns3::SatEnums::TRANSPARENT.

Referenced by ns3::SatOrbiterHelperDvb::AttachChannelsUser(), and ns3::SatOrbiterHelperLora::AttachChannelsUser().

+ Here is the caller graph for this function:

◆ Send()

bool ns3::SatOrbiterNetDevice::Send ( Ptr< Packet >  packet,
const Address &  dest,
uint16_t  protocolNumber 
)
virtual

The satellite does not have higher protocol layers which utilize the Send method! Thus, this method should not be used!

Definition at line 344 of file satellite-orbiter-net-device.cc.

◆ SendControlMsgToFeeder()

virtual bool ns3::SatOrbiterNetDevice::SendControlMsgToFeeder ( Ptr< SatControlMessage msg,
const Address &  dest,
Ptr< SatSignalParameters rxParams 
)
pure virtual

Send a control packet on the feeder link.

Parameters
msgThe control message to send
destThe MAC destination
rxParamsStrucutre storing additional parameters
Returns
True if success

Implemented in ns3::SatOrbiterNetDeviceLora, and ns3::SatOrbiterNetDeviceDvb.

Referenced by ns3::SatOrbiterHelperDvb::AttachChannelsUser(), and ns3::SatOrbiterHelperLora::AttachChannelsUser().

+ Here is the caller graph for this function:

◆ SendFrom()

bool ns3::SatOrbiterNetDevice::SendFrom ( Ptr< Packet >  packet,
const Address &  source,
const Address &  dest,
uint16_t  protocolNumber 
)
virtual

The satellite does not have higher protocol layers which utilize the SendFrom method! Thus, this method should not be used!

Definition at line 357 of file satellite-orbiter-net-device.cc.

◆ SendToIsl()

void ns3::SatOrbiterNetDevice::SendToIsl ( Ptr< Packet >  packet,
Mac48Address  destination 
)

Send a packet to ISL.

Parameters
packetThe packet to send
destinationThe MAC address of ground station that will receive the packet

Definition at line 704 of file satellite-orbiter-net-device.cc.

References m_arbiter, m_islNetDevices, and m_nodeId.

Referenced by ns3::SatOrbiterNetDeviceDvb::ReceiveFromIsl(), ns3::SatOrbiterNetDeviceLora::ReceiveFromIsl(), ns3::SatOrbiterNetDeviceDvb::ReceivePacketFeeder(), ns3::SatOrbiterNetDeviceLora::ReceivePacketFeeder(), ns3::SatOrbiterNetDeviceDvb::ReceivePacketUser(), and ns3::SatOrbiterNetDeviceLora::ReceivePacketUser().

+ Here is the caller graph for this function:

◆ SetAddress()

void ns3::SatOrbiterNetDevice::SetAddress ( Address  address)
virtual

Definition at line 250 of file satellite-orbiter-net-device.cc.

References m_address.

◆ SetArbiter()

void ns3::SatOrbiterNetDevice::SetArbiter ( Ptr< SatIslArbiter arbiter)

Set the arbiter for ISL routing.

Parameters
arbiterThe arbiter to set

Definition at line 688 of file satellite-orbiter-net-device.cc.

References m_arbiter.

◆ SetForwardLinkRegenerationMode()

void ns3::SatOrbiterNetDevice::SetForwardLinkRegenerationMode ( SatEnums::RegenerationMode_t  forwardLinkRegenerationMode)

Set the forward link regeneration mode.

Parameters
forwardLinkRegenerationModeThe regeneration mode.

Definition at line 216 of file satellite-orbiter-net-device.cc.

References m_forwardLinkRegenerationMode.

◆ SetIfIndex()

void ns3::SatOrbiterNetDevice::SetIfIndex ( const uint32_t  index)
virtual

Definition at line 236 of file satellite-orbiter-net-device.cc.

References m_ifIndex.

◆ SetMtu()

bool ns3::SatOrbiterNetDevice::SetMtu ( const uint16_t  mtu)
virtual

Definition at line 267 of file satellite-orbiter-net-device.cc.

References m_mtu.

◆ SetNode()

void ns3::SatOrbiterNetDevice::SetNode ( Ptr< Node >  node)
virtual

Definition at line 380 of file satellite-orbiter-net-device.cc.

References m_node.

◆ SetNodeId()

void ns3::SatOrbiterNetDevice::SetNodeId ( uint32_t  nodeId)

Definition at line 230 of file satellite-orbiter-net-device.cc.

References m_nodeId.

◆ SetPromiscReceiveCallback()

void ns3::SatOrbiterNetDevice::SetPromiscReceiveCallback ( PromiscReceiveCallback  cb)
virtual

Definition at line 415 of file satellite-orbiter-net-device.cc.

References m_promiscCallback.

◆ SetReceiveCallback()

void ns3::SatOrbiterNetDevice::SetReceiveCallback ( NetDevice::ReceiveCallback  cb)
virtual

Definition at line 394 of file satellite-orbiter-net-device.cc.

◆ SetReceiveErrorModel()

void ns3::SatOrbiterNetDevice::SetReceiveErrorModel ( Ptr< ErrorModel >  em)

Attach a receive ErrorModel to the SatOrbiterNetDevice.

Parameters
emPtr to the ErrorModel.

Definition at line 209 of file satellite-orbiter-net-device.cc.

References m_receiveErrorModel.

◆ SetReturnLinkRegenerationMode()

void ns3::SatOrbiterNetDevice::SetReturnLinkRegenerationMode ( SatEnums::RegenerationMode_t  returnLinkRegenerationMode)

Set the return link regeneration mode.

Parameters
returnLinkRegenerationModeThe regeneration mode.

Definition at line 223 of file satellite-orbiter-net-device.cc.

References m_returnLinkRegenerationMode.

◆ SupportsSendFrom()

bool ns3::SatOrbiterNetDevice::SupportsSendFrom ( void  ) const
virtual

Definition at line 422 of file satellite-orbiter-net-device.cc.

Member Data Documentation

◆ m_address

Mac48Address ns3::SatOrbiterNetDevice::m_address
protected

◆ m_addressMapFeeder

std::map<uint32_t, Mac48Address> ns3::SatOrbiterNetDevice::m_addressMapFeeder
protected

◆ m_addressMapUser

std::map<uint32_t, Mac48Address> ns3::SatOrbiterNetDevice::m_addressMapUser
protected

Definition at line 384 of file satellite-orbiter-net-device.h.

Referenced by AddUserPair(), DoDispose(), and GetSatelliteUserAddress().

◆ m_allFeederMac

std::map<uint32_t, Ptr<SatMac> > ns3::SatOrbiterNetDevice::m_allFeederMac
protected

Definition at line 380 of file satellite-orbiter-net-device.h.

Referenced by AddFeederMac(), and GetAllFeederMac().

◆ m_arbiter

Ptr<SatIslArbiter> ns3::SatOrbiterNetDevice::m_arbiter
protected

Arbiter used to route on ISLs.

Definition at line 412 of file satellite-orbiter-net-device.h.

Referenced by GetArbiter(), SendToIsl(), and SetArbiter().

◆ m_broadcastReceived

std::set<uint32_t> ns3::SatOrbiterNetDevice::m_broadcastReceived
protected

◆ m_feederMac

◆ m_feederPhy

std::map<uint32_t, Ptr<SatPhy> > ns3::SatOrbiterNetDevice::m_feederPhy
protected

◆ m_forwardLinkRegenerationMode

SatEnums::RegenerationMode_t ns3::SatOrbiterNetDevice::m_forwardLinkRegenerationMode
protected

◆ m_gwConnected

std::map<Mac48Address, uint32_t> ns3::SatOrbiterNetDevice::m_gwConnected
protected

◆ m_ifIndex

uint32_t ns3::SatOrbiterNetDevice::m_ifIndex
protected

Definition at line 372 of file satellite-orbiter-net-device.h.

Referenced by GetIfIndex(), and SetIfIndex().

◆ m_islNetDevices

◆ m_isStatisticsTagsEnabled

◆ m_lastDelays

◆ m_mtu

uint16_t ns3::SatOrbiterNetDevice::m_mtu
protected

Definition at line 371 of file satellite-orbiter-net-device.h.

Referenced by GetMtu(), and SetMtu().

◆ m_node

Ptr<Node> ns3::SatOrbiterNetDevice::m_node
protected

Definition at line 370 of file satellite-orbiter-net-device.h.

Referenced by DoDispose(), GetNode(), and SetNode().

◆ m_nodeId

◆ m_packetTrace

◆ m_promiscCallback

NetDevice::PromiscReceiveCallback ns3::SatOrbiterNetDevice::m_promiscCallback
protected

Definition at line 369 of file satellite-orbiter-net-device.h.

Referenced by SetPromiscReceiveCallback().

◆ m_receiveErrorModel

Ptr<ErrorModel> ns3::SatOrbiterNetDevice::m_receiveErrorModel
protected

Definition at line 374 of file satellite-orbiter-net-device.h.

Referenced by DoDispose(), GetTypeId(), and SetReceiveErrorModel().

◆ m_returnLinkRegenerationMode

SatEnums::RegenerationMode_t ns3::SatOrbiterNetDevice::m_returnLinkRegenerationMode
protected

◆ m_rxCallback

NetDevice::ReceiveCallback ns3::SatOrbiterNetDevice::m_rxCallback
protected

Definition at line 368 of file satellite-orbiter-net-device.h.

◆ m_rxFeederLinkDelayTrace

TracedCallback<const Time&, const Address&> ns3::SatOrbiterNetDevice::m_rxFeederLinkDelayTrace
protected

Traced callback for all received packets, including feeder link delay information and the address of the senders.

Definition at line 456 of file satellite-orbiter-net-device.h.

Referenced by GetTypeId(), ns3::SatOrbiterNetDeviceDvb::ReceivePacketFeeder(), and ns3::SatOrbiterNetDeviceLora::ReceivePacketFeeder().

◆ m_rxFeederLinkJitterTrace

TracedCallback<const Time&, const Address&> ns3::SatOrbiterNetDevice::m_rxFeederLinkJitterTrace
protected

Traced callback for all received packets, including feeder link jitter information and the address of the senders.

Definition at line 462 of file satellite-orbiter-net-device.h.

Referenced by GetTypeId(), ns3::SatOrbiterNetDeviceDvb::ReceivePacketFeeder(), and ns3::SatOrbiterNetDeviceLora::ReceivePacketFeeder().

◆ m_rxFeederTrace

TracedCallback<Ptr<const Packet>, const Address&> ns3::SatOrbiterNetDevice::m_rxFeederTrace
protected

Traced callback for all received packets on feeder, including the address of the senders.

Definition at line 444 of file satellite-orbiter-net-device.h.

Referenced by GetTypeId(), ns3::SatOrbiterNetDeviceDvb::ReceivePacketFeeder(), and ns3::SatOrbiterNetDeviceLora::ReceivePacketFeeder().

◆ m_rxUserLinkDelayTrace

TracedCallback<const Time&, const Address&> ns3::SatOrbiterNetDevice::m_rxUserLinkDelayTrace
protected

Traced callback for all received packets, including user link delay information and the address of the senders.

Definition at line 468 of file satellite-orbiter-net-device.h.

Referenced by GetTypeId(), ns3::SatOrbiterNetDeviceDvb::ReceivePacketUser(), and ns3::SatOrbiterNetDeviceLora::ReceivePacketUser().

◆ m_rxUserLinkJitterTrace

TracedCallback<const Time&, const Address&> ns3::SatOrbiterNetDevice::m_rxUserLinkJitterTrace
protected

Traced callback for all received packets, including user link jitter information and the address of the senders.

Definition at line 474 of file satellite-orbiter-net-device.h.

Referenced by GetTypeId(), ns3::SatOrbiterNetDeviceDvb::ReceivePacketUser(), and ns3::SatOrbiterNetDeviceLora::ReceivePacketUser().

◆ m_rxUserTrace

TracedCallback<Ptr<const Packet>, const Address&> ns3::SatOrbiterNetDevice::m_rxUserTrace
protected

Traced callback for all received packets on user, including the address of the senders.

Definition at line 450 of file satellite-orbiter-net-device.h.

Referenced by GetTypeId(), ns3::SatOrbiterNetDeviceDvb::ReceivePacketUser(), and ns3::SatOrbiterNetDeviceLora::ReceivePacketUser().

◆ m_signallingTxTrace

TracedCallback<Ptr<const Packet>, const Address&> ns3::SatOrbiterNetDevice::m_signallingTxTrace
protected

Traced callback for all signalling (control message) packets sent, including the destination address.

Definition at line 438 of file satellite-orbiter-net-device.h.

Referenced by GetTypeId().

◆ m_txTrace

TracedCallback<Ptr<const Packet> > ns3::SatOrbiterNetDevice::m_txTrace
protected

Traced callback for all packets received to be transmitted.

Definition at line 432 of file satellite-orbiter-net-device.h.

Referenced by GetTypeId().

◆ m_userMac

◆ m_userPhy

std::map<uint32_t, Ptr<SatPhy> > ns3::SatOrbiterNetDevice::m_userPhy
protected

◆ m_utConnected


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