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 namespace ns3
36 {
37 
38 class SatPhyRxCarrier;
39 class SatPhyRxCarrierUplink;
40 class SatPhyRxCarrierPerSlot;
41 class SatPhyRxCarrierPerFrame;
42 class SatPhyRxCarrierPerWindow;
43 
49 class SatGwPhy : public SatPhy
50 {
51  public:
55  SatGwPhy(void);
56 
58  Ptr<SatLinkResults> linkResults,
59  SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters,
60  Ptr<SatSuperframeConf> superFrameConf,
61  SatEnums::RegenerationMode_t returnLinkRegenerationMode);
62 
66  virtual ~SatGwPhy();
67 
71  static TypeId GetTypeId(void);
72  TypeId GetInstanceTypeId(void) const;
73  virtual void DoInitialize(void);
74 
78  virtual void DoDispose(void);
79 
85  virtual double GetAdditionalInterference();
86 
87  protected:
93 
99 
100  private:
105 
110 
115 };
116 
117 } // namespace ns3
118 
119 #endif /* SATELLITE_GW_PHY_H */
SatLinkDir_t
Link direction used for packet tracing.
RegenerationMode_t
The regeneration mode used in satellites.
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.
virtual ~SatGwPhy()
Destructor for SatGwPhy.
double m_imInterferenceCOverIDb
Configured intermodulation interference in dB.
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:61
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Creation parameters for base PHY object.