DIAMETER: parametrize CEA template
So far, we hard-coded the Capabilities-Exchange-Answer for HSS emulation. As we want to emulate other DIAMETER network elements, let's parametrize the template as well as the respective parameters for the emulation component. Change-Id: Ie30ff1bac40ab3dc6058587f0586b643ff2b0cb6
This commit is contained in:
parent
f9fb63ec98
commit
61f73d553b
|
@ -33,6 +33,7 @@ import from DIAMETER_Types all;
|
|||
import from DIAMETER_Templates all;
|
||||
import from Osmocom_Types all;
|
||||
import from IPL4asp_Types all;
|
||||
import from Native_Functions all;
|
||||
|
||||
type hexstring IMSI;
|
||||
|
||||
|
@ -94,7 +95,10 @@ type record DIAMETER_conn_parameters {
|
|||
HostName remote_ip,
|
||||
PortNumber remote_sctp_port,
|
||||
HostName local_ip,
|
||||
PortNumber local_sctp_port
|
||||
PortNumber local_sctp_port,
|
||||
charstring origin_host,
|
||||
charstring origin_realm,
|
||||
uint32_t vendor_app_id
|
||||
}
|
||||
|
||||
function tr_DIAMETER_RecvFrom_R(template PDU_DIAMETER msg)
|
||||
|
@ -312,7 +316,8 @@ function main(DIAMETEROps ops, DIAMETER_conn_parameters p, charstring id) runs o
|
|||
/* handle CER/CEA handshake */
|
||||
[] DIAMETER.receive(tr_DIAMETER_RecvFrom_R(tr_DIAMETER_R(cmd_code := Capabilities_Exchange))) -> value mrf {
|
||||
var template (value) PDU_DIAMETER resp;
|
||||
resp := ts_DIA_CEA(mrf.msg.hop_by_hop_id, mrf.msg.end_to_end_id);
|
||||
resp := ts_DIA_CEA(mrf.msg.hop_by_hop_id, mrf.msg.end_to_end_id, p.origin_host,
|
||||
p.origin_realm, f_inet_addr(p.local_ip), p.vendor_app_id);
|
||||
DIAMETER.send(t_DIAMETER_Send(g_diameter_conn_id, resp));
|
||||
}
|
||||
|
||||
|
|
|
@ -783,13 +783,15 @@ template (value) GenericAVP ts_AVP_3GPP_PdnType(template (value) AAA_3GPP_PDN_Ty
|
|||
|
||||
/* 5.3.2 Capabilities Exchange Answer */
|
||||
template (value) PDU_DIAMETER
|
||||
ts_DIA_CEA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id)
|
||||
ts_DIA_CEA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id,
|
||||
template (value) charstring origin_host, template (value) charstring origin_realm,
|
||||
template (value) octetstring host_ip, uint32_t vendor_app_id)
|
||||
:= ts_DIAMETER(flags:='00000000'B, cmd_code:=Capabilities_Exchange, hbh_id:=hbh_id, ete_id:=ete_id,
|
||||
avps := {
|
||||
ts_AVP_ResultCode(DIAMETER_SUCCESS),
|
||||
ts_AVP_OriginHost("hss.localdomain"),
|
||||
ts_AVP_OriginRealm("localdomain"),
|
||||
ts_AVP_HostIpAddr('7E000004'O),
|
||||
ts_AVP_OriginHost(origin_host),
|
||||
ts_AVP_OriginRealm(origin_realm),
|
||||
ts_AVP_HostIpAddr(host_ip),
|
||||
ts_AVP_VendorId(vendor_id_3GPP),
|
||||
ts_AVP_ProductName("TTCN-3 Testsuite"),
|
||||
ts_AVP_OriginStateId('00000001'O),
|
||||
|
@ -798,7 +800,7 @@ ts_DIA_CEA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id)
|
|||
ts_AVP_SuppVendorIdRaw(13019), /* ETSI */
|
||||
ts_AVP_AuthAppId('FFFFFFFF'O),
|
||||
ts_AVP_InbSecId('00000000'O),
|
||||
ts_AVP_VendorSpecAppId(vendor_id_3GPP, c_DIAMETER_3GPP_S6_AID)
|
||||
ts_AVP_VendorSpecAppId(vendor_id_3GPP, vendor_app_id)
|
||||
});
|
||||
|
||||
|
||||
|
|
|
@ -219,7 +219,10 @@ friend function f_init_diameter(charstring id) runs on MTC_CT {
|
|||
remote_ip := mp_mme_ip,
|
||||
remote_sctp_port := -1,
|
||||
local_ip := mp_s6_local_ip,
|
||||
local_sctp_port := mp_s6_local_port
|
||||
local_sctp_port := mp_s6_local_port,
|
||||
origin_host := "hss.localdomain",
|
||||
origin_realm := "localdomain",
|
||||
vendor_app_id := c_DIAMETER_3GPP_S6_AID
|
||||
};
|
||||
vc_DIAMETER := DIAMETER_Emulation_CT.create(id);
|
||||
map(vc_DIAMETER:DIAMETER, system:DIAMETER_CODEC_PT);
|
||||
|
|
Loading…
Reference in New Issue