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
}
 

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
 
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 ()
 
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 >.