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< SatIslArbiter > | GetArbiter () |
| 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< SatMac > | GetFeederMac (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< SatPhy > | GetFeederPhy (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< SatMac > | GetUserMac (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< SatPhy > | GetUserPhy (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< SatIslArbiter > | m_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... | |
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.
| ns3::SatOrbiterNetDeviceLora::SatOrbiterNetDeviceLora | ( | ) |
Default constructor.
Definition at line 74 of file satellite-orbiter-net-device-lora.cc.
|
virtual |
Connect a UT to this satellite.
| utAddress | MAC address of the UT to connect |
| beamId | beam 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.
|
virtual |
Disconnect a UT to this satellite.
| utAddress | MAC address of the UT to disconnect |
| beamId | beam 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.
|
static |
Get the type ID.
Definition at line 66 of file satellite-orbiter-net-device-lora.cc.
|
virtual |
Receive a packet from ISL.
| packet | The packet to send |
| destination | The MAC address of ground station that will receive the packet |
Implements ns3::SatOrbiterNetDevice.
Definition at line 233 of file satellite-orbiter-net-device-lora.cc.
References ns3::SatUplinkInfoTag::GetBeamId(), ns3::SatOrbiterNetDevice::m_broadcastReceived, ns3::SatOrbiterNetDevice::m_feederMac, ns3::SatOrbiterNetDevice::m_gwConnected, ns3::SatOrbiterNetDevice::m_islNetDevices, ns3::SatOrbiterNetDevice::m_isStatisticsTagsEnabled, ns3::SatOrbiterNetDevice::m_userMac, ns3::SatOrbiterNetDevice::m_utConnected, and ns3::SatOrbiterNetDevice::SendToIsl().
Here is the call graph for this function:
|
virtual |
Receive the packet from the lower layers, in network regeneration on forward link.
| packet | Packet received |
| feederAddress | MAC address of feeder that received this packet |
Implements ns3::SatOrbiterNetDevice.
Definition at line 156 of file satellite-orbiter-net-device-lora.cc.
References ns3::SatUplinkInfoTag::GetBeamId(), ns3::SatGroundStationAddressTag::GetGroundStationAddress(), ns3::SatUtils::GetPacketInfo(), ns3::SatOrbiterNetDevice::GetRxUtAddress(), ns3::SatDevLinkTimeTag::GetSenderTimestamp(), ns3::SatEnums::LD_FORWARD, ns3::SatEnums::LL_ND, ns3::SatOrbiterNetDevice::m_broadcastReceived, ns3::SatOrbiterNetDevice::m_islNetDevices, ns3::SatOrbiterNetDevice::m_isStatisticsTagsEnabled, ns3::SatOrbiterNetDevice::m_lastDelays, ns3::SatOrbiterNetDevice::m_nodeId, ns3::SatOrbiterNetDevice::m_packetTrace, ns3::SatOrbiterNetDevice::m_rxFeederLinkDelayTrace, ns3::SatOrbiterNetDevice::m_rxFeederLinkJitterTrace, ns3::SatOrbiterNetDevice::m_rxFeederTrace, ns3::SatOrbiterNetDevice::m_userMac, ns3::SatOrbiterNetDevice::m_utConnected, ns3::SatEnums::NT_SAT, ns3::SatEnums::PACKET_RECV, and ns3::SatOrbiterNetDevice::SendToIsl().
Here is the call graph for this function:
|
virtual |
Receive the packet from the lower layers, in network regeneration on return link.
| packet | Packet received |
| userAddress | MAC address of user that received this packet |
Implements ns3::SatOrbiterNetDevice.
Definition at line 81 of file satellite-orbiter-net-device-lora.cc.
References ns3::SatUplinkInfoTag::GetBeamId(), ns3::SatGroundStationAddressTag::GetGroundStationAddress(), ns3::SatUtils::GetPacketInfo(), ns3::SatOrbiterNetDevice::GetRxUtAddress(), ns3::SatDevLinkTimeTag::GetSenderTimestamp(), ns3::SatEnums::LD_RETURN, ns3::SatEnums::LL_ND, ns3::SatOrbiterNetDevice::m_feederMac, ns3::SatOrbiterNetDevice::m_gwConnected, ns3::SatOrbiterNetDevice::m_islNetDevices, ns3::SatOrbiterNetDevice::m_isStatisticsTagsEnabled, ns3::SatOrbiterNetDevice::m_lastDelays, ns3::SatOrbiterNetDevice::m_nodeId, ns3::SatOrbiterNetDevice::m_packetTrace, ns3::SatOrbiterNetDevice::m_rxUserLinkDelayTrace, ns3::SatOrbiterNetDevice::m_rxUserLinkJitterTrace, ns3::SatOrbiterNetDevice::m_rxUserTrace, ns3::SatEnums::NT_SAT, ns3::SatEnums::PACKET_RECV, and ns3::SatOrbiterNetDevice::SendToIsl().
Here is the call graph for this function:
|
virtual |
Send a control packet on the feeder link.
| msg | The control message to send |
| dest | The MAC destination |
| rxParams | Strucutre storing additional parameters |
Implements ns3::SatOrbiterNetDevice.
Definition at line 296 of file satellite-orbiter-net-device-lora.cc.