|
| | GtpV2Layer (uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet) |
| |
| | GtpV2Layer (GtpV2MessageType messageType, uint32_t sequenceNumber, bool setTeid=false, uint32_t teid=0, bool setMessagePriority=false, std::bitset< 4 > messagePriority=0) |
| |
| GtpV2MessageType | getMessageType () const |
| |
| void | setMessageType (const GtpV2MessageType &type) |
| |
| uint16_t | getMessageLength () const |
| |
| bool | isPiggybacking () const |
| |
| std::pair< bool, uint32_t > | getTeid () const |
| |
| void | setTeid (uint32_t teid) |
| |
|
void | unsetTeid () |
| | Unset Tunnel Endpoint Identifier (TEID) if exists in the layer (otherwise does nothing)
|
| |
| uint32_t | getSequenceNumber () const |
| |
| void | setSequenceNumber (uint32_t sequenceNumber) |
| |
| std::pair< bool, uint8_t > | getMessagePriority () const |
| |
| void | setMessagePriority (const std::bitset< 4 > &messagePriority) |
| |
|
void | unsetMessagePriority () |
| | Unset Message Priority if exists in the layer (otherwise does nothing)
|
| |
| GtpV2InformationElement | getFirstInformationElement () const |
| |
| GtpV2InformationElement | getNextInformationElement (GtpV2InformationElement infoElement) const |
| |
| GtpV2InformationElement | getInformationElement (GtpV2InformationElement::Type infoElementType) const |
| |
| size_t | getInformationElementCount () const |
| |
| GtpV2InformationElement | addInformationElement (const GtpV2InformationElementBuilder &infoElementBuilder) |
| |
| GtpV2InformationElement | addInformationElementAfter (const GtpV2InformationElementBuilder &infoElementBuilder, GtpV2InformationElement::Type infoElementType) |
| |
| bool | removeInformationElement (GtpV2InformationElement::Type infoElementType) |
| |
| bool | removeAllInformationElements () |
| |
|
void | parseNextLayer () override |
| | Identifies if the next layer is GTPv2 piggyback. Otherwise sets PayloadLayer.
|
| |
| size_t | getHeaderLen () const override |
| |
|
void | computeCalculateFields () override |
| | Computes the piggybacking flag by checking if the next layer is also a GTPv2 message.
|
| |
| std::string | toString () const override |
| |
| OsiModelLayer | getOsiModelLayer () const override |
| |
| | ~Layer () override |
| |
| Layer * | getNextLayer () const |
| |
| Layer * | getPrevLayer () const |
| |
| ProtocolType | getProtocol () const |
| |
| bool | isMemberOfProtocolFamily (ProtocolTypeFamily protocolTypeFamily) const |
| |
| uint8_t * | getData () const |
| |
| size_t | getDataLen () const |
| |
| uint8_t * | getLayerPayload () const |
| |
| size_t | getLayerPayloadSize () const |
| |
| bool | isAllocatedToPacket () const |
| |
| void | copyData (uint8_t *toArr) const |
| |
| uint8_t * | getDataPtr (size_t offset=0) const override |
| |
|
| Packet * | getAttachedPacket () |
| | Get a pointer to the Packet this layer is attached to (if any). More...
|
| |
| Packet const * | getAttachedPacket () const |
| | Get a pointer to the Packet this layer is attached to (if any). More...
|
| |
| template<typename T , typename... Args> |
| Layer * | constructNextLayer (uint8_t *data, size_t dataLen, Args &&... extraArgs) |
| | Construct the next layer in the protocol stack. No validation is performed on the data. More...
|
| |
| template<typename T , typename... Args> |
| Layer * | constructNextLayer (uint8_t *data, size_t dataLen, Packet *packet, Args &&... extraArgs) |
| |
| template<typename TFactory , typename... Args> |
| Layer * | constructNextLayerFromFactory (TFactory factoryFn, uint8_t *data, size_t dataLen, Args &&... extraArgs) |
| | Construct the next layer in the protocol stack using a factory functor. More...
|
| |
| template<typename TFactory , typename... Args> |
| Layer * | constructNextLayerFromFactory (TFactory factoryFn, uint8_t *data, size_t dataLen, Packet *packet, Args &&... extraArgs) |
| | Construct the next layer in the protocol stack using a factory functor. More...
|
| |
| template<typename T , typename... Args> |
| Layer * | tryConstructNextLayer (uint8_t *data, size_t dataLen, Args &&... extraArgs) |
| |
| template<typename T , typename... Args> |
| Layer * | tryConstructNextLayer (uint8_t *data, size_t dataLen, Packet *packet, Args &&... extraArgs) |
| |
| template<typename T , typename TFallback , typename... Args> |
| Layer * | tryConstructNextLayerWithFallback (uint8_t *data, size_t dataLen, Args &&... extraArgs) |
| | Try to construct the next layer in the protocol stack with a fallback option. More...
|
| |
| template<typename T , typename TFallback , typename... Args> |
| Layer * | tryConstructNextLayerWithFallback (uint8_t *data, size_t dataLen, Packet *packet, Args &&... extraArgs) |
| |
| template<typename TFallback , typename TFactory , typename... Args> |
| Layer * | tryConstructNextLayerFromFactoryWithFallback (TFactory factoryFn, uint8_t *data, size_t dataLen, Args &&... extraArgs) |
| | Try to construct the next layer in the protocol stack using a factory functor with a fallback option. More...
|
| |
| template<typename TFallback , typename TFactory , typename... Args> |
| Layer * | tryConstructNextLayerFromFactoryWithFallback (TFactory factoryFn, uint8_t *data, size_t dataLen, Packet *packet, Args &&... extraArgs) |
| | Try to construct the next layer in the protocol stack using a factory functor with a fallback option. More...
|
| |
| template<typename T > |
| static bool | canReinterpretAs (const uint8_t *data, size_t dataLen) |
| | Check if the data is large enough to reinterpret as a type. More...
|
| |
A class representing the GTPv2 defined in 3GPP TS 29.274