23 #include <ns3/object-base.h>
24 #include <ns3/uinteger.h>
26 #include <unordered_map>
260 return std::hash<uint8_t>{}(s);
270 typedef std::unordered_map<
Qci,
271 std::tuple<uint8_t, uint8_t, uint16_t, double, uint32_t, uint32_t>,
283 return std::get<0>(map.at(
qci));
294 return std::get<1>(map.at(
qci));
305 return std::get<2>(map.at(
qci));
316 return std::get<3>(map.at(
qci));
327 return std::get<4>(map.at(
qci));
338 return std::get<5>(map.at(
qci));
This class contains the specification of EPS Bearers.
static uint32_t GetAvgWindow(const BearerRequirementsMap &map, Qci qci)
Get default averaging window for the selected QCI.
static double GetPacketErrorLossRate(const BearerRequirementsMap &map, Qci qci)
Get packet error rate for the selected QCI.
void SetRelease(uint8_t release)
SetRelease.
BearerRequirementsMap m_requirements
Requirements pointer per bearer.
AllocationRetentionPriority arp
allocation retention priority
static const BearerRequirementsMap & GetRequirementsRel15()
Retrieve requirements for Rel.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
static const BearerRequirementsMap & GetRequirementsRel18()
Retrieve requirements for Rel.
uint8_t GetPriority() const
uint8_t GetRelease() const
GetRelease.
uint8_t GetResourceType() const
static uint32_t GetMaxDataBurst(const BearerRequirementsMap &map, Qci qci)
Get maximum data burst for the selected QCI.
uint16_t GetPacketDelayBudgetMs() const
double GetPacketErrorLossRate() const
static uint8_t GetPriority(const BearerRequirementsMap &map, Qci qci)
Get priority for the selected QCI.
static const BearerRequirementsMap & GetRequirementsRel11()
Retrieve requirements for Rel.
Qci qci
Qos class indicator.
std::unordered_map< Qci, std::tuple< uint8_t, uint8_t, uint16_t, double, uint32_t, uint32_t >, QciHash > BearerRequirementsMap
Map between QCI and requirements.
static uint8_t GetResourceType(const BearerRequirementsMap &map, Qci qci)
Get the resource type (NON-GBR, GBR, DC-GBR) of the selected QCI.
static uint16_t GetPacketDelayBudgetMs(const BearerRequirementsMap &map, Qci qci)
Get packet delay in ms for the selected QCI.
GbrQosInformation gbrQosInfo
GBR QOS information.
~EpsBearer() override
Deconstructor.
uint8_t m_release
Release (10 or 15 or 18)
static TypeId GetTypeId()
Get the type ID.
EpsBearer()
Default constructor.
@ DGBR_VISUAL_CONTENT_90
Delay-Critical GBR Visual Content for cloud/edge/split rendering (TS 23.501)
@ GBR_CONV_VOICE
GBR Conversational Voice.
@ NGBR_VIDEO_TCP_DEFAULT
Non-GBR TCP-based Video (Buffered Streaming, e.g., www, e-mail...)
@ DGBR_DISCRETE_AUT_LARGE
Delay-Critical GBR Discrete Automation Large Packets (TS 22.261)
@ GBR_MC_PUSH_TO_TALK
GBR Mission Critical User Plane Push To Talk voice.
@ GBR_NON_CONV_VIDEO
GBR Non-Conversational Video (Buffered Streaming)
@ GBR_V2X
GBR V2X Messages.
@ GBR_GAMING
GBR Real Time Gaming.
@ GBR_MC_VIDEO
GBR Mission Critical Video User Plane.
@ GBR_LIVE_UL_76
GBR Live UL streaming.
@ DGBR_ITS
Delay-Critical GBR Intelligent Transport Systems (TS 22.261)
@ NGBR_V2X
Non-GBR V2X Messages.
@ NGBR_LOW_LAT_EMBB
Non-GBR Low Latency eMBB applications.
@ GBR_CONV_VIDEO
GBR Conversational Video (Live streaming)
@ DGBR_DISCRETE_AUT_SMALL
Delay-Critical GBR Discrete Automation Small Packets (TS 22.261)
@ DGBR_ELECTRICITY
Delay-Critical GBR Electricity Distribution High Voltage (TS 22.261)
@ DGBR_INTER_SERV_88
Delay-Critical GBR Interactive Service - Motion tracking data (TS 23.501)
@ NGBR_VOICE_VIDEO_GAMING
Non-GBR Voice, Video, Interactive Streaming.
@ NGBR_MC_DATA
Non-GBR Mission Critical Data.
@ GBR_LIVE_UL_72
GBR Live UL streaming.
@ NGBR_VIDEO_TCP_OPERATOR
Non-GBR TCP-based Video (Buffered Streaming, e.g., www, e-mail...)
@ NGBR_MC_DELAY_SIGNAL
Non-GBR Mission Critical Delay Sensitive Signalling (e.g., MC-PTT)
@ NGBR_IMS
Non-GBR IMS Signalling.
@ NGBR_VIDEO_TCP_PREMIUM
Non-GBR TCP-based Video (Buffered Streaming, e.g., www, e-mail...)
@ GBR_LIVE_UL_73
GBR Live UL streaming.
@ DGBR_V2X
Delay-Critical GBR V2X Messages (TS 23.501)
@ DGBR_VISUAL_CONTENT_89
Delay-Critical GBR Visual Content for cloud/edge/split rendering (TS 23.501)
@ DGBR_INTER_SERV_87
Delay-Critical GBR Interactive Service - Motion tracking data (TS 23.501)
@ GBR_NMC_PUSH_TO_TALK
GBR Non-Mission-Critical User Plane Push To Talk voice.
@ GBR_LIVE_UL_74
GBR Live UL streaming.
@ GBR_LIVE_UL_71
GBR Live UL streaming.
Anchor the ns-3 type and attribute system.
a unique identifier for an interface.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
3GPP 23.203 Section 6.1.7.3 Allocation and Retention Priority characteristics
bool preemptionVulnerability
true if bearer can be preempted by others
bool preemptionCapability
true if bearer can preempt others
uint8_t priorityLevel
1-15; 1 = highest
AllocationRetentionPriority()
Default constructor, initializes member variables to zero or equivalent.
std::size_t operator()(const Qci &s) const noexcept
Hash the QCI like a normal uint8_t.