pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/28272 )
Change subject: iuup: Check for IuUP Initialization retrans
......................................................................
iuup: Check for IuUP Initialization retrans
Since libosmocore.git Change-Id
I5cb740702805693cc7f0a550e2e093f9bfdd507c, the IuUP stack can send INIT
event more than once, it sends one each time an IuUP Initialization
message is received.
This is done since potentially a peer could send an Initialization
message at any time with a different subflow size configuration. So
ideally we should update all osmo-mgw state regarding codecs, and
forward the Init starting the procedure on the other conn of the
endpoint.
However, this scenario is most probably not going to happen right now
and it would be a lot of work to implement and test,
and subsequent INITs we received will almost surely come from
retransmissions of the initial Initialization message, which means
content will not really change.
Hence, it makes sense to simply drop the receive message (the IuUP stack
already takes care of re-ACKing it) and let the endpoint state continue
with its ongoing procedures.
Related: SYS#4705
Change-Id: Ib97bc6f57d265622e24a776b96f0a82c25d33d39
---
M src/libosmo-mgcp/mgcp_iuup.c
1 file changed, 11 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/72/28272/1
diff --git a/src/libosmo-mgcp/mgcp_iuup.c b/src/libosmo-mgcp/mgcp_iuup.c
index 120b330..142b002 100644
--- a/src/libosmo-mgcp/mgcp_iuup.c
+++ b/src/libosmo-mgcp/mgcp_iuup.c
@@ -365,13 +365,22 @@
int rc = 0;
struct msgb *msg;
- /* Find RFCI containing NO_DATA: */
- conn_rtp_src->iuup.rfci_id_no_data = _find_rfci_no_data(irp);
+ if (conn_rtp_src->iuup.init_ind) {
+ /* We received more than one IuUP Initialization. It's probably
+ * a retransmission, so simply ignore it (lower layers take care
+ * of ACKing it). */
+ LOGPCONN(conn_rtp_src->conn, DRTP, LOGL_INFO,
+ "Ignoring potential IuUP Initialization retrans\n");
+ return 0;
+ }
msg = msgb_copy_c(conn_rtp_src->conn, irp->oph.msg, "iuup-init-copy");
conn_rtp_src->iuup.init_ind = (struct osmo_iuup_rnl_prim *)msgb_data(msg);
conn_rtp_src->iuup.init_ind->oph.msg = msg;
+ /* Find RFCI containing NO_DATA: */
+ conn_rtp_src->iuup.rfci_id_no_data = _find_rfci_no_data(irp);
+
conn_dst = _find_dst_conn(conn_rtp_src->conn);
/* If not yet there, peer will potentially be IuUP-Initialized later
* when we attempt to bridge audio towards it. See bridge_iuup_to_iuup_peer() */
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/28272
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Ib97bc6f57d265622e24a776b96f0a82c25d33d39
Gerrit-Change-Number: 28272
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/28271 )
Change subject: iuup: Fix Handling of subsequent Initialization msgs
......................................................................
iuup: Fix Handling of subsequent Initialization msgs
Once the IuUP FSM moved away from Init state, it stopped handling
Initialization messages received from peers and simply ignored them
starting from that point. As a result, if the first IuUP Init ACK it
sent to the peer was lost, the peer would keep retrying with more IuUP
Init and getting no answer.
In any case, it seems possible and desirable that a peer may send an
IuUP Init at a later point, as pointed out vaguely in 3GPP TS 25.415.
sec 6.5.2.1:
"""
Upon reception of a frame indicating that an Initialisation procedure is
active in the peer Iu UP entity, the Iu UP protocol layer forwards the whole
protocol information contained in the INITIALISATION control frame to the
upper layers. It also stores the RAB sub-Flow Combination set (and thus
replaces a possible previous set) in order to control during the transfer of
user data, that the Iu UP payload is correctly formatted (e.g. RFCI matches
the expected Iu UP frame payload total length). The peer Iu UP entity
receiving the INITIALISATION control frame shall choose a version that it
supports among the proposed versions indicated by the sender for which it
has enough initialisation information.
"""
sec B.2.2 "Initialisation State":
"""
After sending a positive acknowledgement of the last INITIALISATION control
frame, the Iu UP instance enters SMpSDU data transfer ready state. Note that
CN does not know if the initialisation ACK was correctly received by the RNC
(and Initialisation procedure successfully completed) until it receives RAB
assignment response, or use data from the RNC. The CN must therefore be able
to continue receiving INITIALISATION control frames by re-entering the
Initialisation state (from Support Mode Data Transfer Ready State), if the CN
has started to send user data before receiving the indication that
Initialisation was successfully completed
"""
sec B.2.3 "Support Mode Data Transfer Ready State":
"""
In case of handover or relocation, Initialisation procedures may have to be
performed and Iu UP instance may have to enter the initialisation state.
"""
Related: SYS#5995
Change-Id: I5cb740702805693cc7f0a550e2e093f9bfdd507c
---
M src/gsm/iuup.c
M tests/iuup/iuup_test.c
M tests/iuup/iuup_test.ok
3 files changed, 19 insertions(+), 13 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/28271/1
diff --git a/src/gsm/iuup.c b/src/gsm/iuup.c
index 4c0a948..ca7eb2b 100644
--- a/src/gsm/iuup.c
+++ b/src/gsm/iuup.c
@@ -734,6 +734,7 @@
}
}
+/* 3GPP TS 25.415 B.2.3 "Support Mode Data Transfer Ready State" */
static void iuup_fsm_smpsdu_data(struct osmo_fsm_inst *fi, uint32_t event, void *data)
{
struct osmo_iuup_instance *iui = fi->priv;
@@ -745,6 +746,14 @@
irp = data;
osmo_fsm_inst_state_chg(fi, IUUP_FSM_ST_NULL, 0, 0);
break;
+ case IUUP_FSM_EVT_INIT:
+ /* "In case of handover or relocation, Initialisation procedures
+ * may have to be performed and Iu UP instance may have to enter
+ * the initialisation state." */
+ itp = data;
+ if (!iuup_rx_initialization(iui, itp))
+ osmo_fsm_inst_state_chg(fi, IUUP_FSM_ST_INIT, 0, 0);
+ break;
case IUUP_FSM_EVT_IUUP_DATA_REQ:
/* Data coming down from RNL (user) towards TNL (transport) */
irp = data;
@@ -821,6 +830,7 @@
},
[IUUP_FSM_ST_SMpSDU_DATA_XFER_READY] = {
.in_event_mask = S(IUUP_FSM_EVT_IUUP_CONFIG_REQ) |
+ S(IUUP_FSM_EVT_INIT) |
S(IUUP_FSM_EVT_IUUP_DATA_REQ) |
S(IUUP_FSM_EVT_IUUP_DATA_IND),
.out_state_mask = S(IUUP_FSM_ST_NULL) |
diff --git a/tests/iuup/iuup_test.c b/tests/iuup/iuup_test.c
index 5b55350..e40b9e7 100644
--- a/tests/iuup/iuup_test.c
+++ b/tests/iuup/iuup_test.c
@@ -541,12 +541,10 @@
switch (_passive_init_retrans_user_rx_prim) {
case 0:
- /* FIXME expected case: case 1: */
+ case 1:
OSMO_ASSERT(OSMO_PRIM_HDR(&irp->oph) == OSMO_PRIM(OSMO_IUUP_RNL_STATUS, PRIM_OP_INDICATION));
OSMO_ASSERT(irp->u.status.procedure == IUUP_PROC_INIT);
break;
- /* FIXME current case: */
- case 1:
case 2:
default:
OSMO_ASSERT(OSMO_PRIM_HDR(&irp->oph) == OSMO_PRIM(OSMO_IUUP_RNL_DATA, PRIM_OP_INDICATION));
@@ -603,14 +601,9 @@
tnp->oph.msg->l2h = msgb_put(tnp->oph.msg, sizeof(iuup_initialization));
hdr14 = (struct iuup_pdutype14_hdr *)msgb_l2(tnp->oph.msg);
memcpy(hdr14, iuup_initialization, sizeof(iuup_initialization));
- /* FIXME: unexpected result, should be fixed: */
- OSMO_ASSERT((rc = osmo_iuup_tnl_prim_up(iui, tnp)) < 0); /* INIT not perrmited */
- OSMO_ASSERT(_passive_init_transport_rx_prim == 1); /* We receive an Init ACK */
- OSMO_ASSERT(_passive_init_retrans_user_rx_prim == 1); /* We receive the Status-Init.ind */
- /* FIXME: expected result: */
- //OSMO_ASSERT((rc = osmo_iuup_tnl_prim_up(iui, tnp)) == 0);
- //OSMO_ASSERT(_passive_init_transport_rx_prim == 2); /* We receive another Init ACK */
- //OSMO_ASSERT(_passive_init_retrans_user_rx_prim == 2); /* We receive another Status-Init.ind */
+ OSMO_ASSERT((rc = osmo_iuup_tnl_prim_up(iui, tnp)) == 0);
+ OSMO_ASSERT(_passive_init_transport_rx_prim == 2); /* We receive another Init ACK */
+ OSMO_ASSERT(_passive_init_retrans_user_rx_prim == 2); /* We receive another Status-Init.ind */
/* Send IuUP incoming data to the implementation: */
tnp = osmo_iuup_tnl_prim_alloc(iuup_test_ctx, OSMO_IUUP_TNL_UNITDATA, PRIM_OP_INDICATION, IUUP_MSGB_SIZE);
@@ -619,7 +612,7 @@
memcpy(hdr0, iuup_data, sizeof(iuup_data));
OSMO_ASSERT((rc = osmo_iuup_tnl_prim_up(iui, tnp)) == 0);
/* We receive it in RNL: */
- OSMO_ASSERT(_passive_init_retrans_user_rx_prim == 2);
+ OSMO_ASSERT(_passive_init_retrans_user_rx_prim == 3);
/* Now in opposite direction, RNL->[IuuP]->TNL: */
rnp = osmo_iuup_rnl_prim_alloc(iuup_test_ctx, OSMO_IUUP_RNL_DATA, PRIM_OP_REQUEST, IUUP_MSGB_SIZE);
@@ -629,7 +622,7 @@
rnp->oph.msg->l3h = msgb_put(rnp->oph.msg, sizeof(iuup_data) - 4);
memcpy(rnp->oph.msg->l3h, iuup_data + 4, sizeof(iuup_data) - 4);
OSMO_ASSERT((rc = osmo_iuup_rnl_prim_down(iui, rnp)) == 0);
- OSMO_ASSERT(_passive_init_transport_rx_prim == 2); /* We receive data in TNL */
+ OSMO_ASSERT(_passive_init_transport_rx_prim == 3); /* We receive data in TNL */
osmo_iuup_instance_free(iui);
}
diff --git a/tests/iuup/iuup_test.ok b/tests/iuup/iuup_test.ok
index 93f6954..57baba9 100644
--- a/tests/iuup/iuup_test.ok
+++ b/tests/iuup/iuup_test.ok
@@ -48,6 +48,9 @@
_passive_init_transport_prim_cb()
Transport: DL len=4: e4 00 24 00
_passive_init_retrans_user_prim_cb()
+_passive_init_transport_prim_cb()
+Transport: DL len=4: e4 00 24 00
+_passive_init_retrans_user_prim_cb()
User: UL len=31: 08 55 6d 94 4c 71 a1 a0 81 e7 ea d2 04 24 44 80 00 0e cd 82 b8 11 18 00 00 97 c4 79 4e 77 40
_passive_init_transport_prim_cb()
Transport: DL len=35: 01 00 e3 ff 08 55 6d 94 4c 71 a1 a0 81 e7 ea d2 04 24 44 80 00 0e cd 82 b8 11 18 00 00 97 c4 79 4e 77 40
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/28271
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I5cb740702805693cc7f0a550e2e093f9bfdd507c
Gerrit-Change-Number: 28271
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/28269 )
Change subject: iuup: Drop unused events
......................................................................
iuup: Drop unused events
Those events are not realy used there and they are not even present in
the FSM definition. Let's drop them.
Change-Id: I4beec96ac4bdf047ebf144a8b009b297b47cacdc
---
M src/gsm/iuup.c
1 file changed, 0 insertions(+), 6 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/69/28269/1
diff --git a/src/gsm/iuup.c b/src/gsm/iuup.c
index bd9e82c..4c0a948 100644
--- a/src/gsm/iuup.c
+++ b/src/gsm/iuup.c
@@ -757,12 +757,6 @@
irp = tnl_to_rnl_data(itp);
iui->user_prim_cb(&irp->oph, iui->user_prim_priv);
break;
- case IUUP_FSM_EVT_IUUP_UNITDATA_REQ:
- case IUUP_FSM_EVT_IUUP_UNITDATA_IND:
- case IUUP_FSM_EVT_SSASAR_UNITDATA_REQ:
- case IUUP_FSM_EVT_SSASAR_UNITDATA_IND:
- /* no state change */
- break;
}
}
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/28269
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I4beec96ac4bdf047ebf144a8b009b297b47cacdc
Gerrit-Change-Number: 28269
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/28268 )
Change subject: iuup: Add missing state to bitmask for st SMpSDU_Data_Transfer_Ready
......................................................................
iuup: Add missing state to bitmask for st SMpSDU_Data_Transfer_Ready
The event is expected since the user of the IuUP stack can send a
CONFIGURE.req to transition to state null. The handling was already
there in the function, but the bit was missing in the FSM definition.
Change-Id: I830835a5b8b98f8b91b866f5280f508098c9ae7e
---
M src/gsm/iuup.c
1 file changed, 2 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/68/28268/1
diff --git a/src/gsm/iuup.c b/src/gsm/iuup.c
index 2c70307..bd9e82c 100644
--- a/src/gsm/iuup.c
+++ b/src/gsm/iuup.c
@@ -826,7 +826,8 @@
.action = iuup_fsm_init,
},
[IUUP_FSM_ST_SMpSDU_DATA_XFER_READY] = {
- .in_event_mask = S(IUUP_FSM_EVT_IUUP_DATA_REQ) |
+ .in_event_mask = S(IUUP_FSM_EVT_IUUP_CONFIG_REQ) |
+ S(IUUP_FSM_EVT_IUUP_DATA_REQ) |
S(IUUP_FSM_EVT_IUUP_DATA_IND),
.out_state_mask = S(IUUP_FSM_ST_NULL) |
S(IUUP_FSM_ST_INIT),
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/28268
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I830835a5b8b98f8b91b866f5280f508098c9ae7e
Gerrit-Change-Number: 28268
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
Attention is currently required from: neels, pespin.
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-upf/+/28245 )
Change subject: install libosmo-gtlv, libosmo-pfcp
......................................................................
Patch Set 4:
(1 comment)
Patchset:
PS1:
> You can create it locally and push it on monday when he's back :)
There isn't really any dependency on me, aside from creating the legacy cgit mirror. I documented the intended process at https://osmocom.org/projects/osmocom-servers/wiki/Creating_a_new_gerrit_+_g… and am happy to receive bug reports if something doesn't work as expected. The entire point of migrating from gitolite to gitea was to enable all of you to create repositories in the infrastructure by the respective web UIs.
--
To view, visit https://gerrit.osmocom.org/c/osmo-upf/+/28245
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-upf
Gerrit-Branch: master
Gerrit-Change-Id: I9f4651b6bee457583aba99052dc82bbf675515e6
Gerrit-Change-Number: 28245
Gerrit-PatchSet: 4
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Sat, 11 Jun 2022 06:18:33 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: neels <nhofmeyr(a)sysmocom.de>
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment
laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/28185 )
Change subject: ts_102_221: The BTLV IEs FILE SIZE and TOTAL FILE SIZE have a min length
......................................................................
ts_102_221: The BTLV IEs FILE SIZE and TOTAL FILE SIZE have a min length
The TLV IEs FILE SIZE and TOTAL FILE SIZE have a minimum length of 2
byte. Even when the length is in the single digit range two bytes must
be used. See also: ETSI TS 102 221, section 11.1.1.4.1 and 11.1.1.4.2
Change-Id: Ief113ce8fe3bcae2c9fb2ff4138df9ccf98d26ff
---
M pySim/construct.py
M pySim/ts_102_221.py
2 files changed, 16 insertions(+), 8 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, approved
diff --git a/pySim/construct.py b/pySim/construct.py
index fcbadd8..4910a7f 100644
--- a/pySim/construct.py
+++ b/pySim/construct.py
@@ -208,10 +208,11 @@
class GreedyInteger(Construct):
"""A variable-length integer implementation, think of combining GrredyBytes with BytesInteger."""
- def __init__(self, signed=False, swapped=False):
+ def __init__(self, signed=False, swapped=False, minlen=0):
super().__init__()
self.signed = signed
self.swapped = swapped
+ self.minlen = minlen
def _parse(self, stream, context, path):
data = stream_read_entire(stream, path)
@@ -222,23 +223,30 @@
except ValueError as e:
raise IntegerError(str(e), path=path)
- def __bytes_required(self, i):
+ def __bytes_required(self, i, minlen=0):
if self.signed:
raise NotImplementedError("FIXME: Implement support for encoding signed integer")
+
+ # compute how many bytes we need
nbytes = 1
while True:
i = i >> 8
if i == 0:
- return nbytes
+ break
else:
nbytes = nbytes + 1
- # this should never happen, above loop must return eventually...
- raise IntegerError(f"value {i} is out of range")
+
+ # round up to the minimum number
+ # of bytes we anticipate
+ if nbytes < minlen:
+ nbytes = minlen
+
+ return nbytes
def _build(self, obj, stream, context, path):
if not isinstance(obj, integertypes):
raise IntegerError(f"value {obj} is not an integer", path=path)
- length = self.__bytes_required(obj)
+ length = self.__bytes_required(obj, self.minlen)
try:
data = integer2bytes(obj, length, self.signed)
except ValueError as e:
diff --git a/pySim/ts_102_221.py b/pySim/ts_102_221.py
index e7aff97..08e836c 100644
--- a/pySim/ts_102_221.py
+++ b/pySim/ts_102_221.py
@@ -80,11 +80,11 @@
# ETSI TS 102 221 11.1.1.4.2
class FileSize(BER_TLV_IE, tag=0x80):
- _construct = GreedyInteger()
+ _construct = GreedyInteger(minlen=2)
# ETSI TS 102 221 11.1.1.4.2
class TotalFileSize(BER_TLV_IE, tag=0x81):
- _construct = GreedyInteger()
+ _construct = GreedyInteger(minlen=2)
# ETSI TS 102 221 11.1.1.4.3
class FileDescriptor(BER_TLV_IE, tag=0x82):
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/28185
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ief113ce8fe3bcae2c9fb2ff4138df9ccf98d26ff
Gerrit-Change-Number: 28185
Gerrit-PatchSet: 9
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: merged
Attention is currently required from: fixeria, dexter.
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/28185 )
Change subject: ts_102_221: The BTLV IEs FILE SIZE and TOTAL FILE SIZE have a min length
......................................................................
Patch Set 9: Code-Review+2
(1 comment)
File pySim/construct.py:
https://gerrit.osmocom.org/c/pysim/+/28185/comment/b7c90ece_569701a7
PS5, Line 241: if nbytes < minlen:
> I do not insist on using min() here, but could you please explain (or give an example) what's wrong […]
I really don't think either of you needs to spend any more time on this.
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/28185
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ief113ce8fe3bcae2c9fb2ff4138df9ccf98d26ff
Gerrit-Change-Number: 28185
Gerrit-PatchSet: 9
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Sat, 11 Jun 2022 06:04:36 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de>
Comment-In-Reply-To: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: comment
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/28267 )
Change subject: bsc: Fix IPA_CFG_PORT handling several connections
......................................................................
bsc: Fix IPA_CFG_PORT handling several connections
Recent commit changing the layout of bts/trx port config made
IPA_CFG_PORT be connected severa times when calling f_ipa_rsl_start()
for each BTS/TRX.
Let's have separate ports per BTS/TRX as done in other ports in the
test_CT component.
This avoid this error when calling f_ipa_rsl_stop():
"""
Dynamic test case error: Port IPA_CFG_PORT has more than one active
connections. Message can be sent on it only with explicit addressing.
"""
Change-Id: I916186c87c398ebb2d7f82f73b94de75034e346d
---
M bsc/BSC_Tests.ttcn
1 file changed, 5 insertions(+), 5 deletions(-)
Approvals:
Jenkins Builder: Verified
fixeria: Looks good to me, approved
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index b445709..8a7d465 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -612,8 +612,8 @@
port IPA_CODEC_PT IPA; /* Required for compilation of TC_rsl_unknown_unit_id() */
/* CTRL muxed over IPA in SCCPlite conn BSC<->MSC (or BSC-NAT) */
port IPA_CTRL_PT SCCPLITE_IPA_CTRL;
- /* Configure/manage IPA_Emulation: */
- port IPA_CFG_PT IPA_CFG_PORT;
+ /* Configure/manage IPA_Emulation per-BTS/TRX port: */
+ port IPA_CFG_PT IPA_CFG_PORT[NUM_BTS][NUM_TRX];
var MGCP_Emulation_CT vc_MGCP;
port TELNETasp_PT BSCVTY;
@@ -953,7 +953,7 @@
}
map(clnt.vc_IPA:IPA_PORT, system:IPA_CODEC_PT);
- connect(clnt.vc_IPA:CFG_PORT, self:IPA_CFG_PORT);
+ connect(clnt.vc_IPA:CFG_PORT, self:IPA_CFG_PORT[idx.bts][idx.trx]);
if (handler_mode) {
connect(clnt.vc_IPA:IPA_RSL_PORT, clnt.vc_RSL:IPA_PT);
} else {
@@ -982,7 +982,7 @@
}
}
-function f_ipa_rsl_stop(inout IPA_Client clnt) runs on test_CT {
+function f_ipa_rsl_stop(inout IPA_Client clnt, BtsTrxIdx idx := {0, 0}) runs on test_CT {
var IPL4asp_Types.Result res := {
errorCode := omit,
connId := omit,
@@ -997,7 +997,7 @@
/* Alive components don't finish sockets (TCP FIN) when they are
* stopped. Hence, we need to manually call close() on them to make sure
* the IUT knows about it. */
- f_ipa_cfg_disconnect(IPA_CFG_PORT, res);
+ f_ipa_cfg_disconnect(IPA_CFG_PORT[idx.bts][idx.trx], res);
clnt.vc_IPA.stop;
if (isbound(clnt.vc_RSL)) {
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/28267
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I916186c87c398ebb2d7f82f73b94de75034e346d
Gerrit-Change-Number: 28267
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged