satellite-gw-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  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Sami Rantanen <sami.rantanen@magister.fi>
19  */
20 
21 #ifndef SATELLITE_GW_PHY_H
22 #define SATELLITE_GW_PHY_H
23 
25 #include "satellite-frame-conf.h"
26 #include "satellite-phy.h"
28 
29 #include <ns3/address.h>
30 #include <ns3/nstime.h>
31 #include <ns3/object.h>
32 #include <ns3/packet.h>
33 #include <ns3/ptr.h>
34 
35 #include <stdint.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 SatGwPhy : public SatPhy
52 {
53  public:
57  SatGwPhy(void);
58 
60  Ptr<SatLinkResults> linkResults,
61  SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters,
62  Ptr<SatSuperframeConf> superFrameConf);
63 
67  virtual ~SatGwPhy();
68 
72  static TypeId GetTypeId(void);
73  TypeId GetInstanceTypeId(void) const;
74  virtual void DoInitialize(void);
75 
79  virtual void DoDispose(void);
80 
86  virtual double GetAdditionalInterference();
87 
93  void PerformHandover(uint32_t satId, uint32_t beamId);
94 
95  protected:
101 
107 
108  private:
113  void AssignNewSatChannels();
114 
119 
124 
129 
134 };
135 
136 } // namespace ns3
137 
138 #endif /* SATELLITE_GW_PHY_H */
SatLinkDir_t
Link direction used for packet tracing.
The SatGwPhy models the physical layer of the satellite system (UT, GW, satellite)
TypeId GetInstanceTypeId(void) const
virtual double GetAdditionalInterference()
Get additional interference, used to compute final SINR at RX.
double m_imInterferenceCOverI
Intermodulation interference in linear.
SatGwPhy(void)
Default constructor.
virtual void DoInitialize(void)
Initialization of SatPhy.
double m_aciIfWrtNoisePercent
Configured adjacent channel interference wrt noise (percent).
virtual void DoDispose(void)
Dispose of this class instance.
void PerformHandover(uint32_t satId, uint32_t beamId)
Change underlying SatChannel to send and receive data from a new satellite and beam.
virtual ~SatGwPhy()
Destructor for SatGwPhy.
void AssignNewSatChannels()
Update the underlying SatChannel to send and receive data from the current beam (as described in the ...
double m_imInterferenceCOverIDb
Configured intermodulation interference in dB.
Time m_antennaReconfigurationDelay
Delay of antenna reconfiguration when performing handover.
virtual SatEnums::SatLinkDir_t GetSatLinkTxDir()
Get the link TX direction.
virtual SatEnums::SatLinkDir_t GetSatLinkRxDir()
Get the link RX direction.
static TypeId GetTypeId(void)
inherited from Object
The SatPhy models the basic physical layer of the satellite system.
Definition: satellite-phy.h:62
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Creation parameters for base PHY object.