A Discrete-Event Network Simulator
API
mac-stats-calculator.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
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: Jaume Nin <jnin@cttc.es>
19  */
20 
21 #ifndef MAC_STATS_CALCULATOR_H_
22 #define MAC_STATS_CALCULATOR_H_
23 
24 #include "ns3/lte-stats-calculator.h"
25 #include "ns3/nstime.h"
26 #include "ns3/uinteger.h"
27 #include <string>
28 #include <fstream>
29 
30 namespace ns3 {
31 
46 {
47 public:
52 
56  virtual ~MacStatsCalculator ();
57 
58  // Inherited from ns3::Object
63  static TypeId GetTypeId (void);
64 
70  void SetUlOutputFilename (std::string outputFilename);
71 
76  std::string GetUlOutputFilename (void);
77 
83  void SetDlOutputFilename (std::string outputFilename);
84 
89  std::string GetDlOutputFilename (void);
90 
103  void DlScheduling (uint16_t cellId, uint64_t imsi, uint32_t frameNo, uint32_t subframeNo,
104  uint16_t rnti, uint8_t mcsTb1, uint16_t sizeTb1, uint8_t mcsTb2, uint16_t sizeTb2);
105 
116  void UlScheduling (uint16_t cellId, uint64_t imsi,uint32_t frameNo, uint32_t subframeNo,
117  uint16_t rnti, uint8_t mcsTb, uint16_t sizeTb);
118 
119 
133  static void DlSchedulingCallback (Ptr<MacStatsCalculator> macStats,
134  std::string path, uint32_t frameNo, uint32_t subframeNo,
135  uint16_t rnti, uint8_t mcsTb1, uint16_t sizeTb1,
136  uint8_t mcsTb2, uint16_t sizeTb2);
137 
149  static void UlSchedulingCallback (Ptr<MacStatsCalculator> macStats, std::string path,
150  uint32_t frameNo, uint32_t subframeNo, uint16_t rnti,
151  uint8_t mcs, uint16_t size);
152 
153 
154 private:
162 
170 
171 };
172 
173 } // namespace ns3
174 
175 #endif /* MAC_STATS_CALCULATOR_H_ */
Base class for ***StatsCalculator classes.
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
static void DlSchedulingCallback(Ptr< MacStatsCalculator > macStats, std::string path, uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcsTb1, uint16_t sizeTb1, uint8_t mcsTb2, uint16_t sizeTb2)
Trace sink for the ns3::LteEnbMac::DlScheduling trace source.
Takes care of storing the information generated at MAC layer.
bool m_ulFirstWrite
When writing UL MAC statistics first time to file, columns description is added.
void SetDlOutputFilename(std::string outputFilename)
Set the name of the file where the downlink statistics will be stored.
static TypeId GetTypeId(void)
Register this type.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void DlScheduling(uint16_t cellId, uint64_t imsi, uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcsTb1, uint16_t sizeTb1, uint8_t mcsTb2, uint16_t sizeTb2)
Notifies the stats calculator that an downlink scheduling has occurred.
std::string GetDlOutputFilename(void)
Get the name of the file where the downlink statistics will be stored.
bool m_dlFirstWrite
When writing DL MAC statistics first time to file, columns description is added.
static void UlSchedulingCallback(Ptr< MacStatsCalculator > macStats, std::string path, uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcs, uint16_t size)
Trace sink for the ns3::LteEnbMac::UlScheduling trace source.
std::string GetUlOutputFilename(void)
Get the name of the file where the uplink statistics will be stored.
void UlScheduling(uint16_t cellId, uint64_t imsi, uint32_t frameNo, uint32_t subframeNo, uint16_t rnti, uint8_t mcsTb, uint16_t sizeTb)
Notifies the stats calculator that an uplink scheduling has occurred.
virtual ~MacStatsCalculator()
Destructor.
a unique identifier for an interface.
Definition: type-id.h:58
void SetUlOutputFilename(std::string outputFilename)
Set the name of the file where the uplink statistics will be stored.