A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::GtpcIes Class Reference

GTP-C Information Elements. More...

#include "epc-gtpc-header.h"

+ Inheritance diagram for ns3::GtpcIes:
+ Collaboration diagram for ns3::GtpcIes:

Public Types

enum  Cause_t { RESERVED = 0 , REQUEST_ACCEPTED = 16 }
 Cause. More...
 

Public Member Functions

uint32_t DeserializeBearerContextHeader (Buffer::Iterator &i, uint16_t &length) const
 Deserialize the Bearer Context Header.
 
uint32_t DeserializeBearerQos (Buffer::Iterator &i, EpsBearer &bearerQos)
 Deserialize the eps Bearer QoS.
 
uint32_t DeserializeBearerTft (Buffer::Iterator &i, Ptr< EpcTft > epcTft) const
 Deserialize the Bearer TFT.
 
uint32_t DeserializeCause (Buffer::Iterator &i, Cause_t &cause) const
 Deserialize the Cause.
 
uint32_t DeserializeEbi (Buffer::Iterator &i, uint8_t &epsBearerId) const
 Deserialize the eps Bearer Id.
 
uint32_t DeserializeFteid (Buffer::Iterator &i, GtpcHeader::Fteid_t &fteid) const
 Deserialize the Fteid.
 
uint32_t DeserializeImsi (Buffer::Iterator &i, uint64_t &imsi) const
 Deserialize the IMSI.
 
uint32_t DeserializeUliEcgi (Buffer::Iterator &i, uint32_t &uliEcgi) const
 Deserialize the UliEcgi.
 
uint32_t GetSerializedSizeBearerTft (std::list< EpcTft::PacketFilter > packetFilters) const
 
uint64_t ReadNtohU40 (Buffer::Iterator &i)
 
void SerializeBearerContextHeader (Buffer::Iterator &i, uint16_t length) const
 Serialize the Bearer Context Header.
 
void SerializeBearerQos (Buffer::Iterator &i, EpsBearer bearerQos) const
 Serialize the eps Bearer QoS.
 
void SerializeBearerTft (Buffer::Iterator &i, std::list< EpcTft::PacketFilter > packetFilters) const
 Serialize the Bearer TFT.
 
void SerializeCause (Buffer::Iterator &i, Cause_t cause) const
 Serialize the Cause.
 
void SerializeEbi (Buffer::Iterator &i, uint8_t epsBearerId) const
 Serialize the eps Bearer Id.
 
void SerializeFteid (Buffer::Iterator &i, GtpcHeader::Fteid_t fteid) const
 Serialize the Fteid_t.
 
void SerializeImsi (Buffer::Iterator &i, uint64_t imsi) const
 Serialize the IMSI.
 
void SerializeUliEcgi (Buffer::Iterator &i, uint32_t uliEcgi) const
 Serialize the UliEcgi.
 
void WriteHtonU40 (Buffer::Iterator &i, uint64_t data) const
 

Public Attributes

const uint32_t serializedSizeBearerContextHeader = 4
 Fteid serialized size.
 
const uint32_t serializedSizeBearerQos = 26
 Bearer QoS serialized size.
 
const uint32_t serializedSizeCause = 6
 Cause serialized size.
 
const uint32_t serializedSizeEbi = 5
 EBI serialized size.
 
const uint32_t serializedSizeFteid = 13
 Fteid serialized size.
 
const uint32_t serializedSizeImsi = 12
 IMSI serialized size.
 
const uint32_t serializedSizePacketFilter
 Packet filter serialized size.
 
const uint32_t serializedSizeUliEcgi = 12
 UliEcgi serialized size.
 

Detailed Description

GTP-C Information Elements.

Definition at line 183 of file epc-gtpc-header.h.

Member Enumeration Documentation

◆ Cause_t

Cause.

Enumerator
RESERVED 
REQUEST_ACCEPTED 

Definition at line 189 of file epc-gtpc-header.h.

Member Function Documentation

◆ DeserializeBearerContextHeader()

uint32_t ns3::GtpcIes::DeserializeBearerContextHeader ( Buffer::Iterator & i,
uint16_t & length ) const

Deserialize the Bearer Context Header.

Parameters
iBuffer iterator
[out]lengthlength
Returns
the number of deserialized bytes

Definition at line 460 of file epc-gtpc-header.cc.

References NS_ASSERT_MSG, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadU8(), and serializedSizeBearerContextHeader.

Referenced by ns3::GtpcCreateSessionRequestMessage::Deserialize(), ns3::GtpcCreateSessionResponseMessage::Deserialize(), ns3::GtpcDeleteBearerCommandMessage::Deserialize(), and ns3::GtpcModifyBearerRequestMessage::Deserialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DeserializeBearerQos()

uint32_t ns3::GtpcIes::DeserializeBearerQos ( Buffer::Iterator & i,
EpsBearer & bearerQos )

Deserialize the eps Bearer QoS.

Parameters
iBuffer iterator
[out]bearerQosThe Bearer QoS
Returns
the number of deserialized bytes

Definition at line 303 of file epc-gtpc-header.cc.

References ns3::GbrQosInformation::gbrDl, ns3::EpsBearer::gbrQosInfo, ns3::GbrQosInformation::gbrUl, ns3::GbrQosInformation::mbrDl, ns3::GbrQosInformation::mbrUl, NS_ASSERT_MSG, ns3::EpsBearer::qci, ns3::Buffer::Iterator::ReadNtohU16(), ReadNtohU40(), ns3::Buffer::Iterator::ReadU8(), and serializedSizeBearerQos.

Referenced by ns3::GtpcCreateSessionRequestMessage::Deserialize(), and ns3::GtpcCreateSessionResponseMessage::Deserialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DeserializeBearerTft()

uint32_t ns3::GtpcIes::DeserializeBearerTft ( Buffer::Iterator & i,
Ptr< EpcTft > epcTft ) const

Deserialize the Bearer TFT.

Parameters
iBuffer iterator
[out]epcTftThe Bearer TFT
Returns
the number of deserialized bytes

Definition at line 354 of file epc-gtpc-header.cc.

References ns3::EpcTft::PacketFilter::direction, GetSerializedSizeBearerTft(), ns3::EpcTft::PacketFilter::localAddress, ns3::EpcTft::PacketFilter::localMask, ns3::EpcTft::PacketFilter::localPortEnd, ns3::EpcTft::PacketFilter::localPortStart, NS_ASSERT_MSG, ns3::EpcTft::PacketFilter::precedence, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadNtohU32(), ns3::Buffer::Iterator::ReadU8(), ns3::EpcTft::PacketFilter::remoteAddress, ns3::EpcTft::PacketFilter::remoteMask, ns3::EpcTft::PacketFilter::remotePortEnd, ns3::EpcTft::PacketFilter::remotePortStart, ns3::EpcTft::PacketFilter::typeOfService, and ns3::EpcTft::PacketFilter::typeOfServiceMask.

Referenced by ns3::GtpcCreateSessionRequestMessage::Deserialize(), and ns3::GtpcCreateSessionResponseMessage::Deserialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DeserializeCause()

uint32_t ns3::GtpcIes::DeserializeCause ( Buffer::Iterator & i,
Cause_t & cause ) const

Deserialize the Cause.

Parameters
iBuffer iterator
[out]causeThe cause
Returns
the number of deserialized bytes

Definition at line 225 of file epc-gtpc-header.cc.

References NS_ASSERT_MSG, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadU8(), and serializedSizeCause.

Referenced by ns3::GtpcCreateSessionResponseMessage::Deserialize(), ns3::GtpcDeleteBearerResponseMessage::Deserialize(), and ns3::GtpcModifyBearerResponseMessage::Deserialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DeserializeEbi()

uint32_t ns3::GtpcIes::DeserializeEbi ( Buffer::Iterator & i,
uint8_t & epsBearerId ) const

Deserialize the eps Bearer Id.

Parameters
iBuffer iterator
[out]epsBearerIdThe eps Bearer Id
Returns
the number of deserialized bytes

Definition at line 249 of file epc-gtpc-header.cc.

References NS_ASSERT_MSG, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadU8(), and serializedSizeEbi.

Referenced by ns3::GtpcCreateSessionRequestMessage::Deserialize(), ns3::GtpcCreateSessionResponseMessage::Deserialize(), ns3::GtpcDeleteBearerCommandMessage::Deserialize(), ns3::GtpcDeleteBearerRequestMessage::Deserialize(), ns3::GtpcDeleteBearerResponseMessage::Deserialize(), and ns3::GtpcModifyBearerRequestMessage::Deserialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DeserializeFteid()

uint32_t ns3::GtpcIes::DeserializeFteid ( Buffer::Iterator & i,
GtpcHeader::Fteid_t & fteid ) const

Deserialize the Fteid.

Parameters
iBuffer iterator
[out]fteidFteid
Returns
the number of deserialized bytes

Definition at line 435 of file epc-gtpc-header.cc.

References ns3::GtpcHeader::Fteid_t::addr, ns3::GtpcHeader::Fteid_t::interfaceType, NS_ASSERT_MSG, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadNtohU32(), ns3::Buffer::Iterator::ReadU8(), serializedSizeFteid, ns3::Ipv4Address::Set(), and ns3::GtpcHeader::Fteid_t::teid.

Referenced by ns3::GtpcCreateSessionRequestMessage::Deserialize(), ns3::GtpcCreateSessionResponseMessage::Deserialize(), and ns3::GtpcModifyBearerRequestMessage::Deserialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DeserializeImsi()

uint32_t ns3::GtpcIes::DeserializeImsi ( Buffer::Iterator & i,
uint64_t & imsi ) const

Deserialize the IMSI.

Parameters
iBuffer iterator
[out]imsiThe IMSI
Returns
the number of deserialized bytes

Definition at line 201 of file epc-gtpc-header.cc.

References NS_ASSERT_MSG, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadNtohU64(), ns3::Buffer::Iterator::ReadU8(), and serializedSizeImsi.

Referenced by ns3::GtpcCreateSessionRequestMessage::Deserialize(), and ns3::GtpcModifyBearerRequestMessage::Deserialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DeserializeUliEcgi()

uint32_t ns3::GtpcIes::DeserializeUliEcgi ( Buffer::Iterator & i,
uint32_t & uliEcgi ) const

Deserialize the UliEcgi.

Parameters
iBuffer iterator
[out]uliEcgiUliEcgi
Returns
the number of deserialized bytes

Definition at line 409 of file epc-gtpc-header.cc.

References ns3::Buffer::Iterator::Next(), NS_ASSERT_MSG, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadNtohU32(), ns3::Buffer::Iterator::ReadU8(), and serializedSizeUliEcgi.

Referenced by ns3::GtpcCreateSessionRequestMessage::Deserialize(), and ns3::GtpcModifyBearerRequestMessage::Deserialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetSerializedSizeBearerTft()

uint32_t ns3::GtpcIes::GetSerializedSizeBearerTft ( std::list< EpcTft::PacketFilter > packetFilters) const
Returns
the BearerTft serialized size
Parameters
packetFiltersThe packet filter

Definition at line 390 of file epc-gtpc-header.cc.

References serializedSizePacketFilter.

Referenced by DeserializeBearerTft(), ns3::GtpcCreateSessionRequestMessage::GetMessageSize(), ns3::GtpcCreateSessionResponseMessage::GetMessageSize(), ns3::GtpcCreateSessionRequestMessage::Serialize(), and ns3::GtpcCreateSessionResponseMessage::Serialize().

+ Here is the caller graph for this function:

◆ ReadNtohU40()

uint64_t ns3::GtpcIes::ReadNtohU40 ( Buffer::Iterator & i)
Parameters
iBuffer iterator
Returns
the five bytes read in the buffer.

Read data and advance the Iterator by the number of bytes read. The data is read in network format and returned in host format.

Definition at line 273 of file epc-gtpc-header.cc.

References ns3::Buffer::Iterator::ReadU8().

Referenced by DeserializeBearerQos().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SerializeBearerContextHeader()

void ns3::GtpcIes::SerializeBearerContextHeader ( Buffer::Iterator & i,
uint16_t length ) const

Serialize the Bearer Context Header.

Parameters
iBuffer iterator
lengthThe length

Definition at line 452 of file epc-gtpc-header.cc.

References ns3::Buffer::Iterator::WriteU16(), and ns3::Buffer::Iterator::WriteU8().

Referenced by ns3::GtpcCreateSessionRequestMessage::Serialize(), ns3::GtpcCreateSessionResponseMessage::Serialize(), ns3::GtpcDeleteBearerCommandMessage::Serialize(), and ns3::GtpcModifyBearerRequestMessage::Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SerializeBearerQos()

void ns3::GtpcIes::SerializeBearerQos ( Buffer::Iterator & i,
EpsBearer bearerQos ) const

Serialize the eps Bearer QoS.

Parameters
iBuffer iterator
bearerQosThe Bearer QoS

Definition at line 289 of file epc-gtpc-header.cc.

References ns3::GbrQosInformation::gbrDl, ns3::EpsBearer::gbrQosInfo, ns3::GbrQosInformation::gbrUl, ns3::GbrQosInformation::mbrDl, ns3::GbrQosInformation::mbrUl, ns3::EpsBearer::qci, ns3::Buffer::Iterator::WriteHtonU16(), WriteHtonU40(), and ns3::Buffer::Iterator::WriteU8().

Referenced by ns3::GtpcCreateSessionRequestMessage::Serialize(), and ns3::GtpcCreateSessionResponseMessage::Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SerializeBearerTft()

void ns3::GtpcIes::SerializeBearerTft ( Buffer::Iterator & i,
std::list< EpcTft::PacketFilter > packetFilters ) const

Serialize the Bearer TFT.

Parameters
iBuffer iterator
packetFiltersThe Packet filters

Definition at line 321 of file epc-gtpc-header.cc.

References serializedSizePacketFilter, ns3::Buffer::Iterator::WriteHtonU16(), ns3::Buffer::Iterator::WriteHtonU32(), and ns3::Buffer::Iterator::WriteU8().

Referenced by ns3::GtpcCreateSessionRequestMessage::Serialize(), and ns3::GtpcCreateSessionResponseMessage::Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SerializeCause()

void ns3::GtpcIes::SerializeCause ( Buffer::Iterator & i,
Cause_t cause ) const

Serialize the Cause.

Parameters
iBuffer iterator
causeThe Cause

Definition at line 215 of file epc-gtpc-header.cc.

References ns3::Buffer::Iterator::WriteHtonU16(), and ns3::Buffer::Iterator::WriteU8().

Referenced by ns3::GtpcCreateSessionResponseMessage::Serialize(), ns3::GtpcDeleteBearerResponseMessage::Serialize(), and ns3::GtpcModifyBearerResponseMessage::Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SerializeEbi()

void ns3::GtpcIes::SerializeEbi ( Buffer::Iterator & i,
uint8_t epsBearerId ) const

Serialize the eps Bearer Id.

Parameters
iBuffer iterator
epsBearerIdThe eps Bearer Id

Definition at line 240 of file epc-gtpc-header.cc.

References ns3::Buffer::Iterator::WriteHtonU16(), and ns3::Buffer::Iterator::WriteU8().

Referenced by ns3::GtpcCreateSessionRequestMessage::Serialize(), ns3::GtpcCreateSessionResponseMessage::Serialize(), ns3::GtpcDeleteBearerCommandMessage::Serialize(), ns3::GtpcDeleteBearerRequestMessage::Serialize(), ns3::GtpcDeleteBearerResponseMessage::Serialize(), and ns3::GtpcModifyBearerRequestMessage::Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SerializeFteid()

void ns3::GtpcIes::SerializeFteid ( Buffer::Iterator & i,
GtpcHeader::Fteid_t fteid ) const

Serialize the Fteid_t.

Parameters
iBuffer iterator
fteidThe Fteid_t

Definition at line 424 of file epc-gtpc-header.cc.

References ns3::GtpcHeader::Fteid_t::addr, ns3::Ipv4Address::Get(), ns3::GtpcHeader::Fteid_t::interfaceType, ns3::GtpcHeader::Fteid_t::teid, ns3::Buffer::Iterator::WriteHtonU16(), ns3::Buffer::Iterator::WriteHtonU32(), and ns3::Buffer::Iterator::WriteU8().

Referenced by ns3::GtpcCreateSessionRequestMessage::Serialize(), ns3::GtpcCreateSessionResponseMessage::Serialize(), and ns3::GtpcModifyBearerRequestMessage::Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SerializeImsi()

void ns3::GtpcIes::SerializeImsi ( Buffer::Iterator & i,
uint64_t imsi ) const

Serialize the IMSI.

Parameters
iBuffer iterator
imsiThe IMSI

Definition at line 192 of file epc-gtpc-header.cc.

References ns3::Buffer::Iterator::WriteHtonU16(), ns3::Buffer::Iterator::WriteHtonU64(), and ns3::Buffer::Iterator::WriteU8().

Referenced by ns3::GtpcCreateSessionRequestMessage::Serialize(), and ns3::GtpcModifyBearerRequestMessage::Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SerializeUliEcgi()

void ns3::GtpcIes::SerializeUliEcgi ( Buffer::Iterator & i,
uint32_t uliEcgi ) const

Serialize the UliEcgi.

Parameters
iBuffer iterator
uliEcgiThe UliEcgi

Definition at line 396 of file epc-gtpc-header.cc.

References ns3::Buffer::Iterator::WriteHtonU16(), ns3::Buffer::Iterator::WriteHtonU32(), and ns3::Buffer::Iterator::WriteU8().

Referenced by ns3::GtpcCreateSessionRequestMessage::Serialize(), and ns3::GtpcModifyBearerRequestMessage::Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ WriteHtonU40()

void ns3::GtpcIes::WriteHtonU40 ( Buffer::Iterator & i,
uint64_t data ) const
Parameters
iBuffer iterator
datadata to write in buffer

Write the data in buffer and advance the iterator position by five bytes. The data is written in network order and the input data is expected to be in host order.

Definition at line 263 of file epc-gtpc-header.cc.

References data, and ns3::Buffer::Iterator::WriteU8().

Referenced by SerializeBearerQos().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ serializedSizeBearerContextHeader

◆ serializedSizeBearerQos

◆ serializedSizeCause

◆ serializedSizeEbi

◆ serializedSizeFteid

◆ serializedSizeImsi

const uint32_t ns3::GtpcIes::serializedSizeImsi = 12

◆ serializedSizePacketFilter

const uint32_t ns3::GtpcIes::serializedSizePacketFilter
Initial value:
=
3 + 9 + 9 + 5 + 5 + 3

Packet filter serialized size.

Definition at line 199 of file epc-gtpc-header.h.

Referenced by GetSerializedSizeBearerTft(), and SerializeBearerTft().

◆ serializedSizeUliEcgi

const uint32_t ns3::GtpcIes::serializedSizeUliEcgi = 12

The documentation for this class was generated from the following files: