lists.osmocom.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

gerrit-log

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
gerrit-log@lists.osmocom.org

July 2023

  • 1 participants
  • 3051 discussions
[M] Change in libosmo-gprs[master]: rlcmac: tbf_dl: Implement T3190
by pespin 04 Jul '23

04 Jul '23
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33554 to look at the new patch set (#2). Change subject: rlcmac: tbf_dl: Implement T3190 ...................................................................... rlcmac: tbf_dl: Implement T3190 Related: OS#5500 Change-Id: I3f69fde298dcd64d30b9d648a96717a8378864c4 --- M include/osmocom/gprs/rlcmac/tbf_dl.h M src/rlcmac/rlcmac.c M src/rlcmac/tbf_dl.c M src/rlcmac/tbf_dl_fsm.c 4 files changed, 47 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/54/33554/2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I3f69fde298dcd64d30b9d648a96717a8378864c4 Gerrit-Change-Number: 33554 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: MME_Tests: add expected-results.xml
by pespin 04 Jul '23

04 Jul '23
Attention is currently required from: dexter. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33555 ) Change subject: MME_Tests: add expected-results.xml ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33555 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: I8cc1ef762fcdff8fe73d23a3945496aa995b4ae5 Gerrit-Change-Number: 33555 Gerrit-PatchSet: 1 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Tue, 04 Jul 2023 13:53:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[L] Change in libosmo-abis[master]: e1d: reconnect to osmo-e1d after connection loss
by pespin 04 Jul '23

04 Jul '23
Attention is currently required from: laforge, keith, dexter. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/32374 ) Change subject: e1d: reconnect to osmo-e1d after connection loss ...................................................................... Patch Set 14: Code-Review+1 (1 comment) File src/input/e1d.c: https://gerrit.osmocom.org/c/libosmo-abis/+/32374/comment/60e6915d_07e2f3d7 PS14, Line 401: /* FIXME: The socket that we write to is of type SOCK_STREAM. This means that it may happen that the using a wqueue should fix this afaiu. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338 Gerrit-Change-Number: 32374 Gerrit-PatchSet: 14 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-CC: keith <keith(a)rhizomatica.org> Gerrit-CC: laforge <laforge(a)osmocom.org> Gerrit-CC: tnt <tnt(a)246tNt.com> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: keith <keith(a)rhizomatica.org> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Tue, 04 Jul 2023 13:52:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[L] Change in osmo-mgw[master]: ASCI: Support conference briding with 1..n connections
by pespin 04 Jul '23

04 Jul '23
Attention is currently required from: jolly, dexter. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/33548 ) Change subject: ASCI: Support conference briding with 1..n connections ...................................................................... Patch Set 2: (4 comments) Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/33548/comment/c8cef6dd_7b0eb82a PS2, Line 12: than 2 connections. please rephrase this, I don't understand: "it must be assumed that only connection receives RTP in a conference with more than 2 connections." https://gerrit.osmocom.org/c/osmo-mgw/+/33548/comment/83fbd372_0fbfaf56 PS2, Line 15: set to (one of) the other connection that shall send out RTP. connection(s) https://gerrit.osmocom.org/c/osmo-mgw/+/33548/comment/ea26d3cf_513ee5b4 PS2, Line 16: All connection that send RTP have "send_next" pointer set to the next connections Patchset: PS2: I'm a bit lost with your implementation choose here. Why having that ring buffer between connections pointing to each other instead of simply iterating over all the connections of an endpoint? mgcp_recv(rtp) -> foreach(conn in endp) mgcp_send(rtp); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a Gerrit-Change-Number: 33548 Gerrit-PatchSet: 2 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: jolly <andreas(a)eversberg.eu> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Tue, 04 Jul 2023 13:50:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-mgw[master]: ASCI: Replace "priv" pointer of connection instance
by pespin 04 Jul '23

04 Jul '23
Attention is currently required from: jolly, dexter. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/33547 ) Change subject: ASCI: Replace "priv" pointer of connection instance ...................................................................... Patch Set 1: Code-Review-1 (2 comments) Patchset: PS1: Please, if you add a new field (send_next), add in in the same patch where it is used. File include/osmocom/mgcp/mgcp_conn.h: https://gerrit.osmocom.org/c/osmo-mgw/+/33547/comment/1c95023e_44fdbb22 PS1, Line 141: struct mgcp_conn *send; "dst" may be better naming? "send" looks more like a boolean in code. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icefacf0f91ae068e4f0cd65244d92735045b7c26 Gerrit-Change-Number: 33547 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: jolly <andreas(a)eversberg.eu> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Tue, 04 Jul 2023 13:46:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-mgw[master]: ASCI: Add new mode for voice group/broadcast call
by pespin 04 Jul '23

04 Jul '23
Attention is currently required from: jolly, dexter. pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/33546 ) Change subject: ASCI: Add new mode for voice group/broadcast call ...................................................................... Patch Set 1: (3 comments) Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/33546/comment/b800c87c_e9fe240d PS1, Line 19: Because there is no transcoding within the endpoint, only one connection I'm not getting this paragraph. IIUC all connections should be receiving the RTP in "confecho" as explained above? File src/libosmo-mgcp/mgcp_protocol.c: https://gerrit.osmocom.org/c/osmo-mgw/+/33546/comment/c95b6d6d_a3a58e32 PS1, Line 1091: && (conn->conn->mode & MGCP_CONN_SEND_ONLY) I'm not a big fan of reusing the flags for the SEND_ONLY for CONFECHO mode here, it makes stuff difficult to follow and prone to error imho. File tests/mgcp/mgcp_test.c: https://gerrit.osmocom.org/c/osmo-mgw/+/33546/comment/1e7744da_16c3e501 PS1, Line 715: /* Check that LOOPBACK disables all output */ I have the feeling you are presenting 2 patches in one here. All the loopback stuff probably has to be provided as a previous separated patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I0639c663e119d85bef1010c7aa45e2f133a9daf0 Gerrit-Change-Number: 33546 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: jolly <andreas(a)eversberg.eu> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Tue, 04 Jul 2023 13:42:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: MME_Tests: add expected-results.xml
by dexter 04 Jul '23

04 Jul '23
dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33555 ) Change subject: MME_Tests: add expected-results.xml ...................................................................... MME_Tests: add expected-results.xml The MME_Tests miss an expected-results XML file Related: OS#5760 Change-Id: I8cc1ef762fcdff8fe73d23a3945496aa995b4ae5 --- A mme/expected-results.xml 1 file changed, 19 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/55/33555/1 diff --git a/mme/expected-results.xml b/mme/expected-results.xml new file mode 100644 index 0000000..48496a4 --- /dev/null +++ b/mme/expected-results.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<testsuite name='Titan' tests='71' failures='8' errors='0' skipped='0' inconc='0' time='MASKED'> + <testcase classname='MME_Tests' name='TC_s1ap_setup_wrong_plmn' time='MASKED'/> + <testcase classname='MME_Tests' name='TC_s1ap_setup_wrong_tac' time='MASKED'/> + <testcase classname='MME_Tests' name='TC_s1ap_setup' time='MASKED'/> + <testcase classname='MME_Tests' name='TC_s1ap_attach' time='MASKED'/> +</testsuite> -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33555 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: I8cc1ef762fcdff8fe73d23a3945496aa995b4ae5 Gerrit-Change-Number: 33555 Gerrit-PatchSet: 1 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[L] Change in libosmo-abis[master]: e1d: reconnect to osmo-e1d after connection loss
by dexter 04 Jul '23

04 Jul '23
Attention is currently required from: laforge, pespin, keith, dexter. Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374 to look at the new patch set (#14). Change subject: e1d: reconnect to osmo-e1d after connection loss ...................................................................... e1d: reconnect to osmo-e1d after connection loss When osmo-e1d crashes while a line is in use the client process may experience not only a lost connection, it may also hang up in an endless loop that would also spam the logfile. The reason for this is that the e1d driver in libosmo-abis lacks mechanisms to detect when the connection to osmo-e1d gets lost. When osmo-e1d goes down the effects should be similar to those of a normal connection loss of an e1 line (cable pulled). So let's add an FSM that takes care of the recovery of the connection when it is lost. Also make sure that no havoc happens when the connection gets lost. Related: OS#5983 Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338 --- M src/input/e1d.c 1 file changed, 271 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/74/32374/14 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338 Gerrit-Change-Number: 32374 Gerrit-PatchSet: 14 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-CC: keith <keith(a)rhizomatica.org> Gerrit-CC: laforge <laforge(a)osmocom.org> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-CC: tnt <tnt(a)246tNt.com> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: keith <keith(a)rhizomatica.org> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-MessageType: newpatchset
1 0
0 0
[M] Change in libosmo-gprs[master]: rlcmac: Rework tbf destructor to signal free() to its gre object
by pespin 04 Jul '23

04 Jul '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33551 ) Change subject: rlcmac: Rework tbf destructor to signal free() to its gre object ...................................................................... rlcmac: Rework tbf destructor to signal free() to its gre object This will be needed in follow-up patches for the MS to trigger actions when TBFs are freed (like going back to IDLE mode, or start packet-access-procedure). Change-Id: I72959e27f2f62c84218d740cfb9e396d70562929 --- M include/osmocom/gprs/rlcmac/gre.h M src/rlcmac/gre.c M src/rlcmac/tbf.c M src/rlcmac/tbf_dl.c M src/rlcmac/tbf_ul.c 5 files changed, 53 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/51/33551/1 diff --git a/include/osmocom/gprs/rlcmac/gre.h b/include/osmocom/gprs/rlcmac/gre.h index 3afeadc..c976b4a 100644 --- a/include/osmocom/gprs/rlcmac/gre.h +++ b/include/osmocom/gprs/rlcmac/gre.h @@ -7,6 +7,7 @@ struct gprs_rlcmac_dl_tbf; struct gprs_rlcmac_ul_tbf; +struct gprs_rlcmac_tbf; struct gprs_rlcmac_entity { struct llist_head entry; /* item in (struct gprs_rlcmac_ctx)->gre_list */ @@ -37,5 +38,9 @@ struct msgb *gprs_rlcmac_gre_create_pkt_ctrl_ack(const struct gprs_rlcmac_entity *gre); +void gprs_rlcmac_entity_dl_tbf_freed(struct gprs_rlcmac_entity *gre, const struct gprs_rlcmac_dl_tbf *ul_tbf); +void gprs_rlcmac_entity_ul_tbf_freed(struct gprs_rlcmac_entity *gre, const struct gprs_rlcmac_ul_tbf *ul_tbf); + + #define LOGGRE(gre, level, fmt, args...) \ LOGRLCMAC(level, "GRE(%08x) " fmt, (gre)->tlli, ## args) diff --git a/src/rlcmac/gre.c b/src/rlcmac/gre.c index e728695..6340437 100644 --- a/src/rlcmac/gre.c +++ b/src/rlcmac/gre.c @@ -79,6 +79,22 @@ talloc_free(gre); } +/* Called by dl_tbf destructor to inform the DL TBF pointer has been freed. + * Hence memory pointed by "dl_tbf" is already freed and shall not be accessed. */ +void gprs_rlcmac_entity_dl_tbf_freed(struct gprs_rlcmac_entity *gre, const struct gprs_rlcmac_dl_tbf *dl_tbf) +{ + if (gre->dl_tbf == dl_tbf) + gre->dl_tbf = NULL; +} + +/* Called by ul_tbf destructor to inform the UL TBF pointer has been freed. + * Hence memory pointed by "ul_tbf" is already freed and shall not be accessed. */ +void gprs_rlcmac_entity_ul_tbf_freed(struct gprs_rlcmac_entity *gre, const struct gprs_rlcmac_ul_tbf *ul_tbf) +{ + if (gre->ul_tbf == ul_tbf) + gre->ul_tbf = NULL; +} + /* TS 44.060 5.3 In packet idle mode: * - no temporary block flow (TBF) exists.. * - the mobile station monitors the relevant paging subchannels on CCCH. In packet diff --git a/src/rlcmac/tbf.c b/src/rlcmac/tbf.c index 2168801..178f2fe 100644 --- a/src/rlcmac/tbf.c +++ b/src/rlcmac/tbf.c @@ -40,6 +40,7 @@ gprs_rlcmac_pdch_ulc_release_tbf(g_rlcmac_ctx->sched.ulc[i], tbf); } +/* Comodity function to call required ul/dl tbf function: */ void gprs_rlcmac_tbf_free(struct gprs_rlcmac_tbf *tbf) { if (tbf->direction == GPRS_RLCMAC_TBF_DIR_UL) diff --git a/src/rlcmac/tbf_dl.c b/src/rlcmac/tbf_dl.c index 77110a9..570b0d7 100644 --- a/src/rlcmac/tbf_dl.c +++ b/src/rlcmac/tbf_dl.c @@ -61,11 +61,14 @@ void gprs_rlcmac_dl_tbf_free(struct gprs_rlcmac_dl_tbf *dl_tbf) { + struct gprs_rlcmac_tbf *tbf; + struct gprs_rlcmac_entity *gre; + if (!dl_tbf) return; - if (dl_tbf->tbf.gre->dl_tbf == dl_tbf) - dl_tbf->tbf.gre->dl_tbf = NULL; + tbf = dl_tbf_as_tbf(dl_tbf); + gre = tbf->gre; msgb_free(dl_tbf->llc_rx_msg); dl_tbf->llc_rx_msg = NULL; @@ -78,8 +81,10 @@ gprs_rlcmac_tbf_dl_fsm_destructor(dl_tbf); - gprs_rlcmac_tbf_destructor(dl_tbf_as_tbf(dl_tbf)); + gprs_rlcmac_tbf_destructor(tbf); talloc_free(dl_tbf); + /* Inform the MS that the TBF pointer has been freed: */ + gprs_rlcmac_entity_dl_tbf_freed(gre, dl_tbf); } diff --git a/src/rlcmac/tbf_ul.c b/src/rlcmac/tbf_ul.c index d83c609..d9cd04a 100644 --- a/src/rlcmac/tbf_ul.c +++ b/src/rlcmac/tbf_ul.c @@ -69,19 +69,22 @@ void gprs_rlcmac_ul_tbf_free(struct gprs_rlcmac_ul_tbf *ul_tbf) { + struct gprs_rlcmac_tbf *tbf; + struct gprs_rlcmac_entity *gre; + if (!ul_tbf) return; + tbf = ul_tbf_as_tbf(ul_tbf); + gre = tbf->gre; + if (ul_tbf->countdown_proc.llc_queue) { - gprs_rlcmac_llc_queue_merge_prepend(ul_tbf->tbf.gre->llc_queue, + gprs_rlcmac_llc_queue_merge_prepend(gre->llc_queue, ul_tbf->countdown_proc.llc_queue); gprs_rlcmac_llc_queue_free(ul_tbf->countdown_proc.llc_queue); ul_tbf->countdown_proc.llc_queue = NULL; } - if (ul_tbf->tbf.gre->ul_tbf == ul_tbf) - ul_tbf->tbf.gre->ul_tbf = NULL; - talloc_free(ul_tbf->llc_tx_msg); gprs_rlcmac_rlc_block_store_free(ul_tbf->blkst); @@ -93,8 +96,10 @@ gprs_rlcmac_tbf_ul_ass_fsm_destructor(ul_tbf); gprs_rlcmac_tbf_ul_fsm_destructor(ul_tbf); - gprs_rlcmac_tbf_destructor(ul_tbf_as_tbf(ul_tbf)); + gprs_rlcmac_tbf_destructor(tbf); talloc_free(ul_tbf); + /* Inform the MS that the TBF pointer has been freed: */ + gprs_rlcmac_entity_ul_tbf_freed(gre, ul_tbf); } /* whether the UL TBF is in Contention Resolution state (false = already succeeded)*/ -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I72959e27f2f62c84218d740cfb9e396d70562929 Gerrit-Change-Number: 33551 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
[M] Change in libosmo-gprs[master]: WIP: defer going to pkt_idle_timer after freeing TBF
by pespin 04 Jul '23

04 Jul '23
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33553 ) Change subject: WIP: defer going to pkt_idle_timer after freeing TBF ...................................................................... WIP: defer going to pkt_idle_timer after freeing TBF Give some time to pending tx blocks to be transmitted before jumping back to CCCH. Change-Id: I563ad2ee6aacd65314e998626dc27adc29221a7d --- M include/osmocom/gprs/rlcmac/gre.h M src/rlcmac/gre.c M tests/rlcmac/rlcmac_prim_test.c M tests/rlcmac/rlcmac_prim_test.err M tests/rlcmac/rlcmac_prim_test.ok 5 files changed, 62 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/53/33553/1 diff --git a/include/osmocom/gprs/rlcmac/gre.h b/include/osmocom/gprs/rlcmac/gre.h index 0e17836..1debea4 100644 --- a/include/osmocom/gprs/rlcmac/gre.h +++ b/include/osmocom/gprs/rlcmac/gre.h @@ -1,6 +1,8 @@ /* GPRS RLC/MAC Entity (one per MS) */ #pragma once +#include <osmocom/gsm/gsm0502.h> + #include <osmocom/gprs/rlcmac/rlcmac.h> #include <osmocom/gprs/rlcmac/llc_queue.h> #include <osmocom/gprs/rlcmac/tbf_dl_ass_fsm.h> @@ -9,6 +11,9 @@ struct gprs_rlcmac_ul_tbf; struct gprs_rlcmac_tbf; +/* We have to defer going to CCCH a bit to leave space for last PKT CTRL ACK to be transmitted */ +#define DEFER_SCHED_PDCH_REL_REQ_uS (GSM_TDMA_FN_DURATION_uS*6) /* > 4.615 * 4 */ + struct gprs_rlcmac_entity { struct llist_head entry; /* item in (struct gprs_rlcmac_ctx)->gre_list */ uint32_t tlli; @@ -26,6 +31,7 @@ struct gprs_rlcmac_ul_tbf *ul_tbf; bool freeing; /* Set to true during destructor */ + struct osmo_timer_list defer_pkt_idle_timer; }; struct gprs_rlcmac_entity *gprs_rlcmac_entity_alloc(uint32_t tlli); diff --git a/src/rlcmac/gre.c b/src/rlcmac/gre.c index 9021faa..3d2297f 100644 --- a/src/rlcmac/gre.c +++ b/src/rlcmac/gre.c @@ -35,6 +35,15 @@ #include <osmocom/gprs/rlcmac/gre.h> #include <osmocom/gprs/rlcmac/rlcmac_enc.h> + +/* We have to defer going to CCCH a bit to leave space for last PKT CTRL ACK to be transmitted */ +static void _defer_pkt_idle_timer_cb(void *data) +{ + struct gprs_rlcmac_entity *gre = data; + gprs_rlcmac_submit_l1ctl_pdch_rel_req(); + gprs_rlcmac_entity_start_ul_tbf_pkt_acc_proc_if_needed(gre); +} + struct gprs_rlcmac_entity *gprs_rlcmac_entity_alloc(uint32_t tlli) { struct gprs_rlcmac_entity *gre; @@ -44,6 +53,8 @@ if (!gre) return NULL; + osmo_timer_setup(&gre->defer_pkt_idle_timer, _defer_pkt_idle_timer_cb, gre); + gre->llc_queue = gprs_rlcmac_llc_queue_alloc(gre); if (!gre->llc_queue) goto err_free_gre; @@ -73,6 +84,8 @@ gre->freeing = true; + osmo_timer_del(&gre->defer_pkt_idle_timer); + gprs_rlcmac_tbf_dl_ass_fsm_destructor(&gre->dl_tbf_dl_ass_fsm); gprs_rlcmac_dl_tbf_free(gre->dl_tbf); gprs_rlcmac_ul_tbf_free(gre->ul_tbf); @@ -111,8 +124,8 @@ /* we have no DL nor UL TBFs. Go back to PACKET-IDLE state, and start * packet-access-procedure if we still have data to be transmitted. */ - gprs_rlcmac_submit_l1ctl_pdch_rel_req(); - gprs_rlcmac_entity_start_ul_tbf_pkt_acc_proc_if_needed(gre); + /* We have to defer going to CCCH a bit to leave space for last PKT CTRL ACK to be transmitted */ + osmo_timer_schedule(&gre->defer_pkt_idle_timer, 0, DEFER_SCHED_PDCH_REL_REQ_uS); } /* Called by ul_tbf destructor to inform the UL TBF pointer has been freed. @@ -145,8 +158,8 @@ /* we have no DL nor UL TBFs. Go back to PACKET-IDLE state, and start * packet-access-procedure if we still have data to be transmitted. */ - gprs_rlcmac_submit_l1ctl_pdch_rel_req(); - gprs_rlcmac_entity_start_ul_tbf_pkt_acc_proc_if_needed(gre); + /* We have to defer going to CCCH a bit to leave space for last PKT CTRL ACK to be transmitted */ + osmo_timer_schedule(&gre->defer_pkt_idle_timer, 0, DEFER_SCHED_PDCH_REL_REQ_uS); } /* TS 44.060 5.3 In packet idle mode: diff --git a/tests/rlcmac/rlcmac_prim_test.c b/tests/rlcmac/rlcmac_prim_test.c index 5ac2c32..0c40737 100644 --- a/tests/rlcmac/rlcmac_prim_test.c +++ b/tests/rlcmac/rlcmac_prim_test.c @@ -566,6 +566,17 @@ void cleanup_test(void) { + struct gprs_rlcmac_entity *gre; + llist_for_each_entry(gre, &g_rlcmac_ctx->gre_list, entry) { + if (osmo_timer_pending(&gre->defer_pkt_idle_timer)) { + /* increase time DEFER_SCHED_PDCH_REL_REQ_uS, defer_pkt_idle_timer should trigger */ + clock_override_add(0, DEFER_SCHED_PDCH_REL_REQ_uS); + clock_debug("Expect defer_pkt_idle_timer timeout"); + osmo_select_main(0); + break; + } + } + /* Reinit the RLCMAC layer so that data generated during the test is freed within the test context: */ osmo_gprs_rlcmac_init(OSMO_GPRS_RLCMAC_LOCATION_MS); } diff --git a/tests/rlcmac/rlcmac_prim_test.err b/tests/rlcmac/rlcmac_prim_test.err index 5f8cbbb..087e371 100644 --- a/tests/rlcmac/rlcmac_prim_test.err +++ b/tests/rlcmac/rlcmac_prim_test.err @@ -689,9 +689,9 @@ DLGLOBAL INFO UL_TBF{FINISHED}: Send L1CTL-CFG_UL_TBF.req ul_tbf_nr=0 (release) DLGLOBAL DEBUG Tx to lower layers: L1CTL-CFG_UL_TBF.request DLGLOBAL INFO UL_TBF{FINISHED}: Deallocated +DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_DATA.request DLGLOBAL INFO Tx L1CTL-PDCH_REL.req DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_RELEASE.request -DLGLOBAL DEBUG Tx to lower layers: L1CTL-PDCH_DATA.request DLGLOBAL INFO DL_TBF_ASS{IDLE}: Deallocated DLGLOBAL DEBUG Rx from lower layers: L1CTL-CCCH_DATA.indication DLGLOBAL DEBUG Rx SI13 from lower layers diff --git a/tests/rlcmac/rlcmac_prim_test.ok b/tests/rlcmac/rlcmac_prim_test.ok index a3e82c3..731bd20 100644 --- a/tests/rlcmac/rlcmac_prim_test.ok +++ b/tests/rlcmac/rlcmac_prim_test.ok @@ -8,8 +8,10 @@ test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=8 ts=7 data_len=34 data=[00 01 02 1d 00 00 23 42 11 e5 10 00 e2 18 f2 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00 ] test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=21 ts=7 data_len=23 data=[40 04 00 00 8d 08 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b ] test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 -test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request === test_ul_tbf_attach end === +sys={0.027690}, mono={0.027690}: clock_override_add +sys={0.027690}, mono={0.027690}: Expect defer_pkt_idle_timer timeout +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request === test_ul_tbf_t3164_timeout start === sys={0.000000}, mono={0.000000}: clock_override_set test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x79 @@ -39,9 +41,11 @@ sys={20.000000}, mono={20.000000}: clock_override_add sys={20.000000}, mono={20.000000}: Expect T3164 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 +=== test_ul_tbf_t3164_timeout end === +sys={20.027690}, mono={20.027690}: clock_override_add +sys={20.027690}, mono={20.027690}: Expect defer_pkt_idle_timer timeout test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7a -=== test_ul_tbf_t3164_timeout end === test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=1 ul_slotmask=0x00 === test_ul_tbf_t3166_timeout start === sys={0.000000}, mono={0.000000}: clock_override_set @@ -77,8 +81,10 @@ sys={20.000000}, mono={20.000000}: clock_override_add sys={20.000000}, mono={20.000000}: Expect T3166 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 -test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request === test_ul_tbf_t3166_timeout end === +sys={20.027690}, mono={20.027690}: clock_override_add +sys={20.027690}, mono={20.027690}: Expect defer_pkt_idle_timer timeout +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request === test_ul_tbf_n3104_timeout start === sys={0.000000}, mono={0.000000}: clock_override_set test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7b @@ -128,8 +134,10 @@ sys={5.000000}, mono={5.000000}: clock_override_add sys={5.000000}, mono={5.000000}: Expect T3182 timeout test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 -test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request === test_ul_tbf_t3182_timeout end === +sys={5.027690}, mono={5.027690}: clock_override_add +sys={5.027690}, mono={5.027690}: Expect defer_pkt_idle_timer timeout +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request === test_ul_tbf_last_data_cv0_retrans_max start === sys={0.000000}, mono={0.000000}: clock_override_set test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7b @@ -146,9 +154,11 @@ test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=21 ts=7 data_len=34 data=[00 00 02 1d 11 e5 10 00 e2 18 f2 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00 ] RTS 3: FN=26 test_rlcmac_prim_down_cb(): Rx L1CTL-CFG_UL_TBF.request ul_tbf_nr=0 ul_slotmask=0x00 -test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_DATA.request fn=26 ts=7 data_len=34 data=[00 00 02 1d 11 e5 10 00 e2 18 f2 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00 ] === test_ul_tbf_last_data_cv0_retrans_max end === +sys={0.027690}, mono={0.027690}: clock_override_add +sys={0.027690}, mono={0.027690}: Expect defer_pkt_idle_timer timeout +test_rlcmac_prim_down_cb(): Rx L1CTL-PDCH_RELEASE.request === test_ul_tbf_countdown_procedure start === sys={0.000000}, mono={0.000000}: clock_override_set test_rlcmac_prim_down_cb(): Rx L1CTL-RACH.request ra=0x7e -- To view, visit https://gerrit.osmocom.org/c/libosmo-gprs/+/33553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-gprs Gerrit-Branch: master Gerrit-Change-Id: I563ad2ee6aacd65314e998626dc27adc29221a7d Gerrit-Change-Number: 33553 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin(a)sysmocom.de> Gerrit-MessageType: newchange
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • ...
  • 306
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.