blob: 5518a16e8ebaae126836271b5193bf6746c08501 [file] [log] [blame]
/**
* GTPrecords.java
*
* GTP and GTP-U records/messages
**/
// References to 3GPP TS 29.060 V8.7.0
// IMSI 7.7.2
record IMSI_gtpc
{
int type_gtpc; // type = 2 (Decimal)
int[] imsi_digits; // 8 octets (15 BCD digits + padding)
}
//TEI Data I - 7.7.13
// Tunnel Endpoint Identifier Data
// Returned by a successful Create PDP Context request,
// shall be used for all subsequent uplink G-PDUs related
// to the PDP context.
record TeidDataI
{
int type_gtpc; // type = 16 (Decimal)
int[] teidDataI; // 4 octets
}
//NSAPI - 7.7.17
// Only used if/when multiple contexts are created for a PDP and APN ??
record NSAPI_GTPC {
int type_gtpc; // type = 20 (Decimal)
int nsapi; // 4 bits [xxxx : NSAPI]
}
//Charging ID - 7.7.26
record ChargingID {
int type_gtpc; // type = 127 (Decimal)
int[] chargingID; // 4 octets
}
// Response cause values
const int REQUEST_ACCEPTED = 128;
const int SYSTEM_FAILURE = 204;
// ===================================================
// Requests and responses
// ---- Create PDP context ----
// a) request
record CreatePDPcontext
{
// int[] imsi_digits;
// int[] teidDataI;
// 100114: use a more abstract representation at model level and
// reuse functions in existing TTCN support libraries. For a single
// context imsi/teid/nsapi can be handled entirely at TTCN level...
String imsi;
//int downlinkDataTeid;
int nsapi;
String apn;
}
const int IMSI_OCTETS = 8;
const int TEID_OCTETS = 4;
// b) response
record CreatePDPresponse
{
int causevalue;
//int uplinkDataTeid; // Only applicable if SUCCESS
}
// ---- Delete PDU context ----
// a) request
record DeletePDPcontext
{
int nsapi;
}
// b) response
record DeletePDPresponse
{
int causevalue;
}
record UpdatePDPcontext
{
int nsapi;
//int downlinkDataTeid;
}
record UpdatePDPresponse
{
int causevalue;
}
// G-PDU
record GTPUheader
{
int teid; // Date teid of receiving side
}
record GPDU
{
int data; // TODO: representation of payload on model level?
}