satellite-phy-rx-carrier-marsala.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2018 CNES
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: Mathias Ettinger <mettinger@toulouse.viveris.com>
19  */
20 
21 #ifndef SATELLITE_PHY_RX_CARRIER_MARSALA_H
22 #define SATELLITE_PHY_RX_CARRIER_MARSALA_H
23 
25 
26 namespace ns3
27 {
28 
34 {
35  public:
43  SatPhyRxCarrierMarsala(uint32_t carrierId,
44  Ptr<SatPhyRxCarrierConf> carrierConf,
45  Ptr<SatWaveformConf> waveformConf,
46  bool randomAccessEnabled);
47 
52 
57  static TypeId GetTypeId(void);
58 
59  protected:
67  void PerformSicCycles(
68  std::vector<SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s>& combinedPacketsForFrame);
69 
70  private:
76  bool PerformMarsala(
77  std::vector<SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s>& combinedPacketsForFrame);
78 
86  const std::list<SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s>& slotContent,
88 
99  TracedCallback<uint32_t, const Address&, bool> m_marsalaCorrelationRxTrace;
100 };
101 
102 } // namespace ns3
103 
104 #endif /* SATELLITE_PHY_RX_CARRIER_MARSALA_H */
static TypeId GetTypeId(void)
Get the TypeId of the class.
void PerformSicCycles(std::vector< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s > &combinedPacketsForFrame)
Function for receiving decodable packets and removing their interference from the other packets in th...
SatPhyRxCarrierMarsala(uint32_t carrierId, Ptr< SatPhyRxCarrierConf > carrierConf, Ptr< SatWaveformConf > waveformConf, bool randomAccessEnabled)
Constructor.
TracedCallback< uint32_t, const Address &, bool > m_marsalaCorrelationRxTrace
MarsalaCorrelationRx trace source.
bool PerformMarsala(std::vector< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s > &combinedPacketsForFrame)
Function for performing MARSALA corelation on remaining packets in the frame.
SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s FindReplicaInSlot(const std::list< SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s > &slotContent, const SatPhyRxCarrierPerFrame::crdsaPacketRxParams_s &packet) const
Function for verifying if a replica of a given packet is found in the given slot.
Inherited the functionality of ground station SatPhyRxCarriers and extended it with CRDSA functionali...
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Struct for storing the CRDSA packet specific Rx parameters.