This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/osmocom-commitlog@lists.osmocom.org/.
gitosis at osmocom.org gitosis at osmocom.orgThis is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)". The branch, neels/dyn_stability has been created at 8d2b33d0832be51a24cad82ff0be682a1888ab08 (commit) - Log ----------------------------------------------------------------- http://cgit.osmocom.org/openbsc/commit/?id=8d2b33d0832be51a24cad82ff0be682a1888ab08 commit 8d2b33d0832be51a24cad82ff0be682a1888ab08 Author: Neels Hofmeyr <nhofmeyr at sysmocom.de> Date: Wed Aug 24 17:02:19 2016 +0200 log: rsl notice: tiny tweak for readability Change-Id: I57c3b7d27d857c96e3fa3dacf7b766bc43100fc3 http://cgit.osmocom.org/openbsc/commit/?id=761413754b50e2f1f0801dad1ca0be6f523062b9 commit 761413754b50e2f1f0801dad1ca0be6f523062b9 Author: Neels Hofmeyr <nhofmeyr at sysmocom.de> Date: Wed Aug 24 16:48:00 2016 +0200 log: improve for rsl_lchan_mark_broken() In rsl_lchan_mark_broken(), call rsl_lchan_set_state() so the state transition gets logged in the debug log. Remove logging for the broken channel at the callers, instead log the error actually in rsl_lchan_mark_broken() itself, with the reason message passed by the caller anyway. (Removes code dup and ensures it's always logged.) Change-Id: I54ae9bbd3f193bae7b1bda1fef3e33e62b353bf5 http://cgit.osmocom.org/openbsc/commit/?id=4af1e8c272e246b17a62294fe1d52c3d3ccc5684 commit 4af1e8c272e246b17a62294fe1d52c3d3ccc5684 Author: Neels Hofmeyr <nhofmeyr at sysmocom.de> Date: Wed Aug 24 14:48:39 2016 +0200 dyn TS: debug log: if still in use, also log lchan type and state Change-Id: Ifbf31cde24b2d1022b7a472966c17959c96e6dda http://cgit.osmocom.org/openbsc/commit/?id=c5f08776f2108b9bb8611faa0d887412ef290f3a commit c5f08776f2108b9bb8611faa0d887412ef290f3a Author: Neels Hofmeyr <nhofmeyr at sysmocom.de> Date: Wed Aug 24 14:42:58 2016 +0200 dyn TS: debug log 'switchover complete' only when there was a switchover Change-Id: I7ddcb41edce1cd7b22fe91e33bdcaedb21856222 http://cgit.osmocom.org/openbsc/commit/?id=f76bdb2e66e09fd7bd23ab44d25a69372e7e8d16 commit f76bdb2e66e09fd7bd23ab44d25a69372e7e8d16 Author: Neels Hofmeyr <nhofmeyr at sysmocom.de> Date: Wed Aug 24 17:02:37 2016 +0200 dyn TS: fix OS#1798: on late RF CHAN REL ACK, activate PDCH Tested by hacking a REL ACK delay of a couple of seconds into osmo-bts' rsl.c for the first TCH_H lchan: [[[ diff --git a/include/osmo-bts/rsl.h b/include/osmo-bts/rsl.h index 093e9cb..b35c3bb 100644 --- a/include/osmo-bts/rsl.h +++ b/include/osmo-bts/rsl.h @@ -22,6 +22,7 @@ int rsl_tx_est_ind(struct gsm_lchan *lchan, uint8_t link_id, uint8_t *data, int int rsl_tx_chan_act_acknack(struct gsm_lchan *lchan, uint8_t cause); int rsl_tx_conn_fail(struct gsm_lchan *lchan, uint8_t cause); int rsl_tx_rf_rel_ack(struct gsm_lchan *lchan); +int rsl_tx_rf_rel_ack_later(struct gsm_lchan *lchan); int rsl_tx_hando_det(struct gsm_lchan *lchan, uint8_t *ho_delay); /* call-back for LAPDm code, called when it wants to send msgs UP */ diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 3802e25..1f92b0d 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -491,7 +491,16 @@ static int l1sap_info_rel_cnf(struct gsm_bts_trx *trx, lchan = get_lchan_by_chan_nr(trx, info_act_cnf->chan_nr); - rsl_tx_rf_rel_ack(lchan); + static int yyy = 0; + + DEBUGP(DRSL, "%s YYYYYYYYYYYYYYYYYYYYY %d %s\n", + gsm_lchan_name(lchan), yyy, gsm_lchant_name(lchan->type)); + + if (lchan->type == GSM_LCHAN_TCH_H && !yyy) { + yyy ++; + rsl_tx_rf_rel_ack_later(lchan); + } else + rsl_tx_rf_rel_ack(lchan); /* During PDCH DEACT, this marks the deactivation of the PDTCH as * requested by the PCU. Next up, we disconnect the TS completely and diff --git a/src/common/rsl.c b/src/common/rsl.c index 3c97af9..7926f21 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -534,6 +534,22 @@ int rsl_tx_rf_rel_ack(struct gsm_lchan *lchan) return abis_bts_rsl_sendmsg(msg); } +struct osmo_timer_list yyy_timer; + +static void yyy_timer_cb(void *data) +{ + rsl_tx_rf_rel_ack(data); +} + +int rsl_tx_rf_rel_ack_later(struct gsm_lchan *lchan) +{ + yyy_timer.cb = yyy_timer_cb; + yyy_timer.data = lchan; + osmo_timer_schedule(&yyy_timer, 10, 0); + return 0; +} + + /* 8.4.2 sending CHANnel ACTIVation ACKnowledge */ static int rsl_tx_chan_act_ack(struct gsm_lchan *lchan) { ]]] Change-Id: I87e07e1d54882f8f3d667fa300c6e3679f5c920d Fixes: OS#1798 http://cgit.osmocom.org/openbsc/commit/?id=888c29032a10888139e3462014cab186eeb8e8d5 commit 888c29032a10888139e3462014cab186eeb8e8d5 Author: Neels Hofmeyr <nhofmeyr at sysmocom.de> Date: Wed Aug 24 16:57:31 2016 +0200 dyn TS: fix: properly run an lchan activation timeout Actually schedule an activation timer for the activation part of a dyn TS switchover. It needs to be restarted because the channel release procedure in the first part of a switchover actually removes the activation timer. Change-Id: Ibf50d13ba10298464a8b07e34716763161438990 http://cgit.osmocom.org/openbsc/commit/?id=e0d4cceb3cd31dfef2c5e32d5897466094efd92a commit e0d4cceb3cd31dfef2c5e32d5897466094efd92a Author: Neels Hofmeyr <nhofmeyr at sysmocom.de> Date: Wed Aug 24 16:57:31 2016 +0200 dyn TS: clearly use lchan[0], fixing minor confusion The dyn_ts_switchover_*() functions made the impression that they act on a specific lchan of a timeslot. The assumption that we would remember to use e.g. lchan[1] across a PDCH deactivation is brain damaged to begin with; and factually we always use lchan[0] anyway (the only case for using lchan[1] would be when switching to TCH/H, but the channel allocator will always return lchan[0] for that). Instead of the brain damaged lchan args, use a ts arg across all dyn_ts_switchover_*() functions, with one exception: The dyn_ts_switchover_complete() actually receives an RSL activation ack message on a specific lchan and needs to evaluate its lchan type. This will always be lchan[0] as it is now, but we should stick with the lchan the message was sent for. For PDCH, a check to use lchan[0] already existed, when composing the ACT message in rsl_chan_activate_lchan_as_pdch(). Replace with an assertion. Adjust all callers to pass ts instead of lchan. In dyn_ts_switchover_start(), there was a dead code check that jumps to switchover_complete() in case the pchan already matches. This never hits, because we only call dyn_ts_switchover_start() when pchans mismatch. So avoid guessing at passing lchan[0] to dyn_ts_switchover_complete() by not calling it at all but logging an error instead. In rsl_chan_activate_lchan(), we remember some values before going into switchover from PDCH. Explicitly store them in lchan[0], because after a PDCH release we have always and will activate no other than lchan[0]. In dyn_ts_switchover_continue(), move the check for any existing lchan->rqd_ref further above, and more correctly check all lchans that were so far valid on the TS, instead of just one. This partly prepares for a subsequent commit to fix the act_timer use for dyn TS: with the old lchan arg, we might schedule an activation timer on lchan[1] but receive an ack on lchan[0] (for PDCH), leading to an act_timer expiry. Change-Id: I3f5d48a9bdaa49a42a1908d4a03744638c59796a http://cgit.osmocom.org/openbsc/commit/?id=35fe0769dc1c215610b953138053de4e06ade987 commit 35fe0769dc1c215610b953138053de4e06ade987 Author: Neels Hofmeyr <nhofmeyr at sysmocom.de> Date: Wed Aug 24 14:45:44 2016 +0200 dyn TS: fix error recovery: switch to PDCH after lchan error state Tested by hacking a CHAN ACT ACK delay of a couple of seconds into osmo-bts' rsl.c for the first TCH_H lchan: [[[ diff --git a/src/common/rsl.c b/src/common/rsl.c index 3c97af9..4bfd27a 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -559,6 +559,22 @@ static int rsl_tx_chan_act_ack(struct gsm_lchan *lchan) return abis_bts_rsl_sendmsg(msg); } +struct osmo_timer_list xxx_timer; + +static void xxx_timer_cb(void *data) +{ + rsl_tx_chan_act_ack(data); +} + +static int rsl_tx_chan_act_ack_later(struct gsm_lchan *lchan) +{ + xxx_timer.cb = xxx_timer_cb; + xxx_timer.data = lchan; + osmo_timer_schedule(&xxx_timer, 10, 0); + return 0; +} + + /* 8.4.7 sending HANDOver DETection */ int rsl_tx_hando_det(struct gsm_lchan *lchan, uint8_t *ho_delay) { @@ -614,6 +630,18 @@ int rsl_tx_chan_act_acknack(struct gsm_lchan *lchan, uint8_t cause) if (cause) return rsl_tx_chan_act_nack(lchan, cause); + + static int xxx = 0; + + DEBUGP(DRSL, "%s XXXXXXXXXXXXXXXXXXXXX %d %s\n", + gsm_lchan_name(lchan), xxx, gsm_lchant_name(lchan->type)); + + if (lchan->type == GSM_LCHAN_TCH_H) { + if (!xxx) { + xxx ++; + return rsl_tx_chan_act_ack_later(lchan); + } + } return rsl_tx_chan_act_ack(lchan); } ]]] Change-Id: Ie82dec9c9fefc476fdf5b5afdad2246b9d6fe304 http://cgit.osmocom.org/openbsc/commit/?id=0d1970fb4e277922f76110c1ba7073fb52dbcce9 commit 0d1970fb4e277922f76110c1ba7073fb52dbcce9 Author: Neels Hofmeyr <nhofmeyr at sysmocom.de> Date: Wed Aug 24 14:44:11 2016 +0200 dyn TS: move check whether to switch to PDCH to separate function Prepares for an upcoming commit using the same check in error_timeout_cb(). Change-Id: I8abfa964631040f798212cc3e360f67f9e09b7c5 ----------------------------------------------------------------------- hooks/post-receive -- The OpenBSC GSM Base Station Controller (+MSC/HLR/SGSN)