ns3::SatOrbiterNetDeviceLora Class Reference

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

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

+ Inheritance diagram for ns3::SatOrbiterNetDeviceLora:
+ Collaboration diagram for ns3::SatOrbiterNetDeviceLora:

Public Member Functions

 SatOrbiterNetDeviceLora ()
 Default constructor. More...
 
virtual void ConnectUt (Mac48Address utAddress, uint32_t beamId)
 Connect a UT to this satellite. More...
 
virtual void DisconnectUt (Mac48Address utAddress, uint32_t beamId)
 Disconnect a UT to this satellite. 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...
 
virtual bool SendControlMsgToFeeder (Ptr< SatControlMessage > msg, const Address &dest, Ptr< SatSignalParameters > rxParams)
 Send a control packet on the feeder link. More...
 
- Public Member Functions inherited from ns3::SatOrbiterNetDevice
 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...
 
void DisconnectGw (Mac48Address gwAddress, uint32_t beamId)
 Disconnect a GW 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...
 
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 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...
 
- Static Public Member Functions inherited from ns3::SatOrbiterNetDevice
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::SatOrbiterNetDevice
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 inherited from ns3::SatOrbiterNetDevice
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

SatOrbiterNetDeviceLora to be utilized in geostationary satellite.

SatOrbiterNetDeviceLora 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 55 of file satellite-orbiter-net-device-lora.h.

Constructor & Destructor Documentation

◆ SatOrbiterNetDeviceLora()

ns3::SatOrbiterNetDeviceLora::SatOrbiterNetDeviceLora ( )

Default constructor.

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

Member Function Documentation

◆ ConnectUt()

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

Connect a UT to this satellite.

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

Implements ns3::SatOrbiterNetDevice.

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

References ns3::SatOrbiterNetDevice::m_nodeId, and ns3::SatOrbiterNetDevice::m_utConnected.

◆ DisconnectUt()

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

Disconnect a UT to this satellite.

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

Implements ns3::SatOrbiterNetDevice.

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

References ns3::SatOrbiterNetDevice::m_utConnected.

◆ GetTypeId()

TypeId ns3::SatOrbiterNetDeviceLora::GetTypeId ( void  )
static

Get the type ID.

Returns
the object TypeId

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

◆ ReceiveFromIsl()

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

◆ ReceivePacketFeeder()

◆ ReceivePacketUser()

◆ SendControlMsgToFeeder()

bool ns3::SatOrbiterNetDeviceLora::SendControlMsgToFeeder ( Ptr< SatControlMessage msg,
const Address &  dest,
Ptr< SatSignalParameters rxParams 
)
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

Implements ns3::SatOrbiterNetDevice.

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


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