70 lines
2.2 KiB
Plaintext
70 lines
2.2 KiB
Plaintext
module DIAMETER_ts29_212_Templates {
|
|
|
|
/* (C) 2023 by sysmocom s.f.m.c. GmbH <info@sysmocom.de
|
|
* All rights reserved.
|
|
*
|
|
* Released under the terms of GNU General Public License, Version 2 or
|
|
* (at your option) any later version.
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
*
|
|
* Templates for AVPs and messages for TS 29.212
|
|
*/
|
|
|
|
import from General_Types all;
|
|
import from DIAMETER_Types all;
|
|
import from DIAMETER_Templates all;
|
|
import from Osmocom_Types all;
|
|
import from Misc_Helpers all;
|
|
|
|
/*******************************
|
|
* S6a 3GPP TS 29.212 section 7
|
|
*******************************/
|
|
|
|
/* 3GPP TS 29.212 Section 5.1 */
|
|
const uint32_t c_DIAMETER_3GPP_Gx_AID := 16777238;
|
|
|
|
/* 3GPP TS 29.212 5.6.2 Credit-Control-Request (CC-Request, CCR) Command */
|
|
template (present) PDU_DIAMETER
|
|
tr_DIA_Gx_CCR(template (present) DCC_NONE_CC_Request_Type req_type := INITIAL_REQUEST)
|
|
:= tr_DIAMETER(flags:='11000000'B, cmd_code:=Credit_Control,
|
|
avps := superset(
|
|
tr_AVP_SessionId,
|
|
tr_AVP_OriginHost,
|
|
tr_AVP_OriginRealm,
|
|
tr_AVP_DestinationRealm,
|
|
tr_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_Gx_AID, 4)),
|
|
tr_AVP_CcReqType(req_type),
|
|
tr_AVP_CcReqNum(?)
|
|
));
|
|
|
|
/* 3GPP TS 29.212 5.6.3 Credit-Control-Answer (CC-Answer, CCA) Command */
|
|
template (value) PDU_DIAMETER
|
|
ts_DIA_Gx_CCA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id,
|
|
template (value) octetstring sess_id,
|
|
template (value) DCC_NONE_CC_Request_Type req_type,
|
|
template (value) AVP_Unsigned32 req_num)
|
|
:= ts_DIAMETER(flags:='01000000'B, cmd_code:=Credit_Control,
|
|
app_id:=int2oct(c_DIAMETER_3GPP_Gx_AID, 4), hbh_id:=hbh_id, ete_id:=ete_id,
|
|
avps := {
|
|
ts_AVP_SessionId(sess_id),
|
|
ts_AVP_ResultCode(DIAMETER_SUCCESS),
|
|
ts_AVP_OriginHost("pcrf.localdomain"),
|
|
ts_AVP_OriginRealm("localdomain"),
|
|
ts_AVP_AuthAppId(int2oct(c_DIAMETER_3GPP_Gx_AID, 4)),
|
|
ts_AVP_CcReqType(req_type),
|
|
ts_AVP_CcReqNum(req_num),
|
|
ts_AVP_PCC_3GPP_QoS_Information({
|
|
ts_AVP_PCC_3GPP_APN_Aggregate_Max_Bitrate_UL(33554432),
|
|
ts_AVP_PCC_3GPP_APN_Aggregate_Max_Bitrate_DL(52428800)
|
|
}),
|
|
ts_AVP_PCC_3GPP_Default_EPS_Bearer_QoS({
|
|
ts_AVP_PCC_3GPP_QoS_Class_Identifier(9),
|
|
ts_AVP_PCC_3GPP_AllocRetenPrio(2)
|
|
})
|
|
// supported features
|
|
// origin
|
|
});
|
|
|
|
} /* module */
|