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)));
GBR Mission Critical Video User Plane.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
std::unordered_map< Qci, std::tuple< bool, uint8_t, uint16_t, double, uint32_t, uint32_t >, QciHash > BearerRequirementsMap
Map between QCI and requirements.
Non-GBR Mission Critical Delay Sensitive Signalling (e.g., MC-PTT)
virtual TypeId GetInstanceTypeId(void) const override
Get the most derived TypeId for this Object.
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
static BearerRequirementsMap * GetRequirementsRel11()
Retrieve requirements for Rel.
Anchor the ns-3 type and attribute system.
GBR Non-Mission-Critical User Plane Push To Talk voice.
uint8_t GetPriority() const
Delay-Critical GBR Electricity Distribution High Voltage (TS 22.261)
GBR Conversational Video (Live streaming)
GBR Mission Critical User Plane Push To Talk voice.
EpsBearer()
Default constructor.
Hold an unsigned integer type.
List of Attribute name, value and checker triples used to construct Objects.
void SetRelease(uint8_t release)
SetRelease.
GBR Non-Conversational Video (Buffered Streaming)
Delay-Critical GBR Discrete Automation Large Packets (TS 22.261)
AllocationRetentionPriority()
Default constructor, initializes member variables to zero or equivalent.
Delay-Critical GBR Discrete Automation Small Packets (TS 22.261)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Non-GBR Low Latency eMBB applications.
uint16_t GetPacketDelayBudgetMs() const
void ConstructSelf(const AttributeConstructionList &attributes)
Complete construction of ObjectBase; invoked by derived classes.
This class contains the specification of EPS Bearers.
enum ns3::EpsBearer::Qci qci
Qos class indicator.
Non-GBR TCP-based Video (Buffered Streaming, e.g., www, e-mail...)
BearerRequirementsMap * m_requirements
Requirements pointer per bearer.
GbrQosInformation gbrQosInfo
GBR QOS information.
Delay-Critical GBR Intelligent Transport Systems (TS 22.261)
Non-GBR Mission Critical Data.
static BearerRequirementsMap * GetRequirementsRel15()
Retrieve requirements for Rel.
GBR Conversational Voice.
Non-GBR TCP-based Video (Buffered Streaming, e.g., www, e-mail...)
static TypeId GetTypeId(void)
Get the type ID.
Non-GBR Voice, Video, Interactive Streaming.
Non-GBR TCP-based Video (Buffered Streaming, e.g., www, e-mail...)
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
a unique identifier for an interface.
uint8_t GetRelease() const
GetRelease.
uint8_t m_release
Release (10 or 15)
TypeId SetParent(TypeId tid)
Set the parent TypeId.
double GetPacketErrorLossRate() const