laforge submitted this change.

View Change



2 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.

Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified
library/PFCP_Emulation: fix routing of incoming PDUs

Before this patch, the PFCP_Emulation component was unable to route
incoming PDUs properly. The problem is that the SeqNr and SEID were
neither stored nor updated whem sending outgoing PDUs, and thus
remained unbound all the time.

Change-Id: I8e62471915ab9a917ac960d3078e89669b5ac0ea
---
M library/PFCP_Emulation.ttcn
1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/library/PFCP_Emulation.ttcn b/library/PFCP_Emulation.ttcn
index 74f4cdd..c671095 100644
--- a/library/PFCP_Emulation.ttcn
+++ b/library/PFCP_Emulation.ttcn
@@ -77,8 +77,7 @@
private function f_PFCPEM_conn_by_seqnr(LIN3_BO_LAST seqnr)
runs on PFCP_Emulation_CT return PFCP_ConnHdlr {
for (var integer i := 0; i < lengthof(g_conns); i := i + 1) {
- if (isbound(g_conns[i].pfcp_msg_sequence_number)
- and seqnr == g_conns[i].pfcp_msg_sequence_number) {
+ if (seqnr == g_conns[i].pfcp_msg_sequence_number) {
return g_conns[i].vc_conn;
}
}
@@ -88,8 +87,7 @@
private function f_PFCPEM_conn_by_seid(OCT8 seid)
runs on PFCP_Emulation_CT return PFCP_ConnHdlr {
for (var integer i := 0; i < lengthof(g_conns); i := i + 1) {
- if (isbound(g_conns[i].seid)
- and seid == g_conns[i].seid) {
+ if (seid == g_conns[i].seid) {
return g_conns[i].vc_conn;
}
}
@@ -113,14 +111,15 @@
return vc_conn;
};

-private function f_PFCPEM_add_conn(PFCP_ConnHdlr vc_conn) runs on PFCP_Emulation_CT {
+private function f_PFCPEM_conn_add_or_update(in PFCPEM_conn conn)
+runs on PFCP_Emulation_CT {
for (var integer i := 0; i < lengthof(g_conns); i := i + 1) {
- if (g_conns[i].vc_conn == vc_conn) {
+ if (g_conns[i].vc_conn == conn.vc_conn) {
+ g_conns[i] := conn; /* update */
return;
}
}
/* Not in the list yet, add. */
- var PFCPEM_conn conn := { vc_conn := vc_conn };
g_conns := g_conns & { conn };
}

@@ -184,14 +183,14 @@
pdu := pdu
};

- f_PFCPEM_add_conn(vc_conn);
+ f_PFCPEM_conn_add_or_update({vc_conn, pdu.seid, pdu.sequence_number});

PFCP.send(ud);
}

[] CLIENT_PROC.getcall(PFCPEM_register:{}) -> sender vc_conn {
log("PFCP_Emulation main() CLIENT_PROC.getcall(PFCPEM_register)");
- f_PFCPEM_add_conn(vc_conn);
+ f_PFCPEM_conn_add_or_update({vc_conn, omit, omit});
CLIENT_PROC.reply(PFCPEM_register:{}) to vc_conn;
}
}

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

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I8e62471915ab9a917ac960d3078e89669b5ac0ea
Gerrit-Change-Number: 38033
Gerrit-PatchSet: 4
Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>