5G-LENA nr-v4.0
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
traffic-generator-ngmn-video.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_VIDEO_H
7#define TRAFFIC_GENERATOR_NGMN_VIDEO_H
8
9#include "traffic-generator.h"
10
11#include "ns3/random-variable-stream.h"
12
13namespace ns3
14{
15
16class TrafficGeneratorNgmnVideoTestCase;
17
34{
36
37 public:
42 static TypeId GetTypeId();
43
45
47
56 int64_t AssignStreams(int64_t stream) override;
57
58 protected:
59 void DoDispose() override;
60 void DoInitialize() override;
61
62 private:
63 // inherited from Application base class.
64 // Called at time specified by Start by the DoInitialize method
65 void StartApplication() override;
66
67 // inherited from TrafficGenerator
68 void PacketBurstSent() override;
73 uint32_t GetNextPacketSize() const override;
78 Time GetNextPacketTime() const override;
82 void GenerateNextPacketBurstSize() override;
83
84 uint32_t m_numberOfPacketsInFrame{0};
85 Time m_interframeIntervalTime{0};
86 Ptr<ParetoRandomVariable>
87 m_packetSizeGenerator;
88 Ptr<ParetoRandomVariable>
89 m_packetTimeGenerator;
90 double m_packetSizeScale{
91 0.0};
92 double m_packetSizeShape{
93 0.0};
94 double m_packetSizeBound{
95 0.0};
96 double m_packetTimeScale{
97 0.0};
98 double m_packetTimeShape{
99 0.0};
100 double m_packetTimeBound{
101 0.0};
102 uint32_t m_packetFrameCounter{0};
103 static uint32_t m_flowIdCounter;
104 uint32_t m_flowId{0};
105};
106
107} // namespace ns3
108
109#endif /* TRAFFIC_GENERATOR_NGMN_VIDEO_H */
static TypeId GetTypeId()
Get the type ID.
int64_t AssignStreams(int64_t stream) override