PcapPlusPlus  Next
pcpp::GtpV2InformationElement Class Reference

#include <GtpLayer.h>

Inheritance diagram for pcpp::GtpV2InformationElement:
pcpp::TLVRecord< uint8_t, uint16_t >

Public Types

enum class  Type : uint8_t {
  Unknown = 0 , Imsi = 1 , Cause = 2 , Recovery = 3 ,
  StnSr = 51 , Apn = 71 , Ambr = 72 , Ebi = 73 ,
  IpAddress = 74 , Mei = 75 , Msisdn = 76 , Indication = 77 ,
  Pco = 78 , Paa = 79 , BearerQos = 80 , FlowQos = 81 ,
  RatType = 82 , ServingNetwork = 83 , BearerTft = 84 , Tad = 85 ,
  Uli = 86 , FTeid = 87 , Tmsi = 88 , GlobalCnId = 89 ,
  S103PdnDataForwardingInfo = 90 , S1UDataForwardingInfo = 91 , DelayValue = 92 , BearerContext = 93 ,
  ChargingId = 94 , ChargingCharacteristics = 95 , TraceInformation = 96 , BearerFlags = 97 ,
  PdnType = 99 , Pti = 100 , MmContext1 = 103 , MmContext2 = 104 ,
  MmContext3 = 105 , MmContext4 = 106 , MmContext5 = 107 , MmContext6 = 108 ,
  PdnConnection = 109 , PduNumbers = 110 , PTmsi = 111 , PTmsiSignature = 112 ,
  HopCounter = 113 , UeTimeZone = 114 , TraceReference = 115 , CompleteRequestMessage = 116 ,
  Guti = 117 , FContainer = 118 , FCause = 119 , PlmnId = 120 ,
  TargetIdentification = 121 , PacketFlowId = 123 , RabContext = 124 , SourceRncPdcpContextInfo = 125 ,
  PortNumber = 126 , ApnRestriction = 127 , SelectionMode = 128 , SourceIdentification = 129 ,
  ChangeReportingAction = 131 , FqCsid = 132 , ChannelNeeded = 133 , EmlppPriority = 134 ,
  NodeType = 135 , Fqdn = 136 , Ti = 137 , MbmsSessionDuration = 138 ,
  MbmsServiceArea = 139 , MbmsSessionIdentifier = 140 , MbmsFlowIdentifier = 141 , MbmsIpMulticastDistribution = 142 ,
  MbmsDistributionAcknowledge = 143 , RfspIndex = 144 , Uci = 145 , CsgInformationReportingAction = 146 ,
  CsgId = 147 , Cmi = 148 , ServiceIndicator = 149 , DetachType = 150 ,
  Ldn = 151 , NodeFeatures = 152 , MbmsTimeToDataTransfer = 153 , Throttling = 154 ,
  Arp = 155 , EpcTimer = 156 , SignallingPriorityIndication = 157 , Tmgi = 158 ,
  AdditionalMmContextForSrvcc = 159 , AdditionalFlagsForSrvcc = 160 , MdtConfiguration = 162 , Apco = 163 ,
  AbsoluteTimeOfMbmsDataTransfer = 164 , HenbInformationReporting = 165 , Ipv4ConfigurationParameters = 166 , ChangeToReportFlags = 167 ,
  ActionIndication = 168 , TwanIdentifier = 169 , UliTimestamp = 170 , MbmsFlags = 171 ,
  RanNasCause = 172 , CnOperatorSelectionEntity = 173 , Twmi = 174 , NodeNumber = 175 ,
  NodeIdentifier = 176 , PresenceReportingAreaAction = 177 , PresenceReportingAreaInformation = 178 , TwanIdentifierTimestamp = 179 ,
  OverloadControlInformation = 180 , LoadControlInformation = 181 , Metric = 182 , SequenceNumber = 183 ,
  ApnAndRelativeCapacity = 184 , WlanOffloadabilityIndication = 185 , PagingAndServiceInformation = 186 , IntegerNumber = 187 ,
  MillisecondTimeStamp = 188 , MonitoringEventInformation = 189 , EcgiList = 190 , RemoteUeContext = 191 ,
  RemoteUserId = 192 , RemoteUeIpInformation = 193 , CiotOptimizationsSupportIndication = 194 , ScefPdnConnection = 195 ,
  HeaderCompressionConfiguration = 196 , ExtendedPco = 197 , ServingPlmnRateControl = 198 , Counter = 199 ,
  MappedUeUsageType = 200 , SecondaryRatUsageDataReport = 201 , UpFunctionSelectionIndicationFlags = 202 , MaximumPacketLossRate = 203 ,
  ApnRateControlStatus = 204 , ExtendedTraceInformation = 205 , MonitoringEventExtensionInformation = 206 , AdditionalRrmPolicyIndex = 207 ,
  V2xContext = 208 , Pc5QosParameters = 209 , ServicesAuthorized = 210 , BitRate = 211 ,
  Pc5QosFlow = 212 , SgiPtpTunnelAddress = 213
}
 GTPv2 Information Element (IE) types as defined in 3GPP TS 29.274. More...
 

Public Member Functions

 GtpV2InformationElement (uint8_t *infoElementRawData)
 
GtpV2InformationElement::Type getIEType ()
 
uint8_t getCRFlag ()
 
uint8_t getInstance ()
 
size_t getTotalSize () const override
 
size_t getDataSize () const override
 
- Public Member Functions inherited from pcpp::TLVRecord< uint8_t, uint16_t >
 TLVRecord (uint8_t *recordRawData)
 
 TLVRecord (const TLVRecord &other)
 
virtual ~TLVRecord ()=default
 A d'tor for this class, currently does nothing.
 
void assign (uint8_t *recordRawData)
 
TLVRecordoperator= (const TLVRecord &other)
 
bool operator== (const TLVRecord &rhs) const
 
bool operator!= (const TLVRecord &rhs) const
 
uint8_t getType () const
 
uint8_t * getValue () const
 
bool isNull () const
 
bool isNotNull () const
 
uint8_t * getRecordBasePtr () const
 
void purgeRecordData ()
 Free the memory of the TLV record raw data.
 
getValueAs (size_t offset=0) const
 
bool setValue (T newValue, int valueOffset=0)
 

Additional Inherited Members

- Static Public Member Functions inherited from pcpp::TLVRecord< uint8_t, uint16_t >
static bool canAssign (const uint8_t *recordRawData, size_t tlvDataLen)
 

Detailed Description

A wrapper class for GTPv2 information elements (IE). This class does not create or modify IEs, but rather serves as a wrapper and provides useful methods for retrieving data from them

Member Enumeration Documentation

◆ Type

enum pcpp::GtpV2InformationElement::Type : uint8_t
strong

GTPv2 Information Element (IE) types as defined in 3GPP TS 29.274.

Enumerator
Unknown 

Unknown or reserved value.

Imsi 

International Mobile Subscriber Identity.

Cause 

Indicates the result of a procedure.

Recovery 

Recovery counter for GTP path management.

StnSr 

Session Transfer Number for SRVCC.

Apn 

Access Point Name.

Ambr 

Aggregate Maximum Bit Rate.

Ebi 

EPS Bearer ID.

IpAddress 

IPv4/IPv6 Address.

Mei 

Mobile Equipment Identity (IMEI or IMEISV)

Msisdn 

Mobile Station International Subscriber Directory Number.

Indication 

Indication flags for various features and capabilities.

Pco 

Protocol Configuration Options.

Paa 

PDN Address Allocation.

BearerQos 

Bearer Level Quality of Service.

FlowQos 

Flow Level Quality of Service.

RatType 

Radio Access Technology Type.

ServingNetwork 

Current PLMN and MME identifier.

BearerTft 

Bearer Traffic Flow Template.

Tad 

Traffic Aggregation Description.

Uli 

User Location Information.

FTeid 

Fully Qualified TEID.

Tmsi 

Temporary Mobile Subscriber Identity.

GlobalCnId 

Global Core Network ID.

S103PdnDataForwardingInfo 

S103 PDN Data Forwarding Info.

S1UDataForwardingInfo 

S1-U Data Forwarding Info.

DelayValue 

Delay Value in integer multiples of 50 milliseconds.

BearerContext 

Bearer Context.

ChargingId 

Charging ID for this PDP context.

ChargingCharacteristics 

Charging Characteristics.

TraceInformation 

Trace Information.

BearerFlags 

Bearer Flags.

PdnType 

PDN Type (IPv4, IPv6, IPv4v6)

Pti 

Procedure Transaction ID.

MmContext1 

MM Context (GSM Key and Triplets)

MmContext2 

MM Context (UMTS Key, Used Cipher and Quintuplets)

MmContext3 

MM Context (GSM Key, Used Cipher and Quintuplets)

MmContext4 

MM Context (UMTS Key and Quintuplets)

MmContext5 

MM Context (EPS Security Context, Quadruplets and Quintuplets)

MmContext6 

MM Context (UMTS Key, Quadruplets and Quintuplets)

PdnConnection 

PDN Connection.

PduNumbers 

PDU Numbers.

PTmsi 

Packet TMSI.

PTmsiSignature 

P-TMSI Signature.

HopCounter 

Hop Counter.

UeTimeZone 

UE Time Zone.

TraceReference 

Trace Reference.

CompleteRequestMessage 

Complete Request Message.

Guti 

Globally Unique Temporary Identity.

FContainer 

F-Container.

FCause 

F-Cause.

PlmnId 

PLMN Identity.

TargetIdentification 

Target Identification.

PacketFlowId 

Packet Flow ID.

RabContext 

RAB Context.

SourceRncPdcpContextInfo 

Source RNC PDCP Context Info.

PortNumber 

Port Number.

ApnRestriction 

APN Restriction.

SelectionMode 

Selection Mode.

SourceIdentification 

Source Identification.

ChangeReportingAction 

Change Reporting Action.

FqCsid 

Fully Qualified PDN Connection Set Identifier.

ChannelNeeded 

Channel Needed.

EmlppPriority 

eMLPP Priority

NodeType 

Node Type.

Fqdn 

Fully Qualified Domain Name.

Ti 

Transaction Identifier.

MbmsSessionDuration 

MBMS Session Duration.

MbmsServiceArea 

MBMS Service Area.

MbmsSessionIdentifier 

MBMS Session Identifier.

MbmsFlowIdentifier 

MBMS Flow Identifier.

MbmsIpMulticastDistribution 

MBMS IP Multicast Distribution.

MbmsDistributionAcknowledge 

MBMS Distribution Acknowledge.

RfspIndex 

RF Selection Priority Index.

Uci 

User CSG Information.

CsgInformationReportingAction 

CSG Information Reporting Action.

CsgId 

CSG ID.

Cmi 

CSG Membership Indication.

ServiceIndicator 

Service Indicator.

DetachType 

Detach Type.

Ldn 

Local Distinguished Name.

NodeFeatures 

Node Features.

MbmsTimeToDataTransfer 

MBMS Time To Data Transfer.

Throttling 

Throttling.

Arp 

Allocation Retention Priority.

EpcTimer 

EPC Timer.

SignallingPriorityIndication 

Signalling Priority Indication.

Tmgi 

Temporary Mobile Group Identity.

AdditionalMmContextForSrvcc 

Additional MM Context For SRVCC.

AdditionalFlagsForSrvcc 

Additional Flags For SRVCC.

MdtConfiguration 

MDT Configuration.

Apco 

Additional Protocol Configuration Options.

AbsoluteTimeOfMbmsDataTransfer 

Absolute Time of MBMS Data Transfer.

HenbInformationReporting 

H(e)NB Information Reporting.

Ipv4ConfigurationParameters 

IPv4 Configuration Parameters.

ChangeToReportFlags 

Change To Report Flags.

ActionIndication 

Action Indication.

TwanIdentifier 

TWAN Identifier.

UliTimestamp 

ULI Timestamp.

MbmsFlags 

MBMS Flags.

RanNasCause 

RAN/NAS Cause.

CnOperatorSelectionEntity 

CN Operator Selection Entity.

Twmi 

Trusted WLAN Mode Indication.

NodeNumber 

Node Number.

NodeIdentifier 

Node Identifier.

PresenceReportingAreaAction 

Presence Reporting Area Action.

PresenceReportingAreaInformation 

Presence Reporting Area Information.

TwanIdentifierTimestamp 

TWAN Identifier Timestamp.

OverloadControlInformation 

Overload Control Information.

LoadControlInformation 

Load Control Information.

Metric 

Metric.

SequenceNumber 

Sequence Number.

ApnAndRelativeCapacity 

APN and Relative Capacity.

WlanOffloadabilityIndication 

WLAN Offloadability Indication.

PagingAndServiceInformation 

Paging and Service Information.

IntegerNumber 

Integer Number.

MillisecondTimeStamp 

Millisecond Time Stamp.

MonitoringEventInformation 

Monitoring Event Information.

EcgiList 

ECGI List.

RemoteUeContext 

Remote UE Context.

RemoteUserId 

Remote User ID.

RemoteUeIpInformation 

Remote UE IP Information.

CiotOptimizationsSupportIndication 

CIoT Optimizations Support Indication.

ScefPdnConnection 

SCEF PDN Connection.

HeaderCompressionConfiguration 

Header Compression Configuration.

ExtendedPco 

Extended Protocol Configuration Options.

ServingPlmnRateControl 

Serving PLMN Rate Control.

Counter 

Counter.

MappedUeUsageType 

Mapped UE Usage Type.

SecondaryRatUsageDataReport 

Secondary RAT Usage Data Report.

UpFunctionSelectionIndicationFlags 

UP Function Selection Indication Flags.

MaximumPacketLossRate 

Maximum Packet Loss Rate.

ApnRateControlStatus 

APN Rate Control Status.

ExtendedTraceInformation 

Extended Trace Information.

MonitoringEventExtensionInformation 

Monitoring Event Extension Information.

AdditionalRrmPolicyIndex 

Additional RRM Policy Index.

V2xContext 

V2X Context.

Pc5QosParameters 

PC5 QoS Parameters.

ServicesAuthorized 

Services Authorized.

BitRate 

Bit Rate.

Pc5QosFlow 

PC5 QoS Flow.

SgiPtpTunnelAddress 

SGi PtP Tunnel Address.

Constructor & Destructor Documentation

◆ GtpV2InformationElement()

pcpp::GtpV2InformationElement::GtpV2InformationElement ( uint8_t *  infoElementRawData)
inlineexplicit

A c'tor for this class that gets a pointer to the IE raw data (byte array)

Parameters
[in]infoElementRawDataA pointer to the IE raw data

Member Function Documentation

◆ getCRFlag()

uint8_t pcpp::GtpV2InformationElement::getCRFlag ( )
Returns
The IE CR flag

◆ getDataSize()

size_t pcpp::GtpV2InformationElement::getDataSize ( ) const
overridevirtual
Returns
The size of the record value (meaning the size of the 'V' part in TLV)

Implements pcpp::TLVRecord< uint8_t, uint16_t >.

◆ getIEType()

GtpV2InformationElement::Type pcpp::GtpV2InformationElement::getIEType ( )
Returns
The information element (IE) type

◆ getInstance()

uint8_t pcpp::GtpV2InformationElement::getInstance ( )
Returns
The IE instance value

◆ getTotalSize()

size_t pcpp::GtpV2InformationElement::getTotalSize ( ) const
overridevirtual
Returns
The total size of the TLV record (in bytes)

Implements pcpp::TLVRecord< uint8_t, uint16_t >.