SatOrbiterNetDeviceLora to be utilized in geostationary satellite. More...
#include "satellite-orbiter-net-device-lora.h"
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().
|
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().
|
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().
|
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.