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

GTP-C Create Session Request Message. More...

#include "epc-gtpc-header.h"

+ Inheritance diagram for ns3::GtpcCreateSessionRequestMessage:
+ Collaboration diagram for ns3::GtpcCreateSessionRequestMessage:

Classes

struct  BearerContextToBeCreated
 Bearer Context structure. More...
 

Public Member Functions

 GtpcCreateSessionRequestMessage ()
 
 ~GtpcCreateSessionRequestMessage () override
 
uint32_t Deserialize (Buffer::Iterator start) override
 
std::list< BearerContextToBeCreatedGetBearerContextsToBeCreated () const
 Get the Bearer Contexts.
 
uint64_t GetImsi () const
 Get the IMSI.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
uint32_t GetMessageSize () const override
 Get the message size.
 
GtpcHeader::Fteid_t GetSenderCpFteid () const
 Get the Sender CpFteid.
 
uint32_t GetSerializedSize () const override
 
uint32_t GetUliEcgi () const
 Get the UliEcgi.
 
void Print (std::ostream &os) const override
 
void Serialize (Buffer::Iterator start) const override
 
void SetBearerContextsToBeCreated (std::list< BearerContextToBeCreated > bearerContexts)
 Set the Bearer Contexts.
 
void SetImsi (uint64_t imsi)
 Set the IMSI.
 
void SetSenderCpFteid (GtpcHeader::Fteid_t fteid)
 Set the Sender CpFteid.
 
void SetUliEcgi (uint32_t uliEcgi)
 Set the UliEcgi.
 
- Public Member Functions inherited from ns3::GtpcHeader
 GtpcHeader ()
 
 ~GtpcHeader () override
 
void ComputeMessageLength ()
 Compute the message length according to the message type.
 
uint32_t Deserialize (Buffer::Iterator start) override
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
uint16_t GetMessageLength () const
 Get message length.
 
uint8_t GetMessageType () const
 Get message type.
 
uint32_t GetSequenceNumber () const
 Get sequence number.
 
uint32_t GetSerializedSize () const override
 
uint32_t GetTeid () const
 Get TEID.
 
void Print (std::ostream &os) const override
 
void Serialize (Buffer::Iterator start) const override
 
void SetIesLength (uint16_t iesLength)
 Set IEs length.
 
void SetMessageLength (uint16_t messageLength)
 Set message length.
 
void SetMessageType (uint8_t messageType)
 Set message type.
 
void SetSequenceNumber (uint32_t sequenceNumber)
 Set sequence number.
 
void SetTeid (uint32_t teid)
 Set TEID.
 
- Public Member Functions inherited from ns3::Header
 ~Header () override
 
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 
- Public Member Functions inherited from ns3::GtpcIes
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
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::GtpcHeader
static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::Header
static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::Chunk
static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Private Attributes

std::list< BearerContextToBeCreatedm_bearerContextsToBeCreated
 Bearer Context list.
 
uint64_t m_imsi
 IMSI.
 
GtpcHeader::Fteid_t m_senderCpFteid
 Sender CpFteid.
 
uint32_t m_uliEcgi
 UliEcgi.
 

Additional Inherited Members

- Public Types inherited from ns3::GtpcHeader
enum  InterfaceType_t {
  S1U_ENB_GTPU = 0 , S5_SGW_GTPU = 4 , S5_PGW_GTPU = 5 , S5_SGW_GTPC = 6 ,
  S5_PGW_GTPC = 7 , S11_MME_GTPC = 10
}
 Interface Type enumeration. More...
 
enum  MessageType_t {
  Reserved = 0 , CreateSessionRequest = 32 , CreateSessionResponse = 33 , ModifyBearerRequest = 34 ,
  ModifyBearerResponse = 35 , DeleteSessionRequest = 36 , DeleteSessionResponse = 37 , DeleteBearerCommand = 66 ,
  DeleteBearerRequest = 99 , DeleteBearerResponse = 100
}
 Message Type enumeration. More...
 
- Public Types inherited from ns3::GtpcIes
enum  Cause_t { RESERVED = 0 , REQUEST_ACCEPTED = 16 }
 Cause. More...
 
- Public Attributes inherited from ns3::GtpcIes
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.
 
- Protected Member Functions inherited from ns3::GtpcHeader
uint32_t PreDeserialize (Buffer::Iterator &i)
 Deserialize the GTP-C header in the GTP-C messages.
 
void PreSerialize (Buffer::Iterator &i) const
 Serialize the GTP-C header in the GTP-C messages.
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes.
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed.
 

Detailed Description

GTP-C Create Session Request Message.

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

Constructor & Destructor Documentation

◆ GtpcCreateSessionRequestMessage()

ns3::GtpcCreateSessionRequestMessage::GtpcCreateSessionRequestMessage ( )

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

References ns3::GtpcHeader::CreateSessionRequest, m_imsi, m_senderCpFteid, m_uliEcgi, ns3::GtpcHeader::SetMessageType(), and ns3::GtpcHeader::SetSequenceNumber().

+ Here is the call graph for this function:

◆ ~GtpcCreateSessionRequestMessage()

ns3::GtpcCreateSessionRequestMessage::~GtpcCreateSessionRequestMessage ( )
override

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

Member Function Documentation

◆ Deserialize()

uint32_t ns3::GtpcCreateSessionRequestMessage::Deserialize ( Buffer::Iterator start)
overridevirtual
Parameters
startan iterator which points to where the header should read from.
Returns
the number of bytes read.

This method is used by Packet::RemoveHeader to re-create a header from the byte buffer of a packet. The data read is expected to match bit-for-bit the representation of this header in real networks.

Note that data is not actually removed from the buffer to which the iterator points. Both Packet::RemoveHeader() and Packet::PeekHeader() call Deserialize(), but only the RemoveHeader() has additional statements to remove the header bytes from the underlying buffer and associated metadata.

Implements ns3::Header.

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

References ns3::GtpcCreateSessionRequestMessage::BearerContextToBeCreated::bearerLevelQos, ns3::Create(), ns3::GtpcIes::DeserializeBearerContextHeader(), ns3::GtpcIes::DeserializeBearerQos(), ns3::GtpcIes::DeserializeBearerTft(), ns3::GtpcIes::DeserializeEbi(), ns3::GtpcIes::DeserializeFteid(), ns3::GtpcIes::DeserializeImsi(), ns3::GtpcIes::DeserializeUliEcgi(), ns3::GtpcCreateSessionRequestMessage::BearerContextToBeCreated::epsBearerId, ns3::Buffer::Iterator::GetRemainingSize(), GetSerializedSize(), m_bearerContextsToBeCreated, m_imsi, m_senderCpFteid, m_uliEcgi, ns3::GtpcHeader::PreDeserialize(), ns3::GtpcCreateSessionRequestMessage::BearerContextToBeCreated::sgwS5uFteid, and ns3::GtpcCreateSessionRequestMessage::BearerContextToBeCreated::tft.

+ Here is the call graph for this function:

◆ GetBearerContextsToBeCreated()

std::list< GtpcCreateSessionRequestMessage::BearerContextToBeCreated > ns3::GtpcCreateSessionRequestMessage::GetBearerContextsToBeCreated ( ) const

Get the Bearer Contexts.

Returns
the Bearer Context list

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

References m_bearerContextsToBeCreated.

Referenced by ns3::EpcPgwApplication::DoRecvCreateSessionRequest(), and ns3::EpcSgwApplication::DoRecvCreateSessionRequest().

+ Here is the caller graph for this function:

◆ GetImsi()

uint64_t ns3::GtpcCreateSessionRequestMessage::GetImsi ( ) const

Get the IMSI.

Returns
IMSI

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

References m_imsi.

Referenced by ns3::EpcPgwApplication::DoRecvCreateSessionRequest(), and ns3::EpcSgwApplication::DoRecvCreateSessionRequest().

+ Here is the caller graph for this function:

◆ GetInstanceTypeId()

TypeId ns3::GtpcCreateSessionRequestMessage::GetInstanceTypeId ( ) const
overridevirtual

Get the most derived TypeId for this Object.

This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.

Returns
The TypeId associated to the most-derived type of this instance.

Implements ns3::ObjectBase.

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

References GetTypeId().

+ Here is the call graph for this function:

◆ GetMessageSize()

uint32_t ns3::GtpcCreateSessionRequestMessage::GetMessageSize ( ) const
overridevirtual

Get the message size.

Subclasses are supposed to have a message size greater than zero.

Returns
the message size

Reimplemented from ns3::GtpcHeader.

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

References ns3::GtpcIes::GetSerializedSizeBearerTft(), m_bearerContextsToBeCreated, ns3::GtpcIes::serializedSizeBearerContextHeader, ns3::GtpcIes::serializedSizeBearerQos, ns3::GtpcIes::serializedSizeEbi, ns3::GtpcIes::serializedSizeFteid, ns3::GtpcIes::serializedSizeImsi, and ns3::GtpcIes::serializedSizeUliEcgi.

Referenced by GetSerializedSize().

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

◆ GetSenderCpFteid()

GtpcHeader::Fteid_t ns3::GtpcCreateSessionRequestMessage::GetSenderCpFteid ( ) const

Get the Sender CpFteid.

Returns
Sender CpFteid

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

References m_senderCpFteid.

Referenced by ns3::EpcPgwApplication::DoRecvCreateSessionRequest(), and ns3::EpcSgwApplication::DoRecvCreateSessionRequest().

+ Here is the caller graph for this function:

◆ GetSerializedSize()

uint32_t ns3::GtpcCreateSessionRequestMessage::GetSerializedSize ( ) const
overridevirtual
Returns
the expected size of the header.

This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. This method should return the number of bytes which are needed to store the full header data by Serialize.

Implements ns3::Header.

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

References GetMessageSize(), and ns3::GtpcHeader::GetSerializedSize().

Referenced by Deserialize().

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

◆ GetTypeId()

TypeId ns3::GtpcCreateSessionRequestMessage::GetTypeId ( )
static

Get the type ID.

Returns
the object TypeId

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

References ns3::TypeId::SetParent().

Referenced by GetInstanceTypeId().

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

◆ GetUliEcgi()

uint32_t ns3::GtpcCreateSessionRequestMessage::GetUliEcgi ( ) const

Get the UliEcgi.

Returns
UliEcgi

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

References m_uliEcgi.

Referenced by ns3::EpcPgwApplication::DoRecvCreateSessionRequest(), and ns3::EpcSgwApplication::DoRecvCreateSessionRequest().

+ Here is the caller graph for this function:

◆ Print()

void ns3::GtpcCreateSessionRequestMessage::Print ( std::ostream & os) const
overridevirtual
Parameters
osoutput stream This method is used by Packet::Print to print the content of a header as ascii data to a c++ output stream. Although the header is free to format its output as it wishes, it is recommended to follow a few rules to integrate with the packet pretty printer: start with flags, small field values located between a pair of parens. Values should be separated by whitespace. Follow the parens with the important fields, separated by whitespace. i.e.: (field1 val1 field2 val2 field3 val3) field4 val4 field5 val5

Implements ns3::Header.

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

References m_imsi, and m_uliEcgi.

◆ Serialize()

void ns3::GtpcCreateSessionRequestMessage::Serialize ( Buffer::Iterator start) const
overridevirtual
Parameters
startan iterator which points to where the header should be written.

This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. The data written is expected to match bit-for-bit the representation of this header in a real network.

Implements ns3::Header.

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

References ns3::GtpcIes::GetSerializedSizeBearerTft(), m_bearerContextsToBeCreated, m_imsi, m_senderCpFteid, m_uliEcgi, ns3::GtpcHeader::PreSerialize(), ns3::GtpcIes::SerializeBearerContextHeader(), ns3::GtpcIes::SerializeBearerQos(), ns3::GtpcIes::SerializeBearerTft(), ns3::GtpcIes::serializedSizeBearerQos, ns3::GtpcIes::serializedSizeEbi, ns3::GtpcIes::serializedSizeFteid, ns3::GtpcIes::SerializeEbi(), ns3::GtpcIes::SerializeFteid(), ns3::GtpcIes::SerializeImsi(), and ns3::GtpcIes::SerializeUliEcgi().

+ Here is the call graph for this function:

◆ SetBearerContextsToBeCreated()

void ns3::GtpcCreateSessionRequestMessage::SetBearerContextsToBeCreated ( std::list< BearerContextToBeCreated > bearerContexts)

Set the Bearer Contexts.

Parameters
bearerContextsthe Bearer Context list

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

References m_bearerContextsToBeCreated.

Referenced by ns3::EpcMmeApplication::DoInitialUeMessage(), and ns3::EpcSgwApplication::DoRecvCreateSessionRequest().

+ Here is the caller graph for this function:

◆ SetImsi()

void ns3::GtpcCreateSessionRequestMessage::SetImsi ( uint64_t imsi)

Set the IMSI.

Parameters
imsiIMSI

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

References m_imsi.

Referenced by ns3::EpcMmeApplication::DoInitialUeMessage(), and ns3::EpcSgwApplication::DoRecvCreateSessionRequest().

+ Here is the caller graph for this function:

◆ SetSenderCpFteid()

void ns3::GtpcCreateSessionRequestMessage::SetSenderCpFteid ( GtpcHeader::Fteid_t fteid)

Set the Sender CpFteid.

Parameters
fteidSender CpFteid

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

References m_senderCpFteid.

Referenced by ns3::EpcMmeApplication::DoInitialUeMessage(), and ns3::EpcSgwApplication::DoRecvCreateSessionRequest().

+ Here is the caller graph for this function:

◆ SetUliEcgi()

void ns3::GtpcCreateSessionRequestMessage::SetUliEcgi ( uint32_t uliEcgi)

Set the UliEcgi.

Parameters
uliEcgiUliEcgi

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

References m_uliEcgi.

Referenced by ns3::EpcMmeApplication::DoInitialUeMessage(), and ns3::EpcSgwApplication::DoRecvCreateSessionRequest().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_bearerContextsToBeCreated

std::list<BearerContextToBeCreated> ns3::GtpcCreateSessionRequestMessage::m_bearerContextsToBeCreated
private

Bearer Context list.

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

Referenced by Deserialize(), GetBearerContextsToBeCreated(), GetMessageSize(), Serialize(), and SetBearerContextsToBeCreated().

◆ m_imsi

uint64_t ns3::GtpcCreateSessionRequestMessage::m_imsi
private

◆ m_senderCpFteid

GtpcHeader::Fteid_t ns3::GtpcCreateSessionRequestMessage::m_senderCpFteid
private

◆ m_uliEcgi

uint32_t ns3::GtpcCreateSessionRequestMessage::m_uliEcgi
private

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