pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/32339 )
Change subject: Fix DL_TBF PACCH ass done on UL_TBF already scheduled to tx last PKT CTRL ACK
......................................................................
Fix DL_TBF PACCH ass done on UL_TBF already scheduled to tx last PKT CTRL ACK
Change-Id: I62ae91b494e4fd0ade3f4a3ba3817bcaedbdebf5
---
M src/tbf_ul_ack_fsm.c
M tests/tbf/TbfTest.err
2 files changed, 34 insertions(+), 18 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/39/32339/1
diff --git a/src/tbf_ul_ack_fsm.c b/src/tbf_ul_ack_fsm.c
index 5e5586b..76a1cad 100644
--- a/src/tbf_ul_ack_fsm.c
+++ b/src/tbf_ul_ack_fsm.c
@@ -65,7 +65,6 @@
unsigned int rrbp = 0;
uint32_t new_poll_fn = 0;
struct gprs_rlcmac_ul_tbf *tbf = ctx->tbf;
- struct GprsMs *ms = tbf_ms(ul_tbf_as_tbf(tbf));
if (final) {
rc = tbf_check_polling(ul_tbf_as_tbf(tbf), d->pdch, d->fn, &new_poll_fn, &rrbp);
@@ -86,21 +85,6 @@
bitvec_pack(ack_vec, msgb_put(msg, 23));
bitvec_free(ack_vec);
- /* TS 44.060 7a.2.1.1: "The contention resolution is completed on
- * the network side when the network receives an RLC data block that
- * comprises the TLLI value that identifies the mobile station and the
- * TFI value associated with the TBF." (see TBF_EV_FIRST_UL_DATA_RECVD).
- *
- * However, it's handier for us to mark contention resolution success here
- * since upon rx UL ACK is the time at which MS realizes contention resolution
- * succeeds:
- * TS 44.060 7.1.2.3: "The contention resolution is successfully completed
- * on the mobile station side when the mobile station receives a
- * PACKET UPLINK ACK/NACK"
- */
- if (ms_tlli(ms) != GSM_RESERVED_TMSI && !ul_tbf_contention_resolution_done(ctx->tbf))
- osmo_fsm_inst_dispatch(tbf_state_fi(ul_tbf_as_tbf(ctx->tbf)), TBF_EV_CONTENTION_RESOLUTION_MS_SUCCESS, NULL);
-
if (final) {
tbf_set_polling(ul_tbf_as_tbf(tbf), d->pdch, new_poll_fn, PDCH_ULC_POLL_UL_ACK);
LOGPTBFUL(tbf, LOGL_DEBUG,
@@ -126,6 +110,7 @@
{
struct tbf_ul_ack_fsm_ctx *ctx = (struct tbf_ul_ack_fsm_ctx *)fi->priv;
struct gprs_rlcmac_ul_tbf *tbf = ctx->tbf;
+ struct GprsMs *ms = tbf_ms(ul_tbf_as_tbf(tbf));
struct tbf_ul_ack_ev_create_rlcmac_msg_ctx *data_ctx;
bool final;
@@ -144,6 +129,28 @@
tbf_ul_ack_fsm_state_chg(fi, TBF_UL_ACK_ST_WAIT_ACK);
else
tbf_ul_ack_fsm_state_chg(fi, TBF_UL_ACK_ST_NONE);
+
+ /* TS 44.060 7a.2.1.1: "The contention resolution is completed on
+ * the network side when the network receives an RLC data block that
+ * comprises the TLLI value that identifies the mobile station and the
+ * TFI value associated with the TBF." (see TBF_EV_FIRST_UL_DATA_RECVD).
+ *
+ * However, it's handier for us to mark contention resolution success here
+ * since upon rx UL ACK is the time at which MS realizes contention resolution
+ * succeeds:
+ * TS 44.060 7.1.2.3: "The contention resolution is successfully completed
+ * on the mobile station side when the mobile station receives a
+ * PACKET UPLINK ACK/NACK"
+ *
+ * This event must be triggered here *after* potentially transitioning
+ * to ST_WAIT_ACK above, so that gprs_ms knows whether it can create a
+ * DL TBF on PACCH of the UL_TBF or not (not possible if we are in
+ * ST_WAIT_ACK, since UL TBF is terminating sending the final PKT CTRL
+ * ACK).
+ */
+ if (ms_tlli(ms) != GSM_RESERVED_TMSI && !ul_tbf_contention_resolution_done(ctx->tbf))
+ osmo_fsm_inst_dispatch(tbf_state_fi(ul_tbf_as_tbf(ctx->tbf)), TBF_EV_CONTENTION_RESOLUTION_MS_SUCCESS, NULL);
+
break;
default:
OSMO_ASSERT(0);
diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err
index 2598cdf..9410fd4 100644
--- a/tests/tbf/TbfTest.err
+++ b/tests/tbf/TbfTest.err
@@ -1921,11 +1921,11 @@
Got MS: TLLI = 0xf1223344, TA = 7
UL_ACK_TBF(UL:TFI-0-0-0:STATE-NEW:GPRS){SCHED_UL_ACK}: Received Event CREATE_RLCMAC_MSG
PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654167 + 17 = 2654184
-UL_TBF(UL:TFI-0-0-0:STATE-NEW:GPRS){FINISHED}: Received Event CONTENTION_RESOLUTION_MS_SUCCESS
-TBF(UL:TFI-0-0-0:STATE-FINISHED:GPRS:TLLI-0xf1223344) stopping timer T3141 [Contention resolution success (UL-TBF, CCCH)]
PDCH(bts=0,trx=0,ts=7) Reserving FN 2654184 for type POLL
TBF(UL:TFI-0-0-0:STATE-FINISHED:GPRS:TLLI-0xf1223344) Scheduled UL Acknowledgement polling on PACCH (FN=2654184, TS=7)
UL_ACK_TBF(UL:TFI-0-0-0:STATE-NEW:GPRS){SCHED_UL_ACK}: state_chg to WAIT_ACK
+UL_TBF(UL:TFI-0-0-0:STATE-NEW:GPRS){FINISHED}: Received Event CONTENTION_RESOLUTION_MS_SUCCESS
+TBF(UL:TFI-0-0-0:STATE-FINISHED:GPRS:TLLI-0xf1223344) stopping timer T3141 [Contention resolution success (UL-TBF, CCCH)]
PDCH(bts=0,trx=0,ts=7) FN=2654167 Scheduling control message at RTS for TBF(UL:TFI-0-0-0:STATE-FINISHED:GPRS:TLLI-0xf1223344)
Modifying MS object, TLLI = 0xf1223344, IMSI '' -> '0011223344'
Modifying MS object, TLLI: 0xf1223344 confirmed
--
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/32339
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I62ae91b494e4fd0ade3f4a3ba3817bcaedbdebf5
Gerrit-Change-Number: 32339
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-abis/+/32336
to look at the new patch set (#3).
Change subject: e1d: fix log output
......................................................................
e1d: fix log output
When a read access to the osmo-e1d fd fails we just prind the error to
LOGL_DEBUG but an error like this should be logged to LOGL_ERROR. Also
the line might print "read error 0 Success", which is a bit misleading,
so let's fix this as well.
Change-Id: I3a0500f083cbe8cc162826e2ec974875bafcaba9
---
M src/input/e1d.c
1 file changed, 18 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/36/32336/3
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32336
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: I3a0500f083cbe8cc162826e2ec974875bafcaba9
Gerrit-Change-Number: 32336
Gerrit-PatchSet: 3
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-MessageType: newpatchset
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-abis/+/32336
to look at the new patch set (#2).
Change subject: e1d: fix log output
......................................................................
e1d: fix log output
When a read access to the osmo-e1d fd fails we just prind the error to
LOGL_DEBUG but an error like this should be logged to LOGL_ERROR. Also
the line might print "read error 0 Success", which is a bit misleading,
so let's fix this as well.
Change-Id: I3a0500f083cbe8cc162826e2ec974875bafcaba9
---
M src/input/e1d.c
1 file changed, 18 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/36/32336/2
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32336
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: I3a0500f083cbe8cc162826e2ec974875bafcaba9
Gerrit-Change-Number: 32336
Gerrit-PatchSet: 2
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-MessageType: newpatchset
dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/32336 )
Change subject: e1d: fix log output
......................................................................
e1d: fix log output
When a read access to the osmo-e1d fd fails we just prind the error to
LOGL_DEBUG but an error like this should be logged to LOGL_ERROR. Also
the line might print "read error 0 Success", which is a bit misleading,
so let's fix this as well.
Change-Id: I3a0500f083cbe8cc162826e2ec974875bafcaba9
---
M src/input/e1d.c
1 file changed, 15 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/36/32336/1
diff --git a/src/input/e1d.c b/src/input/e1d.c
index 6392b4f..098e488 100644
--- a/src/input/e1d.c
+++ b/src/input/e1d.c
@@ -233,7 +233,7 @@
ret = read(bfd->fd, msg->data, D_TSX_ALLOC_SIZE);
if (ret < 0 || ret != D_TSX_ALLOC_SIZE) {
- LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "read error %d %s\n", ret, strerror(errno));
+ LOGPITS(e1i_ts, DLINP, LOGL_ERROR, "read error: %d %s\n", ret, ret < 0 ? strerror(errno) : "bytes read");
msgb_free(msg);
return ret;
}
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32336
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: I3a0500f083cbe8cc162826e2ec974875bafcaba9
Gerrit-Change-Number: 32336
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: newchange