ns3::SatGeoNetDevice Class Reference

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

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

+ Inheritance diagram for ns3::SatGeoNetDevice:
+ Collaboration diagram for ns3::SatGeoNetDevice:

Public Member Functions

 SatGeoNetDevice ()
 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 AddUserPhy (Ptr< SatPhy > phy, uint32_t beamId)
 Add the User Phy object for the beam. More...
 
void ConnectGw (Mac48Address gwAddress)
 Connect a GW to this satellite. More...
 
void ConnectUt (Mac48Address utAddress)
 Connect a UT to this satellite. More...
 
void DisconnectGw (Mac48Address gwAddress)
 Disconnect a GW to this satellite. More...
 
void DisconnectUt (Mac48Address utAddress)
 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...
 
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...
 
void ReceiveFromIsl (Ptr< Packet > packet, Mac48Address destination)
 Receive a packet from ISL. More...
 
void ReceivePacketFeeder (Ptr< Packet > packet, const Address &feederAddress)
 Receive the packet from the lower layers, in network regeneration on forward link. More...
 
void ReceivePacketUser (Ptr< Packet > packet, const Address &userAddress)
 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)
 
bool SendControlMsgToFeeder (Ptr< SatControlMessage > msg, const Address &dest, Ptr< SatSignalParameters > rxParams)
 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 SatGeoNetDevice. 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...
 

Private Member Functions

Address GetRxUtAddress (Ptr< Packet > packet, SatEnums::SatLinkDir_t ld)
 Get UT MAC address associated to this packet. More...
 

Private Attributes

Mac48Address m_address
 
std::map< uint32_t, Mac48Address > m_addressMapFeeder
 
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::set< Mac48Address > 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::set< Mac48Address > m_utConnected
 Set containing all connected UTs. More...
 

Detailed Description

SatGeoNetDevice to be utilized in geostationary satellite.

SatGeoNetDevice 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 54 of file satellite-geo-net-device.h.

Constructor & Destructor Documentation

◆ SatGeoNetDevice()

ns3::SatGeoNetDevice::SatGeoNetDevice ( )

Default constructor.

Definition at line 135 of file satellite-geo-net-device.cc.

Member Function Documentation

◆ AddFeederMac()

void ns3::SatGeoNetDevice::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 704 of file satellite-geo-net-device.cc.

References m_allFeederMac, and m_feederMac.

◆ AddFeederPair()

void ns3::SatGeoNetDevice::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 750 of file satellite-geo-net-device.cc.

References m_addressMapFeeder.

◆ AddFeederPhy()

void ns3::SatGeoNetDevice::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 658 of file satellite-geo-net-device.cc.

References m_feederPhy.

◆ AddIslsNetDevice()

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

Add a ISL Net Device to this satellite.

Parameters
islNetDevicesISL Net Device to add.

Definition at line 842 of file satellite-geo-net-device.cc.

References m_islNetDevices.

◆ AddLinkChangeCallback()

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

Definition at line 505 of file satellite-geo-net-device.cc.

◆ AddUserMac()

void ns3::SatGeoNetDevice::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 697 of file satellite-geo-net-device.cc.

References m_userMac.

◆ AddUserPhy()

void ns3::SatGeoNetDevice::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 651 of file satellite-geo-net-device.cc.

References m_userPhy.

◆ ConnectGw()

void ns3::SatGeoNetDevice::ConnectGw ( Mac48Address  gwAddress)

Connect a GW to this satellite.

Parameters
gwAddressMAC address of the GW to connect

Definition at line 790 of file satellite-geo-net-device.cc.

References m_gwConnected, and m_nodeId.

◆ ConnectUt()

void ns3::SatGeoNetDevice::ConnectUt ( Mac48Address  utAddress)

Connect a UT to this satellite.

Parameters
utAddressMAC address of the UT to connect

Definition at line 816 of file satellite-geo-net-device.cc.

References m_nodeId, and m_utConnected.

◆ DisconnectGw()

void ns3::SatGeoNetDevice::DisconnectGw ( Mac48Address  gwAddress)

Disconnect a GW to this satellite.

Parameters
gwAddressMAC address of the GW to disconnect

Definition at line 799 of file satellite-geo-net-device.cc.

References m_gwConnected.

◆ DisconnectUt()

void ns3::SatGeoNetDevice::DisconnectUt ( Mac48Address  utAddress)

Disconnect a UT to this satellite.

Parameters
utAddressMAC address of the UT to disconnect

Definition at line 825 of file satellite-geo-net-device.cc.

References m_utConnected.

◆ DoDispose()

void ns3::SatGeoNetDevice::DoDispose ( void  )
protectedvirtual

Dispose of this class instance.

Definition at line 616 of file satellite-geo-net-device.cc.

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

◆ GetAddress()

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

Definition at line 473 of file satellite-geo-net-device.cc.

References m_address.

◆ GetAllFeederMac()

std::map< uint32_t, Ptr< SatMac > > ns3::SatGeoNetDevice::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 744 of file satellite-geo-net-device.cc.

References m_allFeederMac.

◆ GetArbiter()

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

Get the arbiter for ISL routing.

Returns
The arbiter used on this satellite

Definition at line 866 of file satellite-geo-net-device.cc.

References m_arbiter.

◆ GetBroadcast()

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

Definition at line 518 of file satellite-geo-net-device.cc.

◆ GetChannel()

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

Definition at line 644 of file satellite-geo-net-device.cc.

◆ GetFeederMac() [1/2]

std::map< uint32_t, Ptr< SatMac > > ns3::SatGeoNetDevice::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 738 of file satellite-geo-net-device.cc.

References m_feederMac.

◆ GetFeederMac() [2/2]

Ptr< SatMac > ns3::SatGeoNetDevice::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 722 of file satellite-geo-net-device.cc.

References m_feederMac.

◆ GetFeederPhy() [1/2]

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

Get all Feeder Phy objects attached to this satellite.

Returns
All the Feeder Phy

Definition at line 691 of file satellite-geo-net-device.cc.

References m_feederPhy.

◆ GetFeederPhy() [2/2]

Ptr< SatPhy > ns3::SatGeoNetDevice::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 675 of file satellite-geo-net-device.cc.

References m_feederPhy, and m_userPhy.

◆ GetGwConnected()

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

The the list of MAC GW connected to this satellite.

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

Definition at line 808 of file satellite-geo-net-device.cc.

References m_gwConnected.

◆ GetIfIndex()

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

Definition at line 459 of file satellite-geo-net-device.cc.

References m_ifIndex.

◆ GetIslsNetDevices()

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

Get all the ISL Net devices.

Returns
Vector of all ISL Net Devices

Definition at line 850 of file satellite-geo-net-device.cc.

References m_islNetDevices.

◆ GetMtu()

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

Definition at line 491 of file satellite-geo-net-device.cc.

References m_mtu.

◆ GetMulticast() [1/2]

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

Definition at line 532 of file satellite-geo-net-device.cc.

◆ GetMulticast() [2/2]

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

Definition at line 539 of file satellite-geo-net-device.cc.

◆ GetNode()

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

Definition at line 589 of file satellite-geo-net-device.cc.

References m_node.

◆ GetRxUtAddress()

Address ns3::SatGeoNetDevice::GetRxUtAddress ( Ptr< Packet >  packet,
SatEnums::SatLinkDir_t  ld 
)
private

Get UT MAC address associated to this packet.

May be source or destination depending on link

Definition at line 766 of file satellite-geo-net-device.cc.

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

Referenced by ReceivePacketFeeder(), and ReceivePacketUser().

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

◆ GetSatelliteFeederAddress()

Mac48Address ns3::SatGeoNetDevice::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 756 of file satellite-geo-net-device.cc.

References m_addressMapFeeder.

◆ GetTypeId()

◆ GetUserMac() [1/2]

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

Get all User MAC objects attached to this satellite.

Returns
All the User MAC

Definition at line 732 of file satellite-geo-net-device.cc.

References m_userMac.

◆ GetUserMac() [2/2]

Ptr< SatMac > ns3::SatGeoNetDevice::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 712 of file satellite-geo-net-device.cc.

References m_userMac.

◆ GetUserPhy() [1/2]

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

Get all User Phy objects attached to this satellite.

Returns
All the User Phy

Definition at line 685 of file satellite-geo-net-device.cc.

References m_userPhy.

◆ GetUserPhy() [2/2]

Ptr< SatPhy > ns3::SatGeoNetDevice::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 665 of file satellite-geo-net-device.cc.

References m_userPhy.

◆ GetUtConnected()

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

The the list of UT MAC connected to this satellite.

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

Definition at line 834 of file satellite-geo-net-device.cc.

References m_utConnected.

◆ IsBridge()

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

Definition at line 553 of file satellite-geo-net-device.cc.

◆ IsBroadcast()

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

Definition at line 511 of file satellite-geo-net-device.cc.

◆ IsLinkUp()

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

Definition at line 498 of file satellite-geo-net-device.cc.

◆ IsMulticast()

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

Definition at line 525 of file satellite-geo-net-device.cc.

◆ IsPointToPoint()

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

Definition at line 546 of file satellite-geo-net-device.cc.

◆ NeedsArp()

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

Definition at line 603 of file satellite-geo-net-device.cc.

◆ ReceiveFeeder()

void ns3::SatGeoNetDevice::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 330 of file satellite-geo-net-device.cc.

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

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

+ Here is the caller graph for this function:

◆ ReceiveFromIsl()

void ns3::SatGeoNetDevice::ReceiveFromIsl ( Ptr< Packet >  packet,
Mac48Address  destination 
)

Receive a packet from ISL.

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

Definition at line 909 of file satellite-geo-net-device.cc.

References ns3::SatUplinkInfoTag::GetBeamId(), m_broadcastReceived, m_feederMac, m_gwConnected, m_islNetDevices, m_isStatisticsTagsEnabled, m_userMac, m_utConnected, and SendToIsl().

+ Here is the call graph for this function:

◆ ReceivePacketFeeder()

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

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

Parameters
packetPacket received
feederAddressMAC address of feeder that received this packet

Definition at line 219 of file satellite-geo-net-device.cc.

References ns3::SatUplinkInfoTag::GetBeamId(), ns3::SatGroundStationAddressTag::GetGroundStationAddress(), ns3::SatUtils::GetPacketInfo(), GetRxUtAddress(), ns3::SatDevLinkTimeTag::GetSenderTimestamp(), ns3::SatEnums::LD_FORWARD, ns3::SatEnums::LL_ND, m_broadcastReceived, m_islNetDevices, m_isStatisticsTagsEnabled, m_lastDelays, m_nodeId, m_packetTrace, m_rxFeederLinkDelayTrace, m_rxFeederLinkJitterTrace, m_rxFeederTrace, m_userMac, m_utConnected, ns3::SatEnums::NT_SAT, ns3::SatEnums::PACKET_RECV, and SendToIsl().

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

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

◆ ReceivePacketUser()

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

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

Parameters
packetPacket received
userAddressMAC address of user that received this packet

Definition at line 144 of file satellite-geo-net-device.cc.

References ns3::SatUplinkInfoTag::GetBeamId(), ns3::SatGroundStationAddressTag::GetGroundStationAddress(), ns3::SatUtils::GetPacketInfo(), GetRxUtAddress(), ns3::SatDevLinkTimeTag::GetSenderTimestamp(), ns3::SatEnums::LD_RETURN, ns3::SatEnums::LL_ND, m_feederMac, m_gwConnected, m_islNetDevices, m_isStatisticsTagsEnabled, m_lastDelays, m_nodeId, m_packetTrace, m_rxUserLinkDelayTrace, m_rxUserLinkJitterTrace, m_rxUserTrace, ns3::SatEnums::NT_SAT, ns3::SatEnums::PACKET_RECV, and SendToIsl().

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

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

◆ ReceiveUser()

void ns3::SatGeoNetDevice::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 296 of file satellite-geo-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::SatGeoHelper::AttachChannelsUser().

+ Here is the caller graph for this function:

◆ Send()

bool ns3::SatGeoNetDevice::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 560 of file satellite-geo-net-device.cc.

◆ SendControlMsgToFeeder()

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

◆ SendFrom()

bool ns3::SatGeoNetDevice::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 573 of file satellite-geo-net-device.cc.

◆ SendToIsl()

void ns3::SatGeoNetDevice::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 874 of file satellite-geo-net-device.cc.

References m_arbiter, m_islNetDevices, and m_nodeId.

Referenced by ReceiveFromIsl(), ReceivePacketFeeder(), and ReceivePacketUser().

+ Here is the caller graph for this function:

◆ SetAddress()

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

Definition at line 466 of file satellite-geo-net-device.cc.

References m_address.

Referenced by ns3::SatGeoHelper::Install().

+ Here is the caller graph for this function:

◆ SetArbiter()

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

Set the arbiter for ISL routing.

Parameters
arbiterThe arbiter to set

Definition at line 858 of file satellite-geo-net-device.cc.

References m_arbiter.

◆ SetForwardLinkRegenerationMode()

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

Set the forward link regeneration mode.

Parameters
forwardLinkRegenerationModeThe regeneration mode.

Definition at line 432 of file satellite-geo-net-device.cc.

References m_forwardLinkRegenerationMode.

◆ SetIfIndex()

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

Definition at line 452 of file satellite-geo-net-device.cc.

References m_ifIndex.

◆ SetMtu()

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

Definition at line 483 of file satellite-geo-net-device.cc.

References m_mtu.

◆ SetNode()

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

Definition at line 596 of file satellite-geo-net-device.cc.

References m_node.

◆ SetNodeId()

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

Definition at line 446 of file satellite-geo-net-device.cc.

References m_nodeId.

◆ SetPromiscReceiveCallback()

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

Definition at line 630 of file satellite-geo-net-device.cc.

References m_promiscCallback.

◆ SetReceiveCallback()

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

Definition at line 610 of file satellite-geo-net-device.cc.

◆ SetReceiveErrorModel()

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

Attach a receive ErrorModel to the SatGeoNetDevice.

Parameters
emPtr to the ErrorModel.

Definition at line 425 of file satellite-geo-net-device.cc.

References m_receiveErrorModel.

◆ SetReturnLinkRegenerationMode()

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

Set the return link regeneration mode.

Parameters
returnLinkRegenerationModeThe regeneration mode.

Definition at line 439 of file satellite-geo-net-device.cc.

References m_returnLinkRegenerationMode.

◆ SupportsSendFrom()

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

Definition at line 637 of file satellite-geo-net-device.cc.

Member Data Documentation

◆ m_address

Mac48Address ns3::SatGeoNetDevice::m_address
private

Definition at line 353 of file satellite-geo-net-device.h.

Referenced by GetAddress(), SendControlMsgToFeeder(), and SetAddress().

◆ m_addressMapFeeder

std::map<uint32_t, Mac48Address> ns3::SatGeoNetDevice::m_addressMapFeeder
private

Definition at line 362 of file satellite-geo-net-device.h.

Referenced by AddFeederPair(), DoDispose(), and GetSatelliteFeederAddress().

◆ m_allFeederMac

std::map<uint32_t, Ptr<SatMac> > ns3::SatGeoNetDevice::m_allFeederMac
private

Definition at line 360 of file satellite-geo-net-device.h.

Referenced by AddFeederMac(), and GetAllFeederMac().

◆ m_arbiter

Ptr<SatIslArbiter> ns3::SatGeoNetDevice::m_arbiter
private

Arbiter used to route on ISLs.

Definition at line 390 of file satellite-geo-net-device.h.

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

◆ m_broadcastReceived

std::set<uint32_t> ns3::SatGeoNetDevice::m_broadcastReceived
private

Keep a count of all incoming broadcast data to avoid handling them several times.

Definition at line 395 of file satellite-geo-net-device.h.

Referenced by ReceiveFromIsl(), and ReceivePacketFeeder().

◆ m_feederMac

std::map<uint32_t, Ptr<SatMac> > ns3::SatGeoNetDevice::m_feederMac
private

◆ m_feederPhy

std::map<uint32_t, Ptr<SatPhy> > ns3::SatGeoNetDevice::m_feederPhy
private

◆ m_forwardLinkRegenerationMode

SatEnums::RegenerationMode_t ns3::SatGeoNetDevice::m_forwardLinkRegenerationMode
private

Definition at line 364 of file satellite-geo-net-device.h.

Referenced by ReceiveFeeder(), and SetForwardLinkRegenerationMode().

◆ m_gwConnected

std::set<Mac48Address> ns3::SatGeoNetDevice::m_gwConnected
private

Set containing all connected GWs.

Definition at line 375 of file satellite-geo-net-device.h.

Referenced by ConnectGw(), DisconnectGw(), GetGwConnected(), ReceiveFromIsl(), and ReceivePacketUser().

◆ m_ifIndex

uint32_t ns3::SatGeoNetDevice::m_ifIndex
private

Definition at line 352 of file satellite-geo-net-device.h.

Referenced by GetIfIndex(), and SetIfIndex().

◆ m_islNetDevices

std::vector<Ptr<PointToPointIslNetDevice> > ns3::SatGeoNetDevice::m_islNetDevices
private

List of ISLs starting from this node.

Definition at line 385 of file satellite-geo-net-device.h.

Referenced by AddIslsNetDevice(), GetIslsNetDevices(), ReceiveFromIsl(), ReceivePacketFeeder(), ReceivePacketUser(), and SendToIsl().

◆ m_isStatisticsTagsEnabled

bool ns3::SatGeoNetDevice::m_isStatisticsTagsEnabled
private

◆ m_lastDelays

std::map<Mac48Address, Time> ns3::SatGeoNetDevice::m_lastDelays
private

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

Referenced by ReceivePacketFeeder(), and ReceivePacketUser().

◆ m_mtu

uint16_t ns3::SatGeoNetDevice::m_mtu
private

Definition at line 351 of file satellite-geo-net-device.h.

Referenced by GetMtu(), and SetMtu().

◆ m_node

Ptr<Node> ns3::SatGeoNetDevice::m_node
private

Definition at line 350 of file satellite-geo-net-device.h.

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

◆ m_nodeId

uint32_t ns3::SatGeoNetDevice::m_nodeId
private

◆ m_packetTrace

TracedCallback<Time, SatEnums::SatPacketEvent_t, SatEnums::SatNodeType_t, uint32_t, Mac48Address, SatEnums::SatLogLevel_t, SatEnums::SatLinkDir_t, std::string> ns3::SatGeoNetDevice::m_packetTrace
private

Definition at line 405 of file satellite-geo-net-device.h.

Referenced by GetTypeId(), ReceivePacketFeeder(), and ReceivePacketUser().

◆ m_promiscCallback

NetDevice::PromiscReceiveCallback ns3::SatGeoNetDevice::m_promiscCallback
private

Definition at line 349 of file satellite-geo-net-device.h.

Referenced by SetPromiscReceiveCallback().

◆ m_receiveErrorModel

Ptr<ErrorModel> ns3::SatGeoNetDevice::m_receiveErrorModel
private

Definition at line 354 of file satellite-geo-net-device.h.

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

◆ m_returnLinkRegenerationMode

SatEnums::RegenerationMode_t ns3::SatGeoNetDevice::m_returnLinkRegenerationMode
private

◆ m_rxCallback

NetDevice::ReceiveCallback ns3::SatGeoNetDevice::m_rxCallback
private

Definition at line 348 of file satellite-geo-net-device.h.

◆ m_rxFeederLinkDelayTrace

TracedCallback<const Time&, const Address&> ns3::SatGeoNetDevice::m_rxFeederLinkDelayTrace
private

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

Definition at line 434 of file satellite-geo-net-device.h.

Referenced by GetTypeId(), and ReceivePacketFeeder().

◆ m_rxFeederLinkJitterTrace

TracedCallback<const Time&, const Address&> ns3::SatGeoNetDevice::m_rxFeederLinkJitterTrace
private

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

Definition at line 440 of file satellite-geo-net-device.h.

Referenced by GetTypeId(), and ReceivePacketFeeder().

◆ m_rxFeederTrace

TracedCallback<Ptr<const Packet>, const Address&> ns3::SatGeoNetDevice::m_rxFeederTrace
private

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

Definition at line 422 of file satellite-geo-net-device.h.

Referenced by GetTypeId(), and ReceivePacketFeeder().

◆ m_rxUserLinkDelayTrace

TracedCallback<const Time&, const Address&> ns3::SatGeoNetDevice::m_rxUserLinkDelayTrace
private

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

Definition at line 446 of file satellite-geo-net-device.h.

Referenced by GetTypeId(), and ReceivePacketUser().

◆ m_rxUserLinkJitterTrace

TracedCallback<const Time&, const Address&> ns3::SatGeoNetDevice::m_rxUserLinkJitterTrace
private

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

Definition at line 452 of file satellite-geo-net-device.h.

Referenced by GetTypeId(), and ReceivePacketUser().

◆ m_rxUserTrace

TracedCallback<Ptr<const Packet>, const Address&> ns3::SatGeoNetDevice::m_rxUserTrace
private

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

Definition at line 428 of file satellite-geo-net-device.h.

Referenced by GetTypeId(), and ReceivePacketUser().

◆ m_signallingTxTrace

TracedCallback<Ptr<const Packet>, const Address&> ns3::SatGeoNetDevice::m_signallingTxTrace
private

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

Definition at line 416 of file satellite-geo-net-device.h.

Referenced by GetTypeId().

◆ m_txTrace

TracedCallback<Ptr<const Packet> > ns3::SatGeoNetDevice::m_txTrace
private

Traced callback for all packets received to be transmitted.

Definition at line 410 of file satellite-geo-net-device.h.

Referenced by GetTypeId().

◆ m_userMac

std::map<uint32_t, Ptr<SatMac> > ns3::SatGeoNetDevice::m_userMac
private

◆ m_userPhy

std::map<uint32_t, Ptr<SatPhy> > ns3::SatGeoNetDevice::m_userPhy
private

◆ m_utConnected

std::set<Mac48Address> ns3::SatGeoNetDevice::m_utConnected
private

Set containing all connected UTs.

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

Referenced by ConnectUt(), DisconnectUt(), GetUtConnected(), ReceiveFromIsl(), and ReceivePacketFeeder().


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