22#include <ns3/attribute-construction-list.h>
23#include <ns3/fatal-error.h>
40 preemptionCapability(false),
41 preemptionVulnerability(false)
55 "Change from 11 to 15 if you need bearer definition as per Release 15."
56 " Reference document: TS 23.203. The change does not impact other LTE code than "
57 " bearers definition.",
60 MakeUintegerChecker<uint32_t>());
72 qci(NGBR_VIDEO_TCP_DEFAULT)
116 <<
" please use a value between 8 and 11, or 15");
163 ret.insert(std::make_pair(
GBR_CONV_VOICE, std::make_tuple(
true, 2, 100, 1.0e-2, 0, 0)));
164 ret.insert(std::make_pair(
GBR_CONV_VIDEO, std::make_tuple(
true, 4, 150, 1.0e-3, 0, 0)));
165 ret.insert(std::make_pair(
GBR_GAMING, std::make_tuple(
true, 3, 50, 1.0e-3, 0, 0)));
166 ret.insert(std::make_pair(
GBR_NON_CONV_VIDEO, std::make_tuple(
true, 5, 300, 1.0e-6, 0, 0)));
167 ret.insert(std::make_pair(
NGBR_IMS, std::make_tuple(
false, 1, 100, 1.0e-6, 0, 0)));
188 ret.insert(std::make_pair(
GBR_CONV_VOICE, std::make_tuple(
true, 20, 100, 1.0e-2, 0, 2000)));
189 ret.insert(std::make_pair(
GBR_CONV_VIDEO, std::make_tuple(
true, 40, 150, 1.0e-3, 0, 2000)));
190 ret.insert(std::make_pair(
GBR_GAMING, std::make_tuple(
true, 30, 50, 1.0e-3, 0, 2000)));
197 ret.insert(std::make_pair(
GBR_MC_VIDEO, std::make_tuple(
true, 15, 100, 1.0e-3, 0, 2000)));
198 ret.insert(std::make_pair(
GBR_V2X, std::make_tuple(
true, 25, 50, 1.0e-2, 0, 2000)));
199 ret.insert(std::make_pair(
NGBR_IMS, std::make_tuple(
false, 10, 100, 1.0e-6, 0, 0)));
210 ret.insert(std::make_pair(
NGBR_MC_DATA, std::make_tuple(
false, 55, 200, 1.0e-6, 0, 0)));
211 ret.insert(std::make_pair(
NGBR_V2X, std::make_tuple(
false, 65, 5, 1.0e-2, 0, 0)));
212 ret.insert(std::make_pair(
NGBR_LOW_LAT_EMBB, std::make_tuple(
false, 68, 10, 1.0e-6, 0, 0)));
214 std::make_tuple(
false, 19, 10, 1.0e-4, 255, 2000)));
216 std::make_tuple(
false, 22, 10, 1.0e-4, 1358, 2000)));
217 ret.insert(std::make_pair(
DGBR_ITS, std::make_tuple(
false, 24, 30, 1.0e-5, 1354, 2000)));
219 std::make_pair(
DGBR_ELECTRICITY, std::make_tuple(
false, 21, 5, 1.0e-5, 255, 2000)));
List of Attribute name, value and checker triples used to construct Objects.
This class contains the specification of EPS Bearers.
static BearerRequirementsMap * GetRequirementsRel15()
Retrieve requirements for Rel.
void SetRelease(uint8_t release)
SetRelease.
static BearerRequirementsMap * GetRequirementsRel11()
Retrieve requirements for Rel.
BearerRequirementsMap * m_requirements
Requirements pointer per bearer.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
std::unordered_map< Qci, std::tuple< bool, uint8_t, uint16_t, double, uint32_t, uint32_t >, QciHash > BearerRequirementsMap
Map between QCI and requirements.
uint8_t GetPriority() const
uint8_t GetRelease() const
GetRelease.
enum ns3::EpsBearer::Qci qci
Qos class indicator.
uint16_t GetPacketDelayBudgetMs() const
double GetPacketErrorLossRate() const
GbrQosInformation gbrQosInfo
GBR QOS information.
uint8_t m_release
Release (10 or 15)
static TypeId GetTypeId()
Get the type ID.
EpsBearer()
Default constructor.
@ 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.
@ 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)
@ NGBR_VOICE_VIDEO_GAMING
Non-GBR Voice, Video, Interactive Streaming.
@ NGBR_MC_DATA
Non-GBR Mission Critical Data.
@ 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_NMC_PUSH_TO_TALK
GBR Non-Mission-Critical User Plane Push To Talk voice.
Anchor the ns-3 type and attribute system.
void ConstructSelf(const AttributeConstructionList &attributes)
Complete construction of ObjectBase; invoked by derived classes.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Hold an unsigned integer type.
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
AllocationRetentionPriority()
Default constructor, initializes member variables to zero or equivalent.