openbsc.git branch neels/dyn_stability created. 0.15.0-396-g8d2b33d

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.org
Wed Aug 24 16:56:57 UTC 2016


This 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)



More information about the osmocom-commitlog mailing list