GTP
The system provides two Python objects alc.gtp1c
and alc.gtp2c
to inspect and modify the GTPv1 and GTPv2 control packet.
The alc.gtp1c
object
Attributes
The object exposes the header fields as attributes on the object.
Attribute |
Field |
Access |
Type |
---|---|---|---|
version |
GTP version field |
ro |
int |
ptbit |
Protocol Type bit |
ro |
int |
ebit |
Flag marking if there is an extension header. |
ro |
int |
sbit |
Flag marking if there is a sequence-number field. |
ro |
int |
pnbit |
Flag marking if there is an N-PDU field. |
ro |
int |
type |
Type of the GTP message |
ro |
int |
len |
Length of the GTP message |
ro |
int |
teid |
Tunnel Endpoint Identifier |
ro |
int |
seq |
Sequence number. None if not present. |
ro |
int |
npdu_number |
N-PDU number. None if not present. |
ro |
int |
next_ext_type |
Next extension type. None if not present |
ro |
int |
ext_list |
List of extension-headers, repesented as a tuple (type, value) |
ro |
list of (int, bytes) tuples |
Methods
- alc.Gtp1c.drop()
Drops the packet.
- alc.Gtp1c.getIEList()
Returns a list of IE-types that are present in the packet.
The order of the elements is the same as they appear in the packet.
If there are multiple instances of the same IE, the IE-type appears multiple times in the tuple.
- alc.Gtp1c.get(type, /)
Returns all values of the IEs with the specified type. The values are returned as the exact bytestrings as they appear in the packet.
If the specified option does not exist, the result is an empty tuple: ()
If a specific instance has zero length or no values, the corresponding bytestring in the result tuple is an empty bytestring: b””
- Parameters
type (int) – IE-type to fetch
- Return type
tuple of bytestrings
- alc.Gtp1c.set(type, value, /)
Deletes existing IEs of the specified type and inserts new IEs with the specified type and value. Multiple values can be specified in a tuple, in which case an option is added for each item in the tuple.
- Parameters
type (int) – IE-type to set
value (bytes|tuple(bytes)) – value of the option; length is computed from this value
- alc.Gtp1c.clear(type, /)
Removes all IEs with the specified type.
- Parameters
type (int) – IE-type to clear
The alc.gtp2c
object
Attributes
The object exposes the header fields as attributes on the object.
Attribute |
Field |
Access |
Type |
---|---|---|---|
version |
GTP version field |
ro |
int |
pbit |
Piggyback flag |
ro |
int |
tbit |
Flag marking if there is a TEID present. |
ro |
int |
type |
Type of the GTP message |
ro |
int |
len |
Length of the GTP message |
ro |
int |
teid |
Tunnel Endpoint Identifier. None if not present |
ro |
int |
seq |
Sequence number |
ro |
int |
Methods
- alc.Gtp2c.drop()
Drops the packet.
- alc.Gtp2c.getIEList()
Returns a list of IE-types that are present in the packet.
The order of the elements is the same as they appear in the packet.
If there are multiple instances of the same IE, the IE-type appears multiple times in the tuple.
- alc.Gtp2c.get(type, instance, /)
Returns all values of the IEs with the specified type. The values are returned as the exact bytestrings as they appear in the packet.
If the specified option does not exist, the result is an empty tuple: ()
If a specific instance has zero length or no values, the corresponding bytestring is an empty bytestring: b””
- Parameters
type (int) – IE-type
instance (int) – IE-instance
- Return type
tuple of bytestrings
- alc.Gtp2c.set(type, instance, value, /)
Deletes existing IEs with the specified type and instance and inserts new IEs with the specified type, instance, and value. Multiple values can be specified in a tuple, in which case an option is added for each item in the tuple.
- Parameters
type (int) – IE-type
instance (int) – IE-instance
value (bytes|tuple(bytes)) – value of the option, length is computed from this value
- alc.Gtp2c.clear(type, instance, /)
Removes all IEs with the specified type.
- Parameters
type (int) – IE-type
instance (int) – IE-instance
- alc.Gtp2c.decode_grouped_ie(value)
Decodes the byte-representation of a grouped-IE to a tuple of IEs.
Defined as a static method.
- Parameters
value (bytes) – grouped IE value
- Returns
returns a tuple where each element represents an IE. Each IE is represented as a tuple (type, instance, value) with types (int, int, bytes).
- alc.Gtp2c.encode_grouped_ie(value)
Encodes a tuple of IEs into the byte-representation of a grouped-IE.
Defined as a static method.
- Parameters
value (tuple) – tuple of IEs where each IE is represented as a (type, instance, value) tuple.
- Returns
byte-representation of the grouped-IE
The alc.Pco
class
- class alc.Pco(bytes, /)
Creates a new object representing a PCO IE.
- Parameters
bytes (bytes) – the bytes representation of the PCO IE.
Attributes
Attribute |
Field |
Access |
Type |
---|---|---|---|
proto |
Protocol field |
ro |
int |
length |
Length of the embedded protocol |
ro |
int |
Methods
- get_container(id, /)
Retrieves the content of all containers with the specified ID.
- Parameters
id (int) – ID of the container
- Return type
list(bytes)
- set_container(id, container, /)
Deletes existing containers of the specified ID and inserts new containers. Multiple containers can be specified in a tuple, in which case a container is added for each entry in the tuple.
Containers of type PAP, CHAP, IPCP, or LCP cannot be modified with this method. See
set_pap()
andset_chap()
.- Parameters
id (int) – ID of the container
container (bytes or tuple(bytes)) – content of the container
- clear_container(id, /)
Removes all containers with the specified ID.
- Parameters
id (int) – ID of the container
- set_pap(pap, /)
Replaces the existing PAP container with a new one. Multiple PAP objects can be specified in a tuple.
- clear_pap()
Removes all PAP containers.
- set_chap(chap, /)
Replaces the existing CHAP container with a new one. Multiple CHAP objects can be specified in a tuple.
- clear_chap()
Removes all CHAP containers.
Breaking changes
Renamed methods
Warning
The following methods of alc.Gtp2c
class have been renamed in Python 3 API:
Python 2 str_to_groupedIE is now Python 3
alc.Gtp2c.decode_grouped_ie()
Python 2 groupedIE_to_str is now Python 3
alc.Gtp2c.encode_grouped_ie()