satellite-ut-phy.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2013 Magister Solutions Ltd.
4  * Copyright (c) 2018 CNES
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation;
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Author: Sami Rantanen <sami.rantanen@magister.fi>
20  * Author: Mathias Ettinger <mettinger@toulouse.viveris.com>
21  */
22 
23 #ifndef SATELLITE_UT_PHY_H
24 #define SATELLITE_UT_PHY_H
25 
27 #include "satellite-frame-conf.h"
28 #include "satellite-phy.h"
30 
31 #include <ns3/address.h>
32 #include <ns3/nstime.h>
33 #include <ns3/object.h>
34 #include <ns3/packet.h>
35 #include <ns3/ptr.h>
36 
37 namespace ns3
38 {
39 
40 class SatPhyRxCarrier;
41 class SatPhyRxCarrierUplink;
42 class SatPhyRxCarrierPerSlot;
43 class SatPhyRxCarrierPerFrame;
44 class SatPhyRxCarrierPerWindow;
45 
51 class SatUtPhy : public SatPhy
52 {
53  public:
57  SatUtPhy(void);
58 
67  Ptr<SatLinkResults> linkResults,
68  SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters,
69  Ptr<SatSuperframeConf> superFrameConf,
70  SatEnums::RegenerationMode_t forwardLinkRegenerationMode);
71 
75  virtual ~SatUtPhy();
76 
80  static TypeId GetTypeId(void);
81  TypeId GetInstanceTypeId(void) const;
85  virtual void DoInitialize(void);
86 
90  virtual void DoDispose(void);
91 
97  virtual double GetAdditionalInterference();
98 
103  void PerformHandover(uint32_t beamId);
104 
109  bool IsTxPossible(void) const;
110 
117  void Receive(Ptr<SatSignalParameters> rxParams, bool phyError);
118 
124  void UpdateSliceSubscription(uint8_t slice);
125 
126  private:
131  void AssignNewSatChannels();
132 
138 
144 
149 
154 
159 
163  std::set<uint8_t> m_slicesSubscribed;
164 };
165 
166 } // namespace ns3
167 
168 #endif /* SATELLITE_UT_PHY_H */
SatLinkDir_t
Link direction used for packet tracing.
RegenerationMode_t
The regeneration mode used in satellites.
The SatPhy models the basic physical layer of the satellite system.
Definition: satellite-phy.h:61
The SatUtPhy models the physical layer of the User Terminal of the satellite system.
double m_otherSysInterferenceCOverIDb
Configured other system interference in dB.
static TypeId GetTypeId(void)
inherited from Object
virtual ~SatUtPhy()
Destructor.
virtual double GetAdditionalInterference()
Get additional interference, used to compute final SINR at RX.
void PerformHandover(uint32_t beamId)
Change underlying SatChannel to send and receive data from a new beam.
void AssignNewSatChannels()
Update the underlying SatChannel to send and receive data from the current beam (as described in the ...
double m_otherSysInterferenceCOverI
Other system interference in linear.
virtual SatEnums::SatLinkDir_t GetSatLinkRxDir()
Get the link RX direction.
std::set< uint8_t > m_slicesSubscribed
The list of slices subscribed for this UT.
bool IsTxPossible(void) const
Inform whether or not the underlying Tx channel is properly configured for transmission.
void Receive(Ptr< SatSignalParameters > rxParams, bool phyError)
Receives packets from lower layer.
Time m_antennaReconfigurationDelay
Delay of antenna reconfiguration when performing handover.
virtual SatEnums::SatLinkDir_t GetSatLinkTxDir()
Get the link TX direction.
void UpdateSliceSubscription(uint8_t slice)
Updates the slices subscription list.
TypeId GetInstanceTypeId(void) const
virtual void DoInitialize(void)
Initialization of SatUtPhy.
virtual void DoDispose(void)
Dispose of SatUtPhy.
SatUtPhy(void)
Default constructor, which is not used.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Creation parameters for base PHY object.