fixeria has uploaded this change for review.

View Change

library/DIAMETER_Emulation: initiate CER/CEA exchange in client mode

Change-Id: I7537b306c2a569e2232597f21e15d3cf4ec9a12c
Related: SYS#5602
---
M library/DIAMETER_Emulation.ttcn
1 file changed, 14 insertions(+), 1 deletion(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/92/31292/1
diff --git a/library/DIAMETER_Emulation.ttcn b/library/DIAMETER_Emulation.ttcn
index 3fa6a5c..28db6b5 100644
--- a/library/DIAMETER_Emulation.ttcn
+++ b/library/DIAMETER_Emulation.ttcn
@@ -272,13 +272,14 @@
}

function main(DIAMETEROps ops, DIAMETER_conn_parameters p, charstring id) runs on DIAMETER_Emulation_CT {
+ var boolean server_mode := p.remote_sctp_port == -1;
var Result res;
g_diameter_id := id;
f_imsi_table_init();
f_expect_table_init();

map(self:DIAMETER, system:DIAMETER_CODEC_PT);
- if (p.remote_sctp_port == -1) {
+ if (server_mode) {
res := DIAMETER_CodecPort_CtrlFunct.f_IPL4_listen(DIAMETER, p.local_ip, p.local_sctp_port, { sctp := valueof(ts_SCTP) });
} else {
res := DIAMETER_CodecPort_CtrlFunct.f_IPL4_connect(DIAMETER, p.remote_ip, p.remote_sctp_port,
@@ -290,6 +291,18 @@
}
g_diameter_conn_id := res.connId;

+ /* If in client mode, send CER immediately */
+ if (not server_mode) {
+ var template (value) PDU_DIAMETER req;
+ var PDU_DIAMETER rsp;
+
+ req := ts_DIA_CER(f_inet_addr(p.local_ip), p.vendor_app_id,
+ orig_host := p.origin_host, orig_realm := p.origin_realm);
+ rsp := f_diameter_xceive(req, tr_DIAMETER_A(Capabilities_Exchange, req.application_id));
+ /* notify our user that the CER->CEA exchange has happened */
+ DIAMETER_UNIT.send(DiameterCapabilityExchgInd:{rx := rsp, tx := valueof(req)});
+ }
+
while (true) {
var DIAMETER_ConnHdlr vc_conn;
var template IMSI imsi_t;

To view, visit change 31292. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I7537b306c2a569e2232597f21e15d3cf4ec9a12c
Gerrit-Change-Number: 31292
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de>
Gerrit-MessageType: newchange