add Release Access GTP message

This commit is contained in:
Sukchan Lee 2017-07-25 10:59:20 +09:00
parent 3e10a8b5e4
commit 86e272c4cf
6 changed files with 78 additions and 10 deletions

View File

@ -26,8 +26,8 @@
/*******************************************************************************
* This file had been created by gtp_tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2017-07-25 10:43:47.442826 by acetcom
* from /Users/acetcom/Documents/29274-d80.docx
* Created on: 2017-07-25 10:57:51.732176 by acetcom
* from 29274-d80.docx
******************************************************************************/
#include "core_debug.h"
@ -871,10 +871,10 @@ tlv_desc_t tlv_desc_emlpp_priority_0 =
tlv_desc_t tlv_desc_node_type_0 =
{
TLV_VAR_STR,
TLV_UINT8,
"Node Type",
TLV_NODE_TYPE_TYPE,
0,
1,
0,
sizeof(tlv_node_type_t),
{ NULL }
@ -2265,6 +2265,30 @@ tlv_desc_t tlv_desc_delete_bearer_response =
NULL,
}};
tlv_desc_t tlv_desc_release_access_bearers_request =
{
TLV_MESSAGE,
"Release Access Bearers Request",
0, 0, 0, 0, {
&tlv_desc_ebi_0,
&tlv_desc_node_type_0,
&tlv_desc_indication_0,
NULL,
}};
tlv_desc_t tlv_desc_release_access_bearers_response =
{
TLV_MESSAGE,
"Release Access Bearers Response",
0, 0, 0, 0, {
&tlv_desc_cause_0,
&tlv_desc_recovery_0,
&tlv_desc_indication_0,
&tlv_desc_load_control_information_0,
&tlv_desc_overload_control_information_0,
NULL,
}};
status_t gtp_parse_msg(gtp_message_t *gtp_message, c_uint8_t type, pkbuf_t *pkbuf)
{
@ -2345,6 +2369,14 @@ status_t gtp_parse_msg(gtp_message_t *gtp_message, c_uint8_t type, pkbuf_t *pkbu
rv = tlv_parse_msg(&gtp_message->delete_bearer_response,
&tlv_desc_delete_bearer_response, pkbuf, TLV_MODE_T1_L2_I1);
break;
case GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE:
rv = tlv_parse_msg(&gtp_message->release_access_bearers_request,
&tlv_desc_release_access_bearers_request, pkbuf, TLV_MODE_T1_L2_I1);
break;
case GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE:
rv = tlv_parse_msg(&gtp_message->release_access_bearers_response,
&tlv_desc_release_access_bearers_response, pkbuf, TLV_MODE_T1_L2_I1);
break;
default:
d_warn("Not implmeneted(type:%d)", type);
break;
@ -2431,6 +2463,14 @@ status_t gtp_build_msg(pkbuf_t **pkbuf, c_uint8_t type, gtp_message_t *gtp_messa
rv = tlv_build_msg(pkbuf, &tlv_desc_delete_bearer_response,
&gtp_message->delete_bearer_response, TLV_MODE_T1_L2_I1);
break;
case GTP_RELEASE_ACCESS_BEARERS_REQUEST_TYPE:
rv = tlv_build_msg(pkbuf, &tlv_desc_release_access_bearers_request,
&gtp_message->release_access_bearers_request, TLV_MODE_T1_L2_I1);
break;
case GTP_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE:
rv = tlv_build_msg(pkbuf, &tlv_desc_release_access_bearers_response,
&gtp_message->release_access_bearers_response, TLV_MODE_T1_L2_I1);
break;
default:
d_warn("Not implmeneted(type:%d)", type);
break;

View File

@ -26,8 +26,8 @@
/*******************************************************************************
* This file had been created by gtp_tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2017-07-25 10:43:47.428237 by acetcom
* from /Users/acetcom/Documents/29274-d80.docx
* Created on: 2017-07-25 10:57:51.715570 by acetcom
* from 29274-d80.docx
******************************************************************************/
#ifndef __GTP_TLV_H__
@ -484,7 +484,7 @@ typedef tlv_octet_t tlv_change_reporting_action_t;
typedef tlv_octet_t tlv_fq_csid_t;
typedef tlv_octet_t tlv_channel_needed_t;
typedef tlv_octet_t tlv_emlpp_priority_t;
typedef tlv_octet_t tlv_node_type_t;
typedef tlv_uint8_t tlv_node_type_t;
typedef tlv_octet_t tlv_fqdn_t;
typedef tlv_octet_t tlv_ti_t;
typedef tlv_octet_t tlv_mbms_session_duration_t;
@ -980,6 +980,20 @@ typedef struct _gtp_delete_bearer_response_t {
tlv_port_number_t ue_tcp_port ;
} gtp_delete_bearer_response_t;
typedef struct _gtp_release_access_bearers_request_t {
tlv_ebi_t list_of_rabs;
tlv_node_type_t originating_node;
tlv_indication_t indication_flags;
} gtp_release_access_bearers_request_t;
typedef struct _gtp_release_access_bearers_response_t {
tlv_cause_t cause;
tlv_recovery_t recovery;
tlv_indication_t indication_flags;
tlv_load_control_information_t sgw_s_node_level_load_control_information;
tlv_overload_control_information_t sgw_s_overload_control_information;
} gtp_release_access_bearers_response_t;
typedef struct _gtp_message_t {
union {
gtp_echo_request_t echo_request;
@ -1000,6 +1014,8 @@ typedef struct _gtp_message_t {
gtp_update_bearer_response_t update_bearer_response;
gtp_delete_bearer_request_t delete_bearer_request;
gtp_delete_bearer_response_t delete_bearer_response;
gtp_release_access_bearers_request_t release_access_bearers_request;
gtp_release_access_bearers_response_t release_access_bearers_response;
};
} gtp_message_t;

5
lib/gtp/support/cache/tlv_msg_170.py vendored Normal file
View File

@ -0,0 +1,5 @@
ies = []
ies.append({ "ie_type" : "EBI", "ie_value" : "List of RABs", "presence" : "C", "instance" : "0", "comment" : "Shall be present on S4 interface when this message is used to release a subset of all active RABs according to the RAB release procedure.Several IEs with this type and instance values shall be included as necessary to represent a list of RABs to be released."})
ies.append({ "ie_type" : "Node Type", "ie_value" : "Originating Node", "presence" : "CO", "instance" : "0", "comment" : "This IE shall be sent on S11 interface, if ISR is active in the MME.This IE shall be sent on S4 interface, if ISR is active in the SGSNSee NOTE 1."})
ies.append({ "ie_type" : "Indication", "ie_value" : "Indication Flags", "presence" : "CO", "instance" : "0", "comment" : "This IE shall be included if any one of the applicable flags is set to 1.Applicable flags are:Abnormal Release of Radio Link: This flag shall be set to 1 on the S11 interface - if the S1 release is due to an abnormal release of the radio link, e.g. when the MME receives UE CONTEXT RELEASE REQUEST with the cause value set to Radio Connection With UE Lost, or- if the MME performs DL data buffering and the operator specified policy/configuration conditions for triggering the PGW pause of charging are met (e.g. number/fraction of packets/bytes dropped at MME in downlink) as specified in subclause 5.3.6A of 3GPP TS23.401 [3]."})
msg_list[key]["ies"] = ies

7
lib/gtp/support/cache/tlv_msg_171.py vendored Normal file
View File

@ -0,0 +1,7 @@
ies = []
ies.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "M", "instance" : "0", "comment" : ""})
ies.append({ "ie_type" : "Recovery", "ie_value" : "Recovery", "presence" : "O", "instance" : "0", "comment" : "This IE shall be included if contacting the peer for the first time"})
ies.append({ "ie_type" : "Indication", "ie_value" : "Indication Flags", "presence" : "CO", "instance" : "0", "comment" : "This IE shall be included if any one of the applicable flags is set to 1.Applicable flags are:Associate OCI with SGW nodes identity: The SGW shall set this flag to 1 on the S11/S4 interface if it has included the SGWs Overload Control Information and if this information is to be associated with the node identity (i.e. FQDN or the IP address received from the DNS during the SGW selection) of the serving SGW."})
ies.append({ "ie_type" : "Load Control Information", "ie_value" : "SGW's node level Load Control Information", "presence" : "O", "instance" : "0", "comment" : "The SGW may include this IE, over the S11/S4 interface if the load control feature is supported by the SGW and is activated in the network (see clause 12.2.6).When present, the SGW shall provide only one instance of this IE, representing its node level load information."})
ies.append({ "ie_type" : "Overload Control Information", "ie_value" : "SGW's Overload Control Information", "presence" : "O", "instance" : "0", "comment" : "During an overload condition, the SGW may include this IE over the S11/S4 interface if the overload control feature is supported by the SGW and is activated in the network (see clause 12.3.11).When present, the SGW shall provide only one instance of this IE, representing its overload information."})
msg_list[key]["ies"] = ies

View File

@ -6,14 +6,11 @@ ies.append({ "ie_type" : "Bearer Context", "ie_value" : "Failed Bearer Contexts"
ies.append({ "ie_type" : "PTI", "ie_value" : "Procedure Transaction Id", "presence" : "C", "instance" : "0", "comment" : "If the request corresponds to UE requested bearer resource modification procedure for an E-UTRAN, this IE shall be included on the S5/S8 and S11 interfaces."})
ies.append({ "ie_type" : "PCO", "ie_value" : "Protocol Configuration Options", "presence" : "C", "instance" : "0", "comment" : "The PGW shall include Protocol Configuration Options (PCO) IE on the S5/S8 interface, if available and if ePCO is not supported by the UE or the network.If SGW receives this IE, SGW shall forward it to SGSN/MME on the S4/S11 interface."})
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "PGW-FQ-CSID", "presence" : "C", "instance" : "0", "comment" : "This IE shall be included by the PGW on the S5/S8 and S2a/S2b interfaces, and when received from S5/S8 be forwarded by the SGW on the S11 interface according to the requirements in 3GPP TS 23.007 [17]."})
type_list["FQ-CSID"]["max_instance"] = "1"
ies.append({ "ie_type" : "FQ-CSID", "ie_value" : "SGW-FQ-CSID", "presence" : "C", "instance" : "1", "comment" : "This IE shall be included by the SGW on the S11 interface according to the requirements in 3GPP TS 23.007 [17]."})
ies.append({ "ie_type" : "Cause", "ie_value" : "Cause", "presence" : "C", "instance" : "0", "comment" : "This IE shall be sent on S5/S8 and S11/S4 interfaces if the message is caused by a handover with or without optimization from 3GPP to non-3GPP (see subclause 9.3.2 in 3GPP TS 23.402 [45] and subclause 5.4.4.1 in 3GPP TS 23.401 [3], respectively). In this case the Cause value shall be set to RAT changed from 3GPP to Non-3GPP. This IE shall also be sent on S11/S4 interfaces when the SGW requests to delete all bearer contexts for the given UE in an MME or S4-SGSN due to ISR deactivation, and the Cause value shall be set to ISR deactivation. This IE shall be sent on the S2a/S2b interface if the message is caused by handover from non-3GPP to 3GPP. In this case the Cause value shall be set to Access changed from Non-3GPP to 3GPP. "})
ies.append({ "ie_type" : "Indication", "ie_value" : "Indication Flags", "presence" : "CO", "instance" : "0", "comment" : "This IE shall be included if any one of the applicable flags is set to 1.Applicable flags are:Associate OCI with PGW nodes identity: The PGW shall set this flag to 1 on the S5/S8 interface or S2a/S2b interface if it has included the PGWs Overload Control Information and if this information is to be associated with the node identity (i.e. FQDN or the IP address received from the HSS or DNS during the PGW selection) of the serving PGW. The SGW shall set this flag on the S11/S4 interface if it supports the overload control feature and if the flag is set on the S5/S8 interface.Associate OCI with SGW nodes identity: The SGW shall set this flag to 1 on the S11/S4 interface if it has included the SGWs Overload Control Information and if this information is to be associated with the node identity (i.e. FQDN or the IP address received from the DNS during the SGW selection) of the serving SGW."})
ies.append({ "ie_type" : "Load Control Information", "ie_value" : "PGW's node level Load Control Information", "presence" : "O", "instance" : "0", "comment" : "The PGW may include this IE on the S5/S8 or S2a/S2b interface, providing its node level load information, if the load control feature is supported by the PGW and is activated for the PLMN to which the access network node, i.e. MME/S4-SGSN for 3GPP access network, ePDG/TWAN for non-3GPP access network, belongs (see clause 12.2.6)."})
type_list["Load Control Information"]["max_instance"] = "1"
ies.append({ "ie_type" : "Load Control Information", "ie_value" : "PGW's APN level Load Control Information", "presence" : "O", "instance" : "1", "comment" : "The PGW may include this IE on the S5/S8 or S2a/S2b interface, providing APN level load information, if the APN level load control feature is supported by the PGW and is activated for the PLMN to which the access network node, i.e. MME/S4-SGSN for 3GPP access network, ePDG/TWAN for non-3GPP access based network, belongs (see clause 12.2.6).When present, the PGW shall provide one or more instances of this IE, up to maximum of 10, with the same type and instance value, each representing the load information for a list of APN(s).See NOTE 3, NOTE 5."})
type_list["Load Control Information"]["max_instance"] = "2"
ies.append({ "ie_type" : "Load Control Information", "ie_value" : "SGW's node level Load Control Information", "presence" : "O", "instance" : "2", "comment" : "The SGW may include this IE, over the S11/S4 interface if the load control feature is supported by the SGW and is activated in the network (see clause 12.2.6).When present, the SGW shall provide only one instance of this IE, representing its node level load information."})
ies.append({ "ie_type" : "Overload Control Information", "ie_value" : "PGW's Overload Control Information", "presence" : "O", "instance" : "0", "comment" : "During an overload condition, the PGW may include this IE on the S5/S8 or S2a/S2b interface, if the overload control feature is supported by the PGW and is activated for the PLMN to which the access network node, i.e. MME/S4-SGSN for 3GPP access based network, ePDG/TWAN for non-3GPP access based network, belongs (see clause 12.3.11).When present, the PGW shall provide at least one instance of this IE, representing its overload information. Additionally, the PGW may indicate APN level overload control by providing, one or more instances of this IE, up to maximum of 10, with the same type and instance value, each representing the overload information for a list of APN(s).See NOTE 4, NOTE 6."})
ies.append({ "ie_type" : "Overload Control Information", "ie_value" : "SGW's Overload Control Information", "presence" : "O", "instance" : "1", "comment" : "During an overload condition, the SGW may include this IE over the S11/S4 interface if the overload control feature is supported by the SGW and is activated in the network (see clause 12.3.11).When present, the SGW shall provide only one instance of this IE, representing its overload information."})

View File

@ -332,6 +332,8 @@ msg_list["Update Bearer Request"]["table"] = 62
msg_list["Update Bearer Response"]["table"] = 66
msg_list["Delete Bearer Command"]["table"] = 69
msg_list["Delete Bearer Failure Indication"]["table"] = 72
msg_list["Release Access Bearers Request"]["table"] = 79
msg_list["Release Access Bearers Response"]["table"] = 80
for key in msg_list.keys():
if "table" in msg_list[key].keys():
@ -370,6 +372,7 @@ type_list["PDN Type"]["size"] = 1 # Type : 99
type_list["Port Number"]["size"] = 2 # Type : 126
type_list["APN Restriction"]["size"] = 1 # Type : 127
type_list["Selection Mode"]["size"] = 1 # Type : 128
type_list["Node Type"]["size"] = 1 # Type : 128
f = open(outdir + 'gtp_tlv.h', 'w')
output_header_to_file(f)