satellite-ut-helper-dvb.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: Bastien Tauran <bastien.tauran@viveris.fr>
20  */
21 
22 #ifndef SATELLITE_UT_HELPER_DVB_H
23 #define SATELLITE_UT_HELPER_DVB_H
24 
25 #include "satellite-ut-helper.h"
26 
27 #include <ns3/satellite-channel.h>
28 #include <ns3/satellite-ncc.h>
29 #include <ns3/satellite-superframe-sequence.h>
30 #include <ns3/satellite-typedefs.h>
31 #include <ns3/satellite-ut-mac.h>
32 
33 #include <stdint.h>
34 
35 namespace ns3
36 {
37 
44 {
45  public:
49  static TypeId GetTypeId(void);
50 
54  TypeId GetInstanceTypeId(void) const;
55 
60 
66  uint32_t rtnLinkCarrierCount,
67  Ptr<SatSuperframeSeq> seq,
71  RandomAccessSettings_s randomAccessSettings);
72 
76  virtual ~SatUtHelperDvb()
77  {
78  }
79 
98  virtual Ptr<NetDevice> Install(Ptr<Node> n,
99  uint32_t satId,
100  uint32_t beamId,
101  Ptr<SatChannel> fCh,
102  Ptr<SatChannel> rCh,
103  Ptr<SatNetDevice> gwNd,
104  Ptr<SatNcc> ncc,
105  Address satUserAddress,
108 };
109 
110 } // namespace ns3
111 
112 #endif /* SATELLITE_UT_HELPER_DVB_H */
Callback< uint32_t, Ptr< SatControlMessage > > ReserveCtrlMsgCallback
Callback to reserve an id and initially store the control message.
Callback< void, Address, Address > RoutingUpdateCallback
Callback to update routing and ARP tables after handover.
Callback< uint32_t, uint32_t > SendCtrlMsgCallback
Callback to send a control message and allocate a recv ID for it.
Callback< Ptr< SatControlMessage >, uint32_t > ReadCtrlMsgCallback
Callback to read control messages from container storing control messages.
Callback< SatChannelPair::ChannelPair_t, uint32_t, uint32_t > ChannelPairGetterCallback
Callback for retrieving a pair of SatChannel associated to a beam.
Callback< double, SatEnums::ChannelType_t, uint32_t, SatEnums::CarrierBandwidthType_t > CarrierBandwidthConverter_t
Callback for carrier bandwidths.
Creates needed objects for DVB UT nodes like SatOrbiterNetDevice objects.
virtual Ptr< NetDevice > Install(Ptr< Node > n, uint32_t satId, uint32_t beamId, Ptr< SatChannel > fCh, Ptr< SatChannel > rCh, Ptr< SatNetDevice > gwNd, Ptr< SatNcc > ncc, Address satUserAddress, SatPhy::ChannelPairGetterCallback cbChannel, SatMac::RoutingUpdateCallback cbRouting)
static TypeId GetTypeId(void)
Derived from Object.
virtual ~SatUtHelperDvb()
Destructor.
TypeId GetInstanceTypeId(void) const
Derived from Object.
SatUtHelperDvb()
Default constructor.
Creates needed objects for UT nodes like SatOrbiterNetDevice objects.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Define RandomAccessSettings as a struct.