aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-09-02Introduce IPAC manufacture-defined measurement pre-processing variablesnrw/litecell15-mergeMinh-Quang Nguyen1-0/+61
Change-Id: I95029aa2480216307bae3c5ce324f84a6f17bb3a
2016-09-01IuPS: add Iu response to delete_pdp_conf()Daniel Willmann1-0/+7
Change-Id: I6d601586101c0a004b2243633fab48db82b44b7c
2016-09-01IuPS: add Iu response to create_pdp_conf()Daniel Willmann3-0/+35
Change-Id: Iad65ca9b77c3166d4df9a58af527e6aef7e589ee
2016-09-01IuPS: redirect Iu in various places, link Iu in sgsn-testDaniel Willmann2-6/+65
In gsm48_gmm_sendmsg(), redirect to iu_tx() for both cases of MM context present or not. In gsm48_rx_gmm_att_req(), compose an MM context marked as Iu for messages coming in from a ue_conn_ctx (passed in msg->dst). Also make sure cid is initialized to avoid introducing a compiler warning. In gsm48_rx_gmm_ra_upd_req(), look up an Iu MM context based on the presence of the ue_conn_ctx in msg->dst. In sgsn-test, add libiu and libasn1c, libosmo-sigtran, libosmo-ranap, which are now needed for an --enable-iu build. Change-Id: Ia47ffbfa6fa0f5a0cd76a379c57ef42faa0d80e3
2016-09-01IuPS: osmo-sgsn: add core IuPS impl, call iu_init()Daniel Willmann7-3/+239
Add main Iu entry points for IuPS: * gsm0408_gprs_rcvmsg_iu() * sgsn_ranap_iu_event() * sgsn_ranap_rab_ass_resp() Add main MM context management for IuPS: * sgsn_mm_ctx_by_ue_ctx() * sgsn_mm_ctx_alloc_iu() Call iu_init() from sgsn_main.c. Add asn_debug impl ("extern" from libasn1c). Initialize asn_debug VTY command (iu_vty_init()). osmo-sgsn build: add libiu and libasn1c, libosmo-sigtran, libosmo-ranap Change-Id: I469ae6ca9ef254d04ee0d2d79bdd65aebcd027b5
2016-08-31IuPS: add VTY config for asn_debugNeels Hofmeyr3-1/+53
Add file iu_vty.c in libiu, and iu_vty_init() to initialize the new VTY command: log logging asn1-debug (1|0) Change-Id: If4e7d0ab3fc2ed0cdf4fb0a3fa077a9e34890918
2016-08-31osmo-nitb: generate backtrace on SIGABRTHarald Welte1-0/+1
As the NITB has an internal SIGABRT handler that prints a talloc report, let's also print a stack backtrace at the same point. Change-Id: Ia63aa5c39b26e27c3ee220d755c17d2c1ef636c5
2016-08-30bsc/netinit: correct mistyped rate counterAlexander Couzens1-1/+1
Introduced by b847a21fa48158b17c4f84c1ceeb3d143cffed8c Change-Id: I57c41f98e3826951a5071b005cb640c23d466477
2016-08-29libmsc/bsc: split rate counters into bsc and msc groupAlexander Couzens11-94/+110
Tweaked-By: Neels Hofmeyr <nhofmeyr@sysmocom.de> Change-Id: I7361033cd1eb919ec3c2ea2652f40ab8c75b2f99
2016-08-27IuPS: track msg->dst aka ue_conn_ctx, commentDaniel Willmann1-0/+4
For Iu connections, msg->dst will point to the ue_conn_ctx, and we need to make sure to keep msg->dst intact when copying from/to msgb and from/to MM context. Change-Id: I90c7ca6c3655d447aaca958e0086ae6ce6f6045a
2016-08-27gprs_gmm: Fix bit mask when determining update/attach typeDaniel Willmann1-2/+6
Bit 4 is reserved in 3GPP TS 04.08 so exclude it from the type. In 3GPP TS 24.008 it indicates if a follow-on request is pending by the MS, but only in Iu mode. According to the spec it is not required to react to that request with a follow-on proceed so this field can be ignored for now. See 3GPP TS 24.008 Ch. 4.4: "Unless it has specific permission from the network (follow-on proceed) the mobile station side should await the release of the RR connection used for a MM specific procedure before a new MM specific procedure or MM connection establishment is started." as well as Ch. 4.4.4.6: "If the network wishes to prolong the RR connection to allow the mobile station to initiate MM connection establishment (for example if the mobile station has indicated in the LOCATION UPDATING REQUEST that it has a follow-on request pending) the network shall send "follow on proceed" in the LOCATION UPDATING ACCEPT and start timer T3255." Change-Id: If1dff960c406060e257dafc54132687ffc42ad8f
2016-08-27cosmetic: gprs_sgsn.c: move pdp.h include to topNeels Hofmeyr1-1/+2
Change-Id: I9a9b34d714235462ba72cdb65b7c8c9824dfa9c6
2016-08-27add libiuNeels Hofmeyr6-3/+844
Co-Authored by dwillmann, laforge, nhofmeyr Change-Id: Iffc26f9c73cb15463948f7435b72ac1747aabdb3
2016-08-27Adding LLC-XID related modifications in LLCPhilipp3-57/+315
With this commit the already existing XID mechanism has been modified to suit the needs for the upcomming SNDCP-XID patches. This commit should not break anything since it does not alter the current behaviour (incoming XID is still just echoed, on GMM-Reset a basic XID message is still echoed) Change-Id: I65b9d625e72d3d61c99abdc7041773701d694d52
2016-08-27Moving grs_sndcp.h header file to includePhilipp5-7/+3
For some reason gprs_sndcp.h is located in src/gprs. This commit moves gprs_sndcp.h to include/openbsc and fixes the include path in gprs_sndcp.c and gprs_sndcp_vty.c Change-Id: If4e4f1252c81d7907c1b4d738c982bb172b128c9
2016-08-27Adding LLC-XID encoder / decoder and unit testPhilipp11-3/+526
The lle-xid encoder/decoder is needed to encode and decode llc xid parameter messages. We need this to exchange sndcp-parameters (SNDCP-XID) and also simple parameters such as encryption IOVs Change-Id: Ia06e4cb08bf9b48c2a4682606d1b1a91d19a9d37
2016-08-27log: rsl notice: tiny tweak for readabilityNeels Hofmeyr1-1/+1
Change-Id: I57c3b7d27d857c96e3fa3dacf7b766bc43100fc3
2016-08-27log: improve for rsl_lchan_mark_broken()Neels Hofmeyr1-9/+3
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
2016-08-27dyn TS: debug log: if still in use, also log lchan type and stateNeels Hofmeyr1-3/+5
Change-Id: Ifbf31cde24b2d1022b7a472966c17959c96e6dda
2016-08-27dyn TS: debug log 'switchover complete' only when there was a switchoverNeels Hofmeyr1-2/+3
Change-Id: I7ddcb41edce1cd7b22fe91e33bdcaedb21856222
2016-08-27dyn TS: fix OS#1798: on late RF CHAN REL ACK, activate PDCHNeels Hofmeyr1-0/+2
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
2016-08-27dyn TS: fix: properly run an lchan activation timeoutNeels Hofmeyr1-0/+7
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
2016-08-27dyn TS: clearly use lchan[0], fixing minor confusionNeels Hofmeyr3-42/+56
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
2016-08-27dyn TS: fix error recovery: switch to PDCH after lchan error stateNeels Hofmeyr1-0/+3
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
2016-08-27dyn TS: move check whether to switch to PDCH to separate functionNeels Hofmeyr1-17/+33
Prepares for an upcoming commit using the same check in error_timeout_cb(). Change-Id: I8abfa964631040f798212cc3e360f67f9e09b7c5
2016-08-27libmsc: add missing count of sms no receiver when using smpp_firstAlexander Couzens1-1/+3
Change-Id: I20ecb3299d67dbaa7b016620685997db49970ffb
2016-08-27libbsc/libmsc: convert old osmo counter into rate_ctrgsAlexander Couzens11-140/+152
rate counters support the export to statsd and can have a delta value. Change-Id: Ie749cebd53a0bb618d0e23d375885712078bf8dd
2016-08-27sgsn: add statistics counter for LLC packetsAlexander Couzens3-0/+15
new counters are: llc.dl_bytes llc.ul_bytes llc.dl_packets llc.ul_packets The ip payload bytes are waiting for payload compression because those data are known then. Change-Id: I068376d35e84283cb98523cd3097a12c55cdb709
2016-08-27move ts_sublots() to gsm_data_shared.c, it will be used by osmo-btsNeels Hofmeyr4-27/+27
Change-Id: I8ba06d7dd6e0ceab3d8d18bb565354d6ed461f7e
2016-08-27chan_alloc.c: use ts_subslots() instead of subslots_per_pchan[]Neels Hofmeyr1-2/+2
The array will move to gsm_data_shared.c; to prepare, use the function instead. Change-Id: Icbea7dbd78abf6144e5291f531a97f96507d8cbf
2016-08-27dyn TS: bts_chan_load: use correct nr of subslots for dyn tsNeels Hofmeyr1-1/+3
For TCH/F_TCH/H_PDCH dynamic timeslots, the ts->pchan does not lead to a meaningful value from the subslots_per_pchan[] array. Use the ts_subslots() function instead, which checks for dyn pchan. Change-Id: I659acebca82dfb3e305433471be64e9d27439af8
2016-08-22comment: gsm48_gmm_sendmsg(): add spec reference on encryptableNeels Hofmeyr1-1/+3
Change-Id: I54a3bc518bc38e38b78f6e9ea3705e4fbd5ffb98
2016-08-15ci: Attempt to disable doxygen warnings of dependenciesHolger Hans Peter Freyther1-2/+3
We do not want to see doxygen warnings when building the libosmocore dependency. Change-Id: I4640cb5b91d54641e8e5b2f096c3bca49bfff60e
2016-08-11Add web proxy for control interfaceMax1-0/+147
Add web application exposing Control Interface over web. All of SET, GET and TRAP are fully supported. Notice: TRAP is converted into 'Server-sent events' according to RFC 6202, see also https://www.w3.org/TR/eventsource/ - this requires corresponding client. Due to use of special prefix modified version of python eventsource-client is necessary ATM. Change-Id: I87d40c80061f8b3d02d656ab8cadabbfb871b461 Related: OS#1646
2016-08-11Add python functions to get/set ctrl variablesMax1-4/+27
Add get_var and set_var functions which handle requested variable while checking for proper response and id. Split header handling into separate function. Change-Id: I08705963c277bd93a011193dd7451a626d606c21 Related: OS#1646
2016-08-11Use random operation idMax1-8/+10
According to documentation for Control Interface Protocol <id> is "A numeric identifier, uniquely identifying this particular operation", hence it's best to be illustrated with random integer - use it as default. Fix override of id with previously used python-specific objects' id. Change-Id: I32236c067360526f4e7ee4bbdba64c5137de696d Related: OS#1646
2016-08-10gsm_pchan2chan_nr(): fix uninitialized cbitsNeels Hofmeyr1-6/+5
Commit ec1b5a0e9e2b6549e0ede48e803095e569997355 introduced an unset cbits value for the 'special hack for BCCH', where I break out of the switch without setting cbits. Fix that. Also remove the comment part that says 'return 0', because I don't return 0. Change-Id: I54129d921807971eeafc23f80c57666c67b71377
2016-08-10gsm_pchan2chan_nr: disable a chan_nr assert in BTS, to not break octphyNeels Hofmeyr1-0/+10
In https://gerrit.osmocom.org/589 , msuraev reports an assertion on octphy. So disable this recently added assertion until we clarify the invocation in question. Change-Id: Ia0f7ae5b114e179ab56b98adbae9810e81b4b88f
2016-08-08add .mailmap file for mapping git author name/mail in shortlogHarald Welte1-0/+12
Change-Id: I7ed97fb897895935f942e3eb4fd87a8c138417be
2016-08-08add example config for sysmobtsHarald Welte1-0/+77
Many years ago, there was no difference between the libbsc support for nanobts and sysmobts. However, this is not the case for a long time anymore, and there are some specifics in OsmoNITB when it comes to sysmobts. Let's have an example config file Change-Id: I94ae57c9a3cb497ca39d56270fa15ed65d7f147e
2016-07-29Improve code re-useMax1-58/+59
Introduce explicit __main__ function to facilitate re-use of defined python functions for ctrl interface. Change-Id: I9bad8f0dd1d69bd28816bf047d85840e3411bb9c Related: OS#1646
2016-07-28dyn TS: OS#1778 workaround: disable TCH/F on dyn TS for nitbNeels Hofmeyr4-1/+21
To avoid two phones picking mismatching TCH pchans, never pick TCH/F on dynamic TS in osmo-nitb. Add gsm_network flag dyn_ts_allow_tch_f, set to true by default in gsm_network_init(). Set this flag to false in osmo-nitb's main(). See http://osmocom.org/issues/1778 Reasoning about ways to solve this: * a compile time switch doesn't work because libbsc is first compiled and then linked to both osmo-nitb and osmo-bsc. * we could test net->bsc_api == msc_bsc_api(), but I have the so-called MSC split waiting on branch sysmocom/cscn, which will result in msc_bsc_api() not being linked in the osmo-bsc binary. * have a function am_i_nitb() with different implementations in osmo-nitb and osmo-bsc, but then we'd need to add implementations to all tests and other binaries linking lchan_alloc(). * have a flag in struct bsc_api, but so far there are only function pointers there. Having a "global" flag in gsm_network allows to add a VTY command in case we decide to keep this feature (#1781), has no linking implications and is nicely explicit. Tested that osmo-bsc still picks TCH/F on dyn TS indirectly, since I have no standalone MSC available: when compiling osmo-nitb with the line that sets dyn_ts_allow_tch_f = false commented out, TCH/F is picked as described in OS#1778; and by printf-verifying that dyn_ts_allow_tch_f == true in osmo-bsc main(), only osmo-nitb should have TCH/F disabled. Related: OS#1778, OS#1781 Change-Id: If7e4797a72815fc6e2bbef27756ea5df69f4bde7
2016-07-28dyn TS: Rename bsc_dyn_pdch.c to bsc_dyn_ts.cNeels Hofmeyr2-1/+1
It's no longer just for IPAC style TCH/F_PDCH, but also contains code for TCH/F_TCH/H_PDCH, so pick a more general name. Change-Id: Ic19db81eca03fd72738839ee3686b6b4c8b6b437
2016-07-28dyn TS: split dyn_pdch_init() for new dyn type and renameNeels Hofmeyr4-14/+41
Init both TCH/F_PDCH and TCH/F_TCH/H_PDCH via dyn_ts_init(), which refactors dyn_pdch_init(). Make dyn_ts_switchover_start from abis_rsl.c public in abis_rsl.h, so we can start the initial switchover to PDCH from dyn_ts_init(); in abis_rsl.h include gsm_utils.h for enum gsm_phys_chan_config. Change-Id: I5c0b257ba8ff0e9c9a2268681a84b0681a778368
2016-07-28dyn TS: implement pchan switchover logicNeels Hofmeyr4-1/+351
In struct gsm_lchan, add dyn.rqd_ref and dyn.rqd_ta. These save the Channel Requested details across the PDCH deactivation dance. abis_rsl.c: add static functions: * dyn_ts_switchover*() for the various stages of switchover between pchans. * pchan_for_lchant() to derive the desired pchan from the lchan type that was set during lchan_alloc(). * rsl_chan_activate_lchan_as_pdch() to compose the simpler RSL CHAN ACT message without introducing numerous special cases to the normal RSL CHAN ACT code. In rsl_chan_activate_lchan(), detect and initiate required pchan switchovers if requested pchan on a dyn TS differs. In rsl_rx_rf_chan_rel_ack(), initiate or continue pchan switchovers after a channel was released. In rsl_rx_chan_act_ack(), notice that a switchover is complete. In chan_alloc.c, add ts_subslots(): abis_rsl.c will need to know the number of subslots per pchan, to verify that all lchans are free before dyn TS switchover. The subslots_per_pchan[] array is static to lchan_alloc.c, and since we need a non-trivial check for dyn TS anyway, add public ts_subslots() to lchan_alloc.c, which also checks the current dyn pchan type. Change-Id: I5c6bce13092a10204113d84678c587c65e35e4fd
2016-07-28dyn TS: chan act: set chan_nr according to dyn pchan typeNeels Hofmeyr1-2/+6
Change-Id: Ica5ef2197b3e97d5e895f3e3221295d5d0ef8908
2016-07-28dyn TS: enhance channel allocator for dynamic TSNeels Hofmeyr1-7/+120
Change _lc_find_bts() to _lc_dyn_find_bts() with added dyn_as_pchan arg to pass exactly as which pchan we'd like to allocate on a dynamic TS. Add _lc_find_bts() as wrapper so non-dynamic-TS callers remain unchanged. Also add dyn_as_pchan arg to _lc_find_trx() (not renaming to dyn and wrapping because there is only one caller). Implement dynamic allocator logic in _lc_find_trx() and lchan_alloc(). A returned dynamic channel still needs to be switched to the proper mode, which will follow in another commit. Replace a fixme comment with a normal comment in subslots_per_pchan[], because handling of dynamic TS is now defined. Change-Id: I18da7679300c43220d9baa6a304e8df74d366249
2016-07-28dyn TS: rsl_lchan_lookup(): add dyn PCHANNeels Hofmeyr1-2/+12
Accept GSM_PCHAN_TCH_F_TCH_H_PDCH for TCH/F and TCH/H if in matching pchan mode or switching to matching pchan. Accept RSL_CHAN_OSMO_PDCH chan_nr cbits for GSM_PCHAN_TCH_F_TCH_H_PDCH pchan. Change-Id: If8f7c118f69e5a9f370bfe25f82f3d5a8de75b51
2016-07-28dyn TS: verify_chan_comb(): handle new dyn TS NM_CHANC_*Neels Hofmeyr1-0/+3
Change-Id: I7ce754a48c7f492e921a4450745383bb8dd7225c
2016-07-28dyn TS: rsl *2chan_nr(): handle TCH/F_TCH/H_PDCHNeels Hofmeyr1-0/+7
In gsm_lchan2chan_nr() use the current pchan type. In gsm_lchan_as_pchan2chan_nr(), add the special case of non-standard cbits for activating PDCH on a TCH/F_TCH/H_PDCH dyn TS. This way, gsm_pchan2chan_nr() conforms to the standard and does not need access to a ts struct. Change-Id: If248b9073b9f397110a2003d8e1a04afdc1c0e20