22 #include <ns3/fatal-error.h>
23 #include <ns3/attribute-construction-list.h>
39 preemptionCapability (false),
40 preemptionVulnerability (false)
51 .AddAttribute (
"Release",
"Change from 11 to 15 if you need bearer definition as per Release 15."
52 " Reference document: TS 23.203. The change does not impact other LTE code than "
53 " bearers definition.",
57 MakeUintegerChecker<uint32_t> ())
70 qci (NGBR_VIDEO_TCP_DEFAULT)
85 qci (
x), gbrQosInfo (y)
113 " please use a value between 8 and 11, or 15");
158 if (ret.size () == 0)
160 ret.insert (std::make_pair (
GBR_CONV_VOICE, std::make_tuple (
true, 2, 100, 1.0e-2, 0, 0)));
161 ret.insert (std::make_pair (
GBR_CONV_VIDEO, std::make_tuple (
true, 4, 150, 1.0e-3, 0, 0)));
162 ret.insert (std::make_pair (
GBR_GAMING, std::make_tuple (
true, 3, 50, 1.0e-3, 0, 0)));
163 ret.insert (std::make_pair (
GBR_NON_CONV_VIDEO, std::make_tuple (
true, 5, 300, 1.0e-6, 0, 0)));
164 ret.insert (std::make_pair (
NGBR_IMS, std::make_tuple (
false, 1, 100, 1.0e-6, 0, 0)));
179 if (ret.size () == 0)
181 ret.insert (std::make_pair (
GBR_CONV_VOICE, std::make_tuple (
true, 20, 100, 1.0e-2, 0, 2000)));
182 ret.insert (std::make_pair (
GBR_CONV_VIDEO, std::make_tuple (
true, 40, 150, 1.0e-3, 0, 2000)));
183 ret.insert (std::make_pair (
GBR_GAMING, std::make_tuple (
true, 30, 50, 1.0e-3, 0, 2000)));
184 ret.insert (std::make_pair (
GBR_NON_CONV_VIDEO, std::make_tuple (
true, 50, 300, 1.0e-6, 0, 2000)));
185 ret.insert (std::make_pair (
GBR_MC_PUSH_TO_TALK, std::make_tuple (
true, 7, 75, 1.0e-2, 0, 2000)));
186 ret.insert (std::make_pair (
GBR_NMC_PUSH_TO_TALK, std::make_tuple (
true, 20, 100, 1.0e-2, 0, 2000)));
187 ret.insert (std::make_pair (
GBR_MC_VIDEO, std::make_tuple (
true, 15, 100, 1.0e-3, 0, 2000)));
188 ret.insert (std::make_pair (
GBR_V2X, std::make_tuple (
true, 25, 50, 1.0e-2, 0, 2000)));
189 ret.insert (std::make_pair (
NGBR_IMS, std::make_tuple (
false, 10, 100, 1.0e-6, 0, 0)));
194 ret.insert (std::make_pair (
NGBR_MC_DELAY_SIGNAL, std::make_tuple (
false, 5, 60, 1.0e-6, 0, 0)));
195 ret.insert (std::make_pair (
NGBR_MC_DATA, std::make_tuple (
false, 55, 200, 1.0e-6, 0, 0)));
196 ret.insert (std::make_pair (
NGBR_V2X, std::make_tuple (
false, 65, 5, 1.0e-2, 0, 0)));
197 ret.insert (std::make_pair (
NGBR_LOW_LAT_EMBB, std::make_tuple (
false, 68, 10, 1.0e-6, 0, 0)));
200 ret.insert (std::make_pair (
DGBR_ITS, std::make_tuple (
false, 24, 30, 1.0e-5, 1354, 2000)));
201 ret.insert (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.
std::unordered_map< Qci, std::tuple< bool, uint8_t, uint16_t, double, uint32_t, uint32_t >, QciHash > BearerRequirementsMap
Map between QCI and requirements.
static BearerRequirementsMap * GetRequirementsRel11()
Retrieve requirements for Rel.
BearerRequirementsMap * m_requirements
Requirements pointer per bearer.
uint8_t GetPriority() const
uint8_t GetRelease() const
GetRelease.
static TypeId GetTypeId(void)
Get the type ID.
enum ns3::EpsBearer::Qci qci
Qos class indicator.
uint16_t GetPacketDelayBudgetMs() const
double GetPacketErrorLossRate() const
GbrQosInformation gbrQosInfo
GBR QOS information.
virtual TypeId GetInstanceTypeId(void) const override
Get the most derived TypeId for this Object.
uint8_t m_release
Release (10 or 15)
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)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
#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.
list x
Random number samples.
AllocationRetentionPriority()
Default constructor, initializes member variables to zero or equivalent.