GTP
The system provides two Python objects alc.gtp1c, an instance of alc.Gtp1c,  and alc.gtp2c, and instance of class alc.Gtp1c, to inspect and modify the GTPv1 and GTPv2 control packet.
Note
For GTP-1c/GTP-2c message, only the pre-provided
alc.gtp1c/alc.gtp2cobject should be used in script, the classalc.Gtp1c/alc.Gtp2cshould not be used directly.
The alc.Gtp1c class
Instance Attributes
The GTP-1c header fields as exposed as instance 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
- drop()
- Drops the packet. 
- 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. 
 
- 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 
 
- 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 
 
 
- clear(type, /)
- Removes all IEs with the specified type. - Parameters
- type (int) – IE-type to clear 
 
The alc.Gtp2c class
Instance Attributes
The GTP-2c header fields are exposed as instance 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
- drop()
- Drops the packet. 
- 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. 
 
- 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 
 
- 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 
 
 
- clear(type, instance, /)
- Removes all IEs with the specified type. - Parameters
- type (int) – IE-type 
- instance (int) – IE-instance 
 
 
- 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). 
 
- 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. 
 
Instance 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()and- set_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 
 
- get_pap()
- Returns the PAP container as a - alc.Papobject.
- set_pap(pap, /)
- Replaces the existing PAP container with a new one. Multiple PAP objects can be specified in a tuple. - Parameters
- pap ( - alc.Papor tuple(- alc.Pap)) – PAP object
 
- clear_pap()
- Removes all PAP containers. 
- get_chap()
- Returns the CHAP container as a - alc.Chapobject.
- set_chap(chap, /)
- Replaces the existing CHAP container with a new one. Multiple CHAP objects can be specified in a tuple. - Parameters
- chap ( - alc.Chapor tuple(- alc.Chap)) – CHAP object
 
- 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()