satellite-geo-user-mac.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: Bastien Tauran <bastien.tauran@viveris.fr>
19  */
20 
21 #ifndef SATELLITE_GEO_USER_MAC_H
22 #define SATELLITE_GEO_USER_MAC_H
23 
25 #include "satellite-geo-mac.h"
26 #include "satellite-geo-user-llc.h"
27 #include "satellite-mac.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 
46 class SatGeoUserMac : public SatGeoMac
47 {
48  public:
52  SatGeoUserMac(void);
53 
64  SatGeoUserMac(uint32_t satId,
65  uint32_t beamId,
66  SatEnums::RegenerationMode_t forwardLinkRegenerationMode,
67  SatEnums::RegenerationMode_t returnLinkRegenerationMode);
68 
72  virtual ~SatGeoUserMac();
73 
77  static TypeId GetTypeId(void);
78  TypeId GetInstanceTypeId(void) const;
79  virtual void DoInitialize(void);
80 
84  virtual void DoDispose(void);
85 
90  virtual void EnquePacket(Ptr<Packet> packet);
91 
98  void Receive(SatPhy::PacketContainer_t packets, Ptr<SatSignalParameters> txParams);
99 
100  void ReceiveSignalingPacket(Ptr<Packet> packet);
101 
102  protected:
108 
114 
121  virtual Address GetRxUtAddress(Ptr<Packet> packet);
122 
123  private:
124 };
125 
126 } // namespace ns3
127 
128 #endif /* SATELLITE_GEO_USER_MAC_H */
SatLinkDir_t
Link direction used for packet tracing.
RegenerationMode_t
The regeneration mode used in satellites.
The SatGeoMac models the global link MAC layer of the satellite node.
The SatGeoUserMac models the user link MAC layer of the satellite node.
SatGeoUserMac(void)
Default constructor.
virtual SatEnums::SatLinkDir_t GetSatLinkTxDir()
Get the link TX direction.
virtual ~SatGeoUserMac()
Destructor for SatGeoUserMac.
virtual void DoDispose(void)
Dispose of this class instance.
virtual void DoInitialize(void)
virtual SatEnums::SatLinkDir_t GetSatLinkRxDir()
Get the link RX direction.
TypeId GetInstanceTypeId(void) const
virtual Address GetRxUtAddress(Ptr< Packet > packet)
Get the UT address associated to this RX packet.
void Receive(SatPhy::PacketContainer_t packets, Ptr< SatSignalParameters > txParams)
Receive packet from lower layer.
static TypeId GetTypeId(void)
inherited from Object
virtual void EnquePacket(Ptr< Packet > packet)
Add new packet to the LLC queue.
void ReceiveSignalingPacket(Ptr< Packet > packet)
SatSignalParameters::PacketsInBurst_t PacketContainer_t
Define PacketContainer in SatPhy.
Definition: satellite-phy.h:78
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.