Loading...
Searching...
No Matches
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
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#include <set>
38#include <stdint.h>
39
40namespace ns3
41{
42
43class SatPhyRxCarrier;
48
54class SatUtPhy : public SatPhy
55{
56 public:
60 SatUtPhy(void);
61
70 Ptr<SatLinkResults> linkResults,
71 SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters,
72 Ptr<SatSuperframeConf> superFrameConf);
73
82 virtual void NotifyConstructionCompleted() override;
83
87 virtual ~SatUtPhy();
88
92 static TypeId GetTypeId(void);
96 virtual void DoInitialize(void);
97
101 virtual void DoDispose(void);
102
108 virtual double GetAdditionalInterference();
109
115 void PerformHandover(uint32_t satId, uint32_t beamId);
116
121 bool IsTxPossible(void) const;
122
129 void Receive(Ptr<SatSignalParameters> rxParams, bool phyError);
130
136 void UpdateSliceSubscription(uint8_t slice);
137
138 private:
142 Ptr<SatLinkResults> m_linkResults;
143
147 SatPhyRxCarrierConf::RxCarrierCreateParams_s m_parameters;
148
152 Ptr<SatSuperframeConf> m_superFrameConf;
153
159
165
171
176
181
186
190 std::set<uint8_t> m_slicesSubscribed;
191};
192
193} // namespace ns3
194
195#endif /* SATELLITE_UT_PHY_H */
SatLinkDir_t
Link direction used for packet tracing.
SatPhy(void)
Default constructor.
Base class for all SatPhyRxCarriers.
Inherited the functionality of ground station SatPhyRxCarriers and extended it with CRDSA functionali...
Inherited the base functionality of SatPhyRxCarriers for ground station nodes.
Inherited the functionality of ground station SatPhyRxCarriers and extended it with CRDSA functionali...
SatPhyRxCarrierConf::RxCarrierCreateParams_s m_parameters
RX carrier configuration parameters.
double m_otherSysInterferenceCOverIDb
Configured other system interference in dB.
virtual void NotifyConstructionCompleted() override
Notifier called once the ObjectBase is fully constructed.
static TypeId GetTypeId(void)
inherited from Object
virtual ~SatUtPhy()
Destructor.
virtual double GetAdditionalInterference()
Get additional interference, used to compute final SINR at RX.
Ptr< SatSuperframeConf > m_superFrameConf
Super frame cofiguration.
Ptr< SatLinkResults > m_linkResults
Link results used for this physical layer.
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.
void PerformHandover(uint32_t satId, uint32_t beamId)
Change underlying SatChannel to send and receive data from a new satellite and beam.
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.