5G-LENA nr-v4.0
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
traffic-generator-ngmn-gaming.h
1// Copyright (c) 2022 CTTC
2// Copyright (c) 2023 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3//
4// SPDX-License-Identifier: GPL-2.0-only
5
6#ifndef TRAFFIC_GENERATOR_NGMN_GAMING
7#define TRAFFIC_GENERATOR_NGMN_GAMING
8
9#include "traffic-generator.h"
10
11#include "ns3/random-variable-stream.h"
12
13namespace ns3
14{
15
16class Address;
17class Socket;
18
26class TrafficGeneratorNgmnGamingTestCase;
27
29{
31
32 public:
37 static TypeId GetTypeId();
38
40
42
51 int64_t AssignStreams(int64_t stream) override;
52
53 protected:
54 void DoDispose() override;
55 void DoInitialize() override;
56
57 private:
58 // inherited from Application base class.
59 // Called at time specified by Start by the DoInitialize method
60 void StartApplication() override;
65 void PacketBurstSent() override;
69 void GenerateNextPacketBurstSize() override;
74 uint32_t GetNextPacketSize() const override;
79 Time GetInitialPacketArrivalTime() const;
84 Time GetNextPacketTime() const override;
85
86 Ptr<UniformRandomVariable>
87 m_initPacketArrivalVariable;
89 Ptr<UniformRandomVariable>
90 m_packetSizeRandomVariable;
92 Ptr<UniformRandomVariable>
93 m_packetArrivalVariable;
95 bool m_isDownlink{
96 true};
97 uint32_t m_aParamPacketSizeUl{
98 0};
99 double m_bParamPacketSizeUl{
100 0.0};
101 uint32_t m_aParamPacketSizeDl{
102 0};
103 double m_bParamPacketSizeDl{
104 0.0};
105 double m_aParamPacketArrivalDl{
106 0.0};
107 double m_bParamPacketArrivalDl{
108 0.0};
109 uint32_t m_initialPacketArrivalMin{0};
111 uint32_t m_initialPacketArrivalMax{0};
113 uint32_t m_packetArrivalUl{0};
114};
115
116} // namespace ns3
117
118#endif /* TRAFFIC_GENERATOR_NGMN_GAMING */
int64_t AssignStreams(int64_t stream) override
static TypeId GetTypeId()
Get the type ID.