7#ifndef NR_EPC_GTPC_HEADER_H
8#define NR_EPC_GTPC_HEADER_H
10#include "nr-epc-tft.h"
11#include "nr-eps-bearer.h"
13#include "ns3/header.h"
36 TypeId GetInstanceTypeId()
const override;
37 uint32_t GetSerializedSize()
const override;
38 void Serialize(Buffer::Iterator start)
const override;
39 uint32_t Deserialize(Buffer::Iterator start)
override;
40 void Print(std::ostream& os)
const override;
126 CreateSessionRequest = 32,
127 CreateSessionResponse = 33,
128 ModifyBearerRequest = 34,
129 ModifyBearerResponse = 35,
130 DeleteSessionRequest = 36,
131 DeleteSessionResponse = 37,
132 DeleteBearerCommand = 66,
133 DeleteBearerRequest = 99,
134 DeleteBearerResponse = 100,
147 uint8_t m_messageType;
153 uint16_t m_messageLength;
161 uint32_t m_sequenceNumber;
190 REQUEST_ACCEPTED = 16,
198 3 + 9 + 9 + 5 + 5 + 3;
213 void SerializeImsi(Buffer::Iterator& i, uint64_t imsi)
const;
241 void SerializeEbi(Buffer::Iterator& i, uint8_t epsBearerId)
const;
248 uint32_t
DeserializeEbi(Buffer::Iterator& i, uint8_t& epsBearerId)
const;
258 void WriteHtonU40(Buffer::Iterator& i, uint64_t data)
const;
289 std::list<NrEpcTft::PacketFilter> packetFilters)
const;
355 TypeId GetInstanceTypeId()
const override;
356 uint32_t GetSerializedSize()
const override;
357 void Serialize(Buffer::Iterator start)
const override;
358 uint32_t Deserialize(Buffer::Iterator start)
override;
359 void Print(std::ostream& os)
const override;
423 std::list<BearerContextToBeCreated> m_bearerContextsToBeCreated;
440 TypeId GetInstanceTypeId()
const override;
441 uint32_t GetSerializedSize()
const override;
442 void Serialize(Buffer::Iterator start)
const override;
443 uint32_t Deserialize(Buffer::Iterator start)
override;
444 void Print(std::ostream& os)
const override;
496 std::list<BearerContextCreated> m_bearerContextsCreated;
513 TypeId GetInstanceTypeId()
const override;
514 uint32_t GetSerializedSize()
const override;
515 void Serialize(Buffer::Iterator start)
const override;
516 uint32_t Deserialize(Buffer::Iterator start)
override;
517 void Print(std::ostream& os)
const override;
567 std::list<BearerContextToBeModified> m_bearerContextsToBeModified;
584 TypeId GetInstanceTypeId()
const override;
585 uint32_t GetSerializedSize()
const override;
586 void Serialize(Buffer::Iterator start)
const override;
587 uint32_t Deserialize(Buffer::Iterator start)
override;
588 void Print(std::ostream& os)
const override;
620 TypeId GetInstanceTypeId()
const override;
621 uint32_t GetSerializedSize()
const override;
622 void Serialize(Buffer::Iterator start)
const override;
623 uint32_t Deserialize(Buffer::Iterator start)
override;
624 void Print(std::ostream& os)
const override;
645 std::list<BearerContext> m_bearerContexts;
662 TypeId GetInstanceTypeId()
const override;
663 uint32_t GetSerializedSize()
const override;
664 void Serialize(Buffer::Iterator start)
const override;
665 uint32_t Deserialize(Buffer::Iterator start)
override;
666 void Print(std::ostream& os)
const override;
681 std::list<uint8_t> m_epsBearerIds;
698 TypeId GetInstanceTypeId()
const override;
699 uint32_t GetSerializedSize()
const override;
700 void Serialize(Buffer::Iterator start)
const override;
701 uint32_t Deserialize(Buffer::Iterator start)
override;
702 void Print(std::ostream& os)
const override;
729 std::list<uint8_t> m_epsBearerIds;
This class contains the specification of EPS Bearers.
NrGtpcHeader::Fteid_t GetSenderCpFteid() const
void SetSenderCpFteid(NrGtpcHeader::Fteid_t fteid)
void SetImsi(uint64_t imsi)
void SetUliEcgi(uint32_t uliEcgi)
uint32_t GetMessageSize() const override
std::list< BearerContextToBeCreated > GetBearerContextsToBeCreated() const
void SetBearerContextsToBeCreated(std::list< BearerContextToBeCreated > bearerContexts)
uint32_t GetUliEcgi() const
static TypeId GetTypeId()
Get the type ID.
uint32_t GetMessageSize() const override
void SetCause(Cause_t cause)
static TypeId GetTypeId()
Get the type ID.
void SetBearerContextsCreated(std::list< BearerContextCreated > bearerContexts)
std::list< BearerContextCreated > GetBearerContextsCreated() const
void SetSenderCpFteid(NrGtpcHeader::Fteid_t fteid)
NrGtpcHeader::Fteid_t GetSenderCpFteid() const
void SetBearerContexts(std::list< BearerContext > bearerContexts)
uint32_t GetMessageSize() const override
static TypeId GetTypeId()
Get the type ID.
std::list< BearerContext > GetBearerContexts() const
uint32_t GetMessageSize() const override
void SetEpsBearerIds(std::list< uint8_t > epsBearerIds)
std::list< uint8_t > GetEpsBearerIds() const
static TypeId GetTypeId()
Get the type ID.
std::list< uint8_t > GetEpsBearerIds() const
static TypeId GetTypeId()
Get the type ID.
void SetEpsBearerIds(std::list< uint8_t > epsBearerIds)
void SetCause(Cause_t cause)
uint32_t GetMessageSize() const override
uint32_t DeserializeUliEcgi(Buffer::Iterator &i, uint32_t &uliEcgi) const
const uint32_t serializedSizeEbi
EBI serialized size.
void SerializeEbi(Buffer::Iterator &i, uint8_t epsBearerId) const
void SerializeUliEcgi(Buffer::Iterator &i, uint32_t uliEcgi) const
uint32_t DeserializeBearerQos(Buffer::Iterator &i, NrEpsBearer &bearerQos)
uint32_t DeserializeEbi(Buffer::Iterator &i, uint8_t &epsBearerId) const
uint32_t DeserializeImsi(Buffer::Iterator &i, uint64_t &imsi) const
const uint32_t serializedSizeCause
Cause serialized size.
void SerializeCause(Buffer::Iterator &i, Cause_t cause) const
const uint32_t serializedSizeFteid
Fteid serialized size.
void SerializeBearerTft(Buffer::Iterator &i, std::list< NrEpcTft::PacketFilter > packetFilters) const
uint64_t ReadNtohU40(Buffer::Iterator &i)
const uint32_t serializedSizeUliEcgi
UliEcgi serialized size.
uint32_t DeserializeCause(Buffer::Iterator &i, Cause_t &cause) const
void SerializeBearerQos(Buffer::Iterator &i, NrEpsBearer bearerQos) const
uint32_t DeserializeFteid(Buffer::Iterator &i, NrGtpcHeader::Fteid_t &fteid) const
void SerializeFteid(Buffer::Iterator &i, NrGtpcHeader::Fteid_t fteid) const
const uint32_t serializedSizePacketFilter
Packet filter serialized size.
const uint32_t serializedSizeBearerContextHeader
Fteid serialized size.
void SerializeImsi(Buffer::Iterator &i, uint64_t imsi) const
const uint32_t serializedSizeImsi
IMSI serialized size.
uint32_t GetSerializedSizeBearerTft(std::list< NrEpcTft::PacketFilter > packetFilters) const
void SerializeBearerContextHeader(Buffer::Iterator &i, uint16_t length) const
const uint32_t serializedSizeBearerQos
Bearer QoS serialized size.
uint32_t DeserializeBearerContextHeader(Buffer::Iterator &i, uint16_t &length) const
uint32_t DeserializeBearerTft(Buffer::Iterator &i, Ptr< NrEpcTft > epcTft) const
void WriteHtonU40(Buffer::Iterator &i, uint64_t data) const
uint32_t GetUliEcgi() const
void SetBearerContextsToBeModified(std::list< BearerContextToBeModified > bearerContexts)
std::list< BearerContextToBeModified > GetBearerContextsToBeModified() const
static TypeId GetTypeId()
Get the type ID.
void SetUliEcgi(uint32_t uliEcgi)
uint32_t GetMessageSize() const override
void SetImsi(uint64_t imsi)
void SetCause(Cause_t cause)
static TypeId GetTypeId()
Get the type ID.
uint32_t GetMessageSize() const override
NrEpsBearer bearerLevelQos
bearer QOS level
uint8_t epsBearerId
EPS bearer ID.
NrGtpcHeader::Fteid_t sgwS5uFteid
FTEID.
Ptr< NrEpcTft > tft
traffic flow template
uint8_t epsBearerId
EPS bearer ID.
Ptr< NrEpcTft > tft
Bearer traffic flow template.
NrGtpcHeader::Fteid_t fteid
FTEID.
NrEpsBearer bearerLevelQos
Bearer QOS level.
uint8_t m_epsBearerId
EPS bearer ID.
NrGtpcHeader::Fteid_t fteid
FTEID.
uint8_t epsBearerId
EPS bearer ID.