- java.lang.Object
-
- org.pcap4j.packet.AbstractPacket.AbstractHeader
-
- org.pcap4j.packet.GtpV1Packet.GtpV1Header
-
- All Implemented Interfaces:
java.io.Serializable,Packet.Header
- Enclosing class:
- GtpV1Packet
public static final class GtpV1Packet.GtpV1Header extends AbstractPacket.AbstractHeader
GTPv1 Header8 7 6 5 4 3 2 1 +-----+-----+-----+-----+-----+-----+-----+-----+ | Version | PT | (*) | E | S | PN | +-----+-----+-----+-----+-----+-----+-----+-----+ | Message Type | +-----+-----+-----+-----+-----+-----+-----+-----+ | Length (1st Octet) | +-----+-----+-----+-----+-----+-----+-----+-----+ | Length (2nd Octet) | +-----+-----+-----+-----+-----+-----+-----+-----+ | Tunnel Endpoint Identifier (1st Octet) | +-----+-----+-----+-----+-----+-----+-----+-----+ | Tunnel Endpoint Identifier (2nd Octet) | +-----+-----+-----+-----+-----+-----+-----+-----+ | Tunnel Endpoint Identifier (3rd Octet) | +-----+-----+-----+-----+-----+-----+-----+-----+ | Tunnel Endpoint Identifier (4th Octet) | +-----+-----+-----+-----+-----+-----+-----+-----+ | Sequence Number (1st Octet) | +-----+-----+-----+-----+-----+-----+-----+-----+ | Sequence Number (2nd Octet) | +-----+-----+-----+-----+-----+-----+-----+-----+ | N-PDU Number | +-----+-----+-----+-----+-----+-----+-----+-----+ | Next Extension Header Type | +-----+-----+-----+-----+-----+-----+-----+-----+- Since:
- pcap4j 1.6.6
- See Also:
- ETSI TS 129 060 V12.6.0, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private booleanextensionHeaderFlagprivate static intFIRST_OCTET_OFFSETprivate static intFIRST_OCTET_SIZEprivate static intGTP_V1_HEADER_MAX_SIZEprivate static intGTP_V1_HEADER_MIM_SIZEprivate shortlengthprivate static intLENGTH_OFFSETprivate static intLENGTH_SIZEprivate GtpV1MessageTypemessageTypeprivate static intMSG_TYPE_OFFSETprivate static intMSG_TYPE_SIZEprivate static intNEXT_HEADER_OFFSETprivate static intNEXT_HEADER_SIZEprivate GtpV1ExtensionHeaderTypenextExtensionHeaderTypeprivate static intNPDU_OFFSETprivate static intNPDU_SIZEprivate java.lang.BytenPduNumberprivate booleannPduNumberFlagprivate GtpV1Packet.ProtocolTypeprotocolTypeprivate booleanreservedprivate static intSEQ_OFFSETprivate static intSEQ_SIZEprivate java.lang.ShortsequenceNumberprivate booleansequenceNumberFlagprivate static longserialVersionUIDprivate intteidprivate static intTUNNEL_ID_OFFSETprivate static intTUNNEL_ID_SIZEprivate GtpVersionversion
-
Constructor Summary
Constructors Modifier Constructor Description privateGtpV1Header(byte[] rawData, int offset, int length)privateGtpV1Header(GtpV1Packet.Builder builder, int payloadLen)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringbuildString()This method builds the valuetoString()will return.protected intcalcHashCode()This method builds the valuehashCode()will return using the byte arraygetRawData()returns.protected intcalcLength()This method calculates the valuelength()will return by adding up the lengths of byte arrays in the listgetRawFields()returns.booleanequals(java.lang.Object obj)Indicates whether some other object is "equal to" this one using return values ofgetRawData().shortgetLength()intgetLengthAsInt()GtpV1MessageTypegetMessageType()GtpV1ExtensionHeaderTypegetNextExtensionHeaderType()java.lang.BytegetNPduNumber()java.lang.IntegergetNPduNumberAsInt()GtpV1Packet.ProtocolTypegetProtocolType()protected java.util.List<byte[]>getRawFields()Returns a list of byte arrays which represents this header's fields.booleangetReserved()java.lang.ShortgetSequenceNumber()java.lang.IntegergetSequenceNumberAsInt()intgetTeid()longgetTeidAsLong()GtpVersiongetVersion()booleanisExtensionHeaderFieldPresent()booleanisNPduNumberFieldPresent()booleanisSequenceNumberFieldPresent()-
Methods inherited from class org.pcap4j.packet.AbstractPacket.AbstractHeader
buildHexString, buildRawData, getRawData, hashCode, length, toHexString, toString
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
FIRST_OCTET_OFFSET
private static final int FIRST_OCTET_OFFSET
- See Also:
- Constant Field Values
-
FIRST_OCTET_SIZE
private static final int FIRST_OCTET_SIZE
- See Also:
- Constant Field Values
-
MSG_TYPE_OFFSET
private static final int MSG_TYPE_OFFSET
- See Also:
- Constant Field Values
-
MSG_TYPE_SIZE
private static final int MSG_TYPE_SIZE
- See Also:
- Constant Field Values
-
LENGTH_OFFSET
private static final int LENGTH_OFFSET
- See Also:
- Constant Field Values
-
LENGTH_SIZE
private static final int LENGTH_SIZE
- See Also:
- Constant Field Values
-
TUNNEL_ID_OFFSET
private static final int TUNNEL_ID_OFFSET
- See Also:
- Constant Field Values
-
TUNNEL_ID_SIZE
private static final int TUNNEL_ID_SIZE
- See Also:
- Constant Field Values
-
GTP_V1_HEADER_MIM_SIZE
private static final int GTP_V1_HEADER_MIM_SIZE
- See Also:
- Constant Field Values
-
SEQ_OFFSET
private static final int SEQ_OFFSET
- See Also:
- Constant Field Values
-
SEQ_SIZE
private static final int SEQ_SIZE
- See Also:
- Constant Field Values
-
NPDU_OFFSET
private static final int NPDU_OFFSET
- See Also:
- Constant Field Values
-
NPDU_SIZE
private static final int NPDU_SIZE
- See Also:
- Constant Field Values
-
NEXT_HEADER_OFFSET
private static final int NEXT_HEADER_OFFSET
- See Also:
- Constant Field Values
-
NEXT_HEADER_SIZE
private static final int NEXT_HEADER_SIZE
- See Also:
- Constant Field Values
-
GTP_V1_HEADER_MAX_SIZE
private static final int GTP_V1_HEADER_MAX_SIZE
- See Also:
- Constant Field Values
-
version
private final GtpVersion version
-
protocolType
private final GtpV1Packet.ProtocolType protocolType
-
reserved
private final boolean reserved
-
extensionHeaderFlag
private final boolean extensionHeaderFlag
-
sequenceNumberFlag
private final boolean sequenceNumberFlag
-
nPduNumberFlag
private final boolean nPduNumberFlag
-
messageType
private final GtpV1MessageType messageType
-
length
private final short length
-
teid
private final int teid
-
sequenceNumber
private final java.lang.Short sequenceNumber
-
nPduNumber
private final java.lang.Byte nPduNumber
-
nextExtensionHeaderType
private final GtpV1ExtensionHeaderType nextExtensionHeaderType
-
-
Constructor Detail
-
GtpV1Header
private GtpV1Header(byte[] rawData, int offset, int length) throws IllegalRawDataException- Throws:
IllegalRawDataException
-
GtpV1Header
private GtpV1Header(GtpV1Packet.Builder builder, int payloadLen)
-
-
Method Detail
-
getVersion
public GtpVersion getVersion()
- Returns:
- version
-
getProtocolType
public GtpV1Packet.ProtocolType getProtocolType()
- Returns:
- protocolType.
-
getReserved
public boolean getReserved()
- Returns:
- true if the reserved field is set to 1; false otherwise.
-
isExtensionHeaderFieldPresent
public boolean isExtensionHeaderFieldPresent()
- Returns:
- true if the extension header flag is set to 1; false otherwise.
-
isSequenceNumberFieldPresent
public boolean isSequenceNumberFieldPresent()
- Returns:
- true if the sequence number flag is set to 1; false otherwise.
-
isNPduNumberFieldPresent
public boolean isNPduNumberFieldPresent()
- Returns:
- true if the N-PDU number flag is set to 1; false otherwise.
-
getMessageType
public GtpV1MessageType getMessageType()
- Returns:
- messageType
-
getLength
public short getLength()
- Returns:
- length
-
getLengthAsInt
public int getLengthAsInt()
- Returns:
- length
-
getTeid
public int getTeid()
- Returns:
- teid
-
getTeidAsLong
public long getTeidAsLong()
- Returns:
- teid
-
getSequenceNumber
public java.lang.Short getSequenceNumber()
- Returns:
- sequenceNumber. May be null.
-
getSequenceNumberAsInt
public java.lang.Integer getSequenceNumberAsInt()
- Returns:
- sequenceNumber. May be null.
-
getNPduNumber
public java.lang.Byte getNPduNumber()
- Returns:
- nPduNumber. May be null.
-
getNPduNumberAsInt
public java.lang.Integer getNPduNumberAsInt()
- Returns:
- nPduNumber. May be null.
-
getNextExtensionHeaderType
public GtpV1ExtensionHeaderType getNextExtensionHeaderType()
- Returns:
- nextExtensionHeaderType. May be null.
-
getRawFields
protected java.util.List<byte[]> getRawFields()
Description copied from class:AbstractPacket.AbstractHeaderReturns a list of byte arrays which represents this header's fields. This method is called bycalcLength()andbuildRawData().- Specified by:
getRawFieldsin classAbstractPacket.AbstractHeader- Returns:
- a list of byte arrays which represents this header's fields
-
calcLength
protected int calcLength()
Description copied from class:AbstractPacket.AbstractHeaderThis method calculates the valuelength()will return by adding up the lengths of byte arrays in the listgetRawFields()returns.- Overrides:
calcLengthin classAbstractPacket.AbstractHeader- Returns:
- a calculated length
-
buildString
protected java.lang.String buildString()
Description copied from class:AbstractPacket.AbstractHeaderThis method builds the valuetoString()will return.- Overrides:
buildStringin classAbstractPacket.AbstractHeader- Returns:
- a string representation of this object
-
calcHashCode
protected int calcHashCode()
Description copied from class:AbstractPacket.AbstractHeaderThis method builds the valuehashCode()will return using the byte arraygetRawData()returns. This method may be better to be overridden for performance reason.- Overrides:
calcHashCodein classAbstractPacket.AbstractHeader- Returns:
- a calculated hash code value for the object
-
equals
public boolean equals(java.lang.Object obj)
Description copied from class:AbstractPacket.AbstractHeaderIndicates whether some other object is "equal to" this one using return values ofgetRawData(). This method should be overridden so that it does more strict comparisons more efficiently.- Overrides:
equalsin classAbstractPacket.AbstractHeader
-
-