diff options
| author | Harald Welte <laforge@gnumonks.org> | 2018-05-09 16:31:16 +0200 | 
|---|---|---|
| committer | Harald Welte <laforge@gnumonks.org> | 2018-05-09 16:33:42 +0200 | 
| commit | b82a407a4924f51844c01e1627c3bb01db210c0f (patch) | |
| tree | a7ff64036414510d0bb3d1ff826ae6a7147e36cc | |
| parent | f1bdf781aca6ee05d9475d260f9f1a5a81a25a03 (diff) | |
lapdm: don't enforce contention resolution on SAPI0/DCCH
In Change-Id: I8c2c103cdc7f9a45d7b2080c572f559fc3db58e4 we introduced
a check to enforce contention resolution always being used in
MS-originated LAPDm establishment on the main DCCH / SAPI0.  This is
only required after RACH request (IMM.ASS.) and not after a normal
assignment command which was sent already via a dedicated channel.
Hence, we cannot enforce a strict requirement for contention resolution
in those cases.
We *could* use the RSL Channel Activation type as a constraint on
whether or not to enforce contention-resoluiton-only LAPDm
establishment, but this is out of the scope of the LAPDm code but would
have to be done inside OsmoBTS.
Related: OS#3252
Change-Id: Id903492ee90809fe98defcf4abc0419b8150069f
| -rw-r--r-- | src/gsm/lapdm.c | 7 | 
1 files changed, 2 insertions, 5 deletions
| diff --git a/src/gsm/lapdm.c b/src/gsm/lapdm.c index b9e7304e..3a6fc5b5 100644 --- a/src/gsm/lapdm.c +++ b/src/gsm/lapdm.c @@ -552,16 +552,13 @@ static int lapdm_rx_not_permitted(const struct lapdm_entity *le,  				return RLL_CAUSE_SABM_INFO_NOTALL;  		} else {  			switch (lctx->sapi) { -			case 0: -				/* SAPI0 must use contention resolution, i.e. L3 payload must exist */ -				if (lctx->length == 0) -					return RLL_CAUSE_UFRM_INC_PARAM; -				break;  			case 3:  				/* SAPI3 doesn't support contention resolution */  				if (lctx->length > 0)  					return RLL_CAUSE_SABM_INFO_NOTALL;  				break; +			default: +				break;  			}  		}  	} else if (le->mode == LAPDM_MODE_MS) { | 
