|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
21 #include "ns3/epc-gtpc-header.h"
96 uint8_t firstByte = i.
ReadU8 ();
97 uint8_t
version = (firstByte >> 5) & 0x07;
212 uint8_t type = i.
ReadU8 ();
213 NS_ASSERT_MSG (type == 1,
"Wrong IMSI IE type = " << (uint16_t) type);
216 uint8_t instance = i.
ReadU8 () & 0x0f;
236 uint8_t type = i.
ReadU8 ();
237 NS_ASSERT_MSG (type == 2,
"Wrong Cause IE type = " << (uint16_t) type);
240 uint8_t instance = i.
ReadU8 () & 0x0f;
254 i.
WriteU8 (epsBearerId & 0x0f);
260 uint8_t type = i.
ReadU8 ();
261 NS_ASSERT_MSG (type == 73,
"Wrong EBI IE type = " << (uint16_t) type);
264 uint8_t instance = i.
ReadU8 ();
266 epsBearerId = i.
ReadU8 () & 0x0f;
314 uint8_t type = i.
ReadU8 ();
315 NS_ASSERT_MSG (type == 80,
"Wrong Bearer QoS IE type = " << (uint16_t) type);
318 uint8_t instance = i.
ReadU8 ();
319 NS_ASSERT_MSG (instance == 0,
"Wrong Bearer QoS IE instance");
335 i.
WriteU8 (0x20 + (packetFilters.size () & 0x0f));
337 for (
auto &pf : packetFilters)
339 i.
WriteU8 ((pf.direction << 4) & 0x30);
357 i.
WriteU8 (pf.typeOfServiceMask);
364 uint8_t type = i.
ReadU8 ();
365 NS_ASSERT_MSG (type == 84,
"Wrong Bearer TFT IE type = " << (uint16_t) type);
368 uint8_t numberOfPacketFilters = i.
ReadU8 () & 0x0f;
370 for (uint8_t pf = 0; pf < numberOfPacketFilters; ++pf)
391 epcTft->Add (packetFilter);
419 uint8_t type = i.
ReadU8 ();
420 NS_ASSERT_MSG (type == 86,
"Wrong ULI ECGI IE type = " << (uint16_t) type);
423 uint8_t instance = i.
ReadU8 () & 0x0f;
445 uint8_t type = i.
ReadU8 ();
446 NS_ASSERT_MSG (type == 87,
"Wrong FTEID IE type = " << (uint16_t) type);
449 uint8_t instance = i.
ReadU8 () & 0x0f;
451 uint8_t flags = i.
ReadU8 ();
470 uint8_t type = i.
ReadU8 ();
471 NS_ASSERT_MSG (type == 93,
"Wrong Bearer Context IE type = " << (uint16_t) type);
473 uint8_t instance = i.
ReadU8 () & 0x0f;
474 NS_ASSERT_MSG (instance == 0,
"Wrong Bearer Context IE instance");
484 static TypeId tid =
TypeId (
"ns3::GtpcCreateSessionRequestMessage")
486 .SetGroupName (
"Lte")
520 return serializedSize;
541 std::list<EpcTft::PacketFilter> packetFilters = bc.tft->GetPacketFilters ();
573 bearerContext.
tft = epcTft;
626 std::list<GtpcCreateSessionRequestMessage::BearerContextToBeCreated>
643 static TypeId tid =
TypeId (
"ns3::GtpcCreateSessionResponseMessage")
645 .SetGroupName (
"Lte")
678 return serializedSize;
698 std::list<EpcTft::PacketFilter> packetFilters = bc.tft->GetPacketFilters ();
729 bearerContext.
tft = epcTft;
770 std::list<GtpcCreateSessionResponseMessage::BearerContextCreated>
787 static TypeId tid =
TypeId (
"ns3::GtpcModifyBearerRequestMessage")
789 .SetGroupName (
"Lte")
819 return serializedSize;
901 std::list<GtpcModifyBearerRequestMessage::BearerContextToBeModified>
918 static TypeId tid =
TypeId (
"ns3::GtpcModifyBearerResponseMessage")
920 .SetGroupName (
"Lte")
977 os <<
" cause " << (uint16_t)
m_cause;
997 static TypeId tid =
TypeId (
"ns3::GtpcDeleteBearerCommandMessage")
999 .SetGroupName (
"Lte")
1025 return serializedSize;
1070 os <<
" bearerContexts [";
1073 os << (uint16_t)bearerContext.m_epsBearerId <<
" ";
1078 std::list<GtpcDeleteBearerCommandMessage::BearerContext>
1095 static TypeId tid =
TypeId (
"ns3::GtpcDeleteBearerRequestMessage")
1097 .SetGroupName (
"Lte")
1122 return serializedSize;
1151 uint8_t epsBearerId;
1162 os <<
" epsBearerIds [";
1165 os << (uint16_t)epsBearerId <<
" ";
1187 static TypeId tid =
TypeId (
"ns3::GtpcDeleteBearerResponseMessage")
1189 .SetGroupName (
"Lte")
1214 return serializedSize;
1247 uint8_t epsBearerId;
1258 os <<
" cause " << (uint16_t)
m_cause <<
" epsBearerIds [";
1261 os << (uint16_t)epsBearerId <<
" ";
a unique identifier for an interface.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
static TypeId GetTypeId(void)
Get the type ID.
uint16_t remotePortStart
start of the port number range of the remote host
void SetSenderCpFteid(GtpcHeader::Fteid_t fteid)
virtual uint32_t GetMessageSize(void) const
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
virtual uint32_t GetMessageSize(void) const
virtual uint32_t GetSerializedSize(void) const
GtpcHeader::Fteid_t sgwS5uFteid
FTEID.
std::list< BearerContext > m_bearerContexts
std::list< uint8_t > m_epsBearerIds
GtpcModifyBearerResponseMessage()
virtual void Print(std::ostream &os) const
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual void Serialize(Buffer::Iterator start) const
std::list< BearerContextToBeCreated > GetBearerContextsToBeCreated() const
static TypeId GetTypeId(void)
Get the type ID.
GtpcCreateSessionResponseMessage()
virtual void Print(std::ostream &os) const
Implement the data structure representing a TrafficFlowTemplate Packet Filter.
virtual void Serialize(Buffer::Iterator start) const
virtual ~GtpcCreateSessionRequestMessage()
void SerializeImsi(Buffer::Iterator &i, uint64_t imsi) const
GtpcCreateSessionRequestMessage()
static const uint8_t VERSION
GTPv2-C protocol version number.
virtual void Serialize(Buffer::Iterator start) const
void SetBearerContextsToBeModified(std::list< BearerContextToBeModified > bearerContexts)
virtual uint32_t GetSerializedSize(void) const
void SetImsi(uint64_t imsi)
virtual uint32_t GetMessageSize(void) const
void WriteHtonU40(Buffer::Iterator &i, uint64_t data) const
uint16_t ReadNtohU16(void)
GtpcModifyBearerRequestMessage()
uint16_t remotePortEnd
end of the port number range of the remote host
void SetBearerContextsToBeCreated(std::list< BearerContextToBeCreated > bearerContexts)
EpsBearer bearerLevelQos
Bearer QOS level.
uint32_t GetUliEcgi() const
void Set(uint32_t address)
input address is in host order.
void SetEpsBearerIds(std::list< uint8_t > epsBearerIds)
void WriteU8(uint8_t data)
uint32_t Get(void) const
Get the host-order 32-bit IP address.
Ipv4 addresses are stored in host order in this class.
void WriteU16(uint16_t data)
std::list< uint8_t > GetEpsBearerIds() const
virtual void Print(std::ostream &os) const
const uint32_t serializedSizeBearerContextHeader
static TypeId GetTypeId(void)
Get the type ID.
void SetEpsBearerIds(std::list< uint8_t > epsBearerIds)
uint64_t ReadNtohU64(void)
uint32_t DeserializeImsi(Buffer::Iterator &i, uint64_t &imsi)
const uint32_t serializedSizeImsi
Ipv4Address remoteAddress
IPv4 address of the remote host
uint32_t DeserializeBearerTft(Buffer::Iterator &i, Ptr< EpcTft > epcTft)
Direction
Indicates the direction of the traffic that is to be classified.
const uint32_t serializedSizeCause
void SerializeUliEcgi(Buffer::Iterator &i, uint32_t uliEcgi) const
void Next(void)
go forward by one byte
TypeId SetParent(TypeId tid)
Set the parent TypeId.
static TypeId GetTypeId(void)
Get the type ID.
Ipv4Mask localMask
IPv4 address mask of the UE.
uint8_t epsBearerId
EPS bearer ID.
void SetImsi(uint64_t imsi)
GtpcHeader::Fteid_t GetSenderCpFteid() const
uint8_t epsBearerId
EPS bearer ID.
void WriteHtonU16(uint16_t data)
virtual uint32_t GetSerializedSize(void) const
Direction direction
whether the filter needs to be applied to uplink / downlink only, or in both cases
virtual uint32_t GetMessageSize(void) const
virtual ~GtpcDeleteBearerResponseMessage()
void SerializeBearerTft(Buffer::Iterator &i, std::list< EpcTft::PacketFilter > packetFilters) const
Ptr< EpcTft > tft
Bearer traffic flow template.
Smart pointer class similar to boost::intrusive_ptr.
void SetSenderCpFteid(GtpcHeader::Fteid_t fteid)
virtual ~GtpcCreateSessionResponseMessage()
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
Ipv4Address localAddress
IPv4 address of the UE.
static TypeId GetTypeId(void)
Get the type ID.
std::list< BearerContextCreated > GetBearerContextsCreated() const
virtual ~GtpcDeleteBearerRequestMessage()
virtual uint32_t GetSerializedSize(void) const
virtual void Print(std::ostream &os) const
std::list< BearerContextToBeCreated > m_bearerContextsToBeCreated
virtual uint32_t GetSerializedSize(void) const
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
virtual void Serialize(Buffer::Iterator start) const
virtual ~GtpcDeleteBearerCommandMessage()
GtpcHeader::Fteid_t m_senderCpFteid
virtual void Serialize(Buffer::Iterator start) const
uint32_t GetRemainingSize(void) const
uint8_t precedence
used to specify the precedence for the packet filter among all packet filters in the TFT; higher valu...
const uint32_t serializedSizeBearerQos
virtual void Serialize(Buffer::Iterator start) const
void SerializeFteid(Buffer::Iterator &i, GtpcHeader::Fteid_t fteid) const
void SetCause(Cause_t cause)
uint32_t GetSerializedSizeBearerTft(std::list< EpcTft::PacketFilter > packetFilters) const
GbrQosInformation gbrQosInfo
GBR QOS information.
void SetUliEcgi(uint32_t uliEcgi)
virtual void Print(std::ostream &os) const
void SerializeEbi(Buffer::Iterator &i, uint8_t epsBearerId) const
void SetCause(Cause_t cause)
std::list< uint8_t > GetEpsBearerIds() const
virtual void Print(std::ostream &os) const
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
void SetBearerContextsCreated(std::list< BearerContextCreated > bearerContexts)
uint32_t GetUliEcgi() const
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
GtpcHeader::Fteid_t GetSenderCpFteid() const
std::list< BearerContextCreated > m_bearerContextsCreated
GtpcHeader::Fteid_t fteid
FTEID.
uint8_t typeOfServiceMask
type of service field mask
EpsBearer bearerLevelQos
bearer QOS level
iterator in a Buffer instance
virtual uint32_t GetSerializedSize(void) const
virtual void Serialize(Buffer::Iterator start) const
std::list< BearerContextToBeModified > GetBearerContextsToBeModified() const
Ipv4Mask remoteMask
IPv4 address mask of the remote host.
std::list< BearerContext > GetBearerContexts() const
GtpcDeleteBearerResponseMessage()
This class contains the specification of EPS Bearers.
void SerializeBearerQos(Buffer::Iterator &i, EpsBearer bearerQos) const
uint32_t DeserializeFteid(Buffer::Iterator &i, GtpcHeader::Fteid_t &fteid)
void SetCause(Cause_t cause)
static TypeId GetTypeId(void)
Get the type ID.
uint64_t ReadNtohU40(Buffer::Iterator &i)
virtual ~GtpcModifyBearerResponseMessage()
uint32_t DeserializeEbi(Buffer::Iterator &i, uint8_t &epsBearerId)
virtual uint32_t GetMessageSize(void) const
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Ptr< EpcTft > tft
traffic flow template
a class to represent an Ipv4 address mask
const uint32_t serializedSizePacketFilter
virtual void Print(std::ostream &os) const
enum ns3::EpsBearer::Qci qci
Qos class indicator.
uint8_t epsBearerId
EPS bearer ID.
uint16_t localPortStart
start of the port number range of the UE
uint32_t DeserializeUliEcgi(Buffer::Iterator &i, uint32_t &uliEcgi)
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
GtpcDeleteBearerRequestMessage()
void SerializeCause(Buffer::Iterator &i, Cause_t cause) const
std::list< BearerContextToBeModified > m_bearerContextsToBeModified
GtpcHeader::Fteid_t m_senderCpFteid
virtual uint32_t GetMessageSize(void) const
uint8_t typeOfService
type of service field
uint32_t DeserializeCause(Buffer::Iterator &i, Cause_t &cause)
GtpcHeader::Fteid_t fteid
FTEID.
GtpcDeleteBearerCommandMessage()
uint32_t DeserializeBearerQos(Buffer::Iterator &i, EpsBearer &bearerQos)
void WriteHtonU64(uint64_t data)
virtual uint32_t GetMessageSize(void) const
const uint32_t serializedSizeUliEcgi
void SetUliEcgi(uint32_t uliEcgi)
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
virtual uint32_t GetSerializedSize(void) const
uint32_t DeserializeBearerContextHeader(Buffer::Iterator &i, uint16_t &length)
static TypeId GetTypeId(void)
Get the type ID.
const uint32_t serializedSizeEbi
const uint32_t serializedSizeFteid
uint32_t ReadNtohU32(void)
void SerializeBearerContextHeader(Buffer::Iterator &i, uint16_t length) const
virtual ~GtpcModifyBearerRequestMessage()
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
std::list< uint8_t > m_epsBearerIds
uint16_t localPortEnd
end of the port number range of the UE
uint8_t m_epsBearerId
EPS bearer ID.
void WriteHtonU32(uint32_t data)
void SetBearerContexts(std::list< BearerContext > bearerContexts)