aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2018-03-05handover_test: kick the gscon FSM into ACTIVE stateneels/fsm4Neels Hofmeyr1-2/+8
Change-Id: I46b9499b813c6f45a2dc5e8ab041dd473aee9339
2018-03-05handover_test.c: add the DMSC logging category WIPNeels Hofmeyr1-0/+5
The new gscon FSM logs to DMSC. Un-mute this logging in handover_test.c. DISCLAIMER: it's not set in stone that the gscon will remain in the DMSC logging category, it's just the current dev status-quo. If it moves to a different category, handover_test.c needs to adjust to it. Change-Id: I9713a3743c8fb9e7ba6f9c5925311ead8386a09f
2018-03-05handover_test: add missing stubsPhilipp Maier1-0/+2
handover_test.c lacks references to osmo_bsc_sigtran_send() and osmo_bsc_sigtran_open_conn() - add stubs to satisfy the controller
2018-03-05fixup: correct timier numer, remove dead codePhilipp Maier1-5/+1
2018-03-05trying to get handover_test.c to compileNeels Hofmeyr5-3/+8
Change-Id: Ic9fdfed86157e044f8809558edaa6dfd9782870b
2018-03-05WIP: suggestion to change triggering of HO: store ho info at connNeels Hofmeyr9-139/+120
Change-Id: Iebf9d1ce7df3c1a3b8cd80e1233a2891d9d2aa39
2018-03-05gscon_fsm: two typos 'CONNET'Neels Hofmeyr1-2/+2
Change-Id: Ia7d9ce92f68d0a8b8ccf8812751708702ecff87f
2018-03-05WIP: GSCON: Complete GSCON implementation (bsc_subscr_conn_fsm.c)Philipp Maier17-1470/+881
- Remove old osmo_bsc_mgcp.c code - Use the fsm based MGW client API to handle MGCP - Integrate some error handling - Ensure that signalling, data and voice channels are distinguished - Make internal handover work again Closes: OS#2823 Closes: OS#2768 Closes: OS#2898 Change-Id: I42da6ce3bef95d7a1743c39c5640db5739333a61
2018-03-05Release subscriber connection on RLL RELEASE IND of SAPI0 on main DCCHHarald Welte2-0/+4
The subscriber connection isn't really useful for anything after the SAPI0 main signalling link has been released. We could try to re-establish, but our best option is probably simply releasing the subscriber_conn and anything related to it. This will make TC_chan_rel_rll_rel_ind pass. Closes: OS#2730 Change-Id: Ia8a49eaceb3a644d5de1c7e0934798ed04f0287e
2018-03-05Terminate bsc_subscr_conn_fsm on SCCP N-DISC.ind from MSCHarald Welte1-0/+1
If the MSC is disconnecting the SCCP channel, we must terminate the FSM which in turn will release all lchan's and other state. This makes TC_chan_rel_hard_rlsd pass. As a side-effect, this fixes TC_chan_act_ack_est_ind_refused(), where the MSC is answering with CREF to our CR/COMPL_L3. Closes: OS#2731 Change-Id: I64a46b5bcd4272e3fa2ff4ee824c2f3fdff6854b
2018-03-05Introduce T993210 to release lchan + subscr_conn if MSC fails to respondHarald Welte1-2/+10
The GSM specs don't have an explicit timer for this, so let's introdcue a custom timer (hence starting with 99). This timeout catches the following situation: * we send a SCCP CR with COMPL_L3_INFO from the MS to the MSC, * the MSC doesn't respond (e.g. SCCP routing failure, program down, ...) The MS is supposed to timeout with T3210, 3220 or 3230. But the BSC shouldn't trust the MS but have some timer on its own. SCCP would have a timer T(conn est), but that one is specified to be 1-2min and hence rather long. Closes: OS#2775 Change-Id: Ie11d7d06353ba1b1e2fab6763dd7b032ce8a5d2c
2018-03-05bssmap_handle_assignm_req(): Fix logic to permit assignment to signalling ↵Harald Welte1-87/+102
channel Closes: OS#2762 Change-Id: I89137cd664ce4b9f615672600362d718081b29aa
2018-03-05WIP: introduce an osmo_fsm for gsm_subscriber_connectionHarald Welte20-234/+645
Change-Id: I68286d26e2014048b054f39ef29c35fef420cc97
2018-03-05handover_test: explicitly wrap abis_rsl_sendmsg()Neels Hofmeyr2-2/+8
Until now, handover_test simply defines an abis_rsl_sendmsg() function to override the one from libosmo-babis. To me this amounts to implicit linker magic (aka luck). The common pattern we're using for this scenario is to explicitly wrap an existing function by instructing the linker. Also do this for abis_rsl_sendmsg() in handover_test.c to clarify. Change-Id: I05ce33a4e42bc82b9ce5060e2f811033f5a1f8d8
2018-03-05cosmetic: bsc_network_init(): imply default 001-01 PLMNNeels Hofmeyr10-16/+14
All callers pass mcc=1, mnc=1, so just have it as default. (Prepare for net->country_code etc to be replaced by net->plmn) Change-Id: Ic16bc0bab3f2d4721e86a1a04f9d9f988d777df2
2018-03-05gsm48_ra_id_by_bts(): struct gsm48_ra_id* instead of bufNeels Hofmeyr4-9/+10
Move from using deprecated gsm48_construct_ra(), which uses a buf, to gsm48_encode_ra(), which uses a gsm48_ra_id argument. Pass struct gsm48_ra_id around instead of a buf. struct gsm48_ra_id is the "encoded" representation of the bytes in a typical MCC-MNC-LAC-RAC (04.08 Routing Area Id IE, 3GPP TS 24.008 § 10.5.5.15). Using the struct spares using magic numbers for byte offsets. In the process, fix a sanitizer warning for unaligned access by using memcpy() instead of pointer assignment: osmo-bsc/src/libbsc/abis_nm.c:2857:27: runtime error: store to misaligned address 0x7ffe8e0d6695 for type 'uint16_t', which requires 2 byte alignment Note that (besides removing a now unnecessary cast) the gsm0408_test and abis_test tests of RAI / CGI encoding remain stable, which indicates that the new code is still correct. Change-Id: I0d3908fb8ca1e2e669d257b5d59b40675fa85d06
2018-03-05ctrl_test_runner: add tests for 3-digit MNCNeels Hofmeyr1-0/+38
Expand MCC-MNC test cases: show that the CTRL interface currently does not preserve the third digit of the MNC if it is zero. These will be fixed by I8e722103344186fde118b26d8353db95a4581daa Change-Id: I5b097dbb6329f284e3b4914a744d5c3ad628f715
2018-03-05add test for abis_nm_ipaccess_cgi()Neels Hofmeyr2-0/+94
Change-Id: I90fefd5073ee07fc975a810859a32142b8b27904
2018-03-05add test for gsm48_ra_id_by_bts()Neels Hofmeyr2-0/+121
Change-Id: I7bd55126848ed2c246d64cf672e1e6772da64be7
2018-03-05compiler warning: chan_compat_with_mode(): clearly handle all enum valsNeels Hofmeyr1-19/+7
Change-Id: I5b3a9a9f0e88b42eed1591632dee1fa00e79f3a3
2018-03-04bsc_vty: Merge more VTY documentation string #definesHarald Welte1-10/+14
Change-Id: I3fcbcd319813e3b220daf8170cadd4ebb2aefa0f
2018-03-02Revert "Generate the S_L_INP_TEI_UP signal earlier."Harald Welte1-12/+13
This reverts commit faf0982ae20001519cf20c5d6345dad490a135f2, as it introduces a severe regression: No more BCCH FILL / SACCH INFO are sent upon RSL establishment to the BTS. See OS#2719 for more details Change-Id: I8a4f3be9928bc3a0b61f23dc3e41200105204651 Related: OS#2719
2018-03-01a_reset: Add FSM event namesPhilipp Maier1-0/+8
The FSM lacks a proper definition of the FSM event names. This causes problems when inspecting the FSM using the VTY. - Add proper FSM Event names Change-Id: Ief1eff45a896d6191bdc64c232be69e85bfc63dc Related: OS#2924
2018-03-01fix build: gprs_ra_id_by_bts(): ensure to init all valuesNeels Hofmeyr1-4/+6
After recent libosmocore commit "implement support for 3-digit MNC with leading zeros" c4fce1425e19d604c199c895e227dc2519110456 Id2240f7f518494c9df6c8bda52c0d5092f90f221, struct gprs_ra_id has a new member, namely mnc_3_digits. In gprs_ra_id_by_bts(), this new member is now not initialized and may end up having an arbitrary value, which then may amount to mnc_3_digits == true. Hence the resulting BCD representation of the MCC-MNC may inadvertently and randomly indicate a leading zero on the MNC. Use a struct assignment so that all members are guaranteed to be set, and so that mnc_3_digits will be zero in all cases. Since above libosmocore commit, nanobts_omlattr_test fails "randomly", fixed by this patch. Change-Id: I872ae3b2b0a0cd8f932f3a5fbc77c0dbfcb28bbf
2018-02-28Generate the S_L_INP_TEI_UP signal earlier.Stefan Sperling1-13/+12
The S_L_INP_TEI_UP signal was generated when the first message from a BTS arrives on the OML/RSL link, rather than when the OML/RSL link comes up. Instead, generate this signal when the link is brought up, so we intitialize state regardless of how a particular BTS behaves. Tested with osmo-bts-virtual and virtphy/mobile programs, and with a sysmobts. Change-Id: I3b76ae6b00043e706dddc78209311e00ace85bb7 Related: OS#2719
2018-02-28Align syntax of "handover" + "assignment" command with that of lchan act/deactHarald Welte1-7/+9
We already have other commands that operate on a given bts/trx/ts/ss, let's make sure they have a shared/common syntax for consistency. This also fixes the issue that the handover/assignment commands were active already in VIEW_NODE, while they should only have been in ENABLE_NODE. Change-Id: I1f31e9adf9c75348809ebf9f40f6c69fab248e43
2018-02-28pcuif_proto.h: add features of version 7 (txt indication)Alexander Couzens1-1/+16
The txt indication has been introduced with version 7, but forgotten to sync back to this repo. Change-Id: Iafef7dae8b84f659a1aca1677b30a38a2e5558dc
2018-02-28pcuif_proto.h: fix whitespaces and indentionAlexander Couzens1-5/+5
Change-Id: Ic676bb046a8ee254b9ee8d0d126ce79e6057cfb3
2018-02-27Add support for Access Control Class ramping.Stefan Sperling10-3/+533
Access Control Class (ACC) ramping is used to slowly make the cell available to an increasing number of MS. This avoids overload at startup time in cases where a lot of MS would discover the new cell and try to connect to it all at once. Ramping behaviour can be configured with new VTY commands: [no] access-control-class-ramping access-control-class-ramping-step-interval (<30-600>|dynamic) access-control-class-ramping-step-size (<1-10>) (The minimum and maximum values for these parameters are hard-coded, but could be changed if they are found to be inadequate.) The VTY command 'show bts' has been extended to display the current ACC ramping configuration. By default, ACC ramping is disabled. When enabled, the default behaviour is to enable one ACC per ramping step with a 'dynamic' step interval. This means the ramping interval (time between steps) is scaled to the channel load average of the BTS, i.e. the number of used vs. available channels measured over a certain amount of time. Below is an example of debug log output with ACC ramping enabled, while many 'mobile' programs are concurrently trying to connect to the network via an osmo-bts-virtual BTS. Initially, all ACCs are barred, and then only one class is allowed. Then the current BTS channel load average is consulted for scheduling the next ramping step. While the channel load average is low, ramping proceeds faster, and while it is is high, ramping proceeds slower: (bts=0) ACC RAMP: barring Access Control Class 0 (bts=0) ACC RAMP: barring Access Control Class 1 (bts=0) ACC RAMP: barring Access Control Class 2 (bts=0) ACC RAMP: barring Access Control Class 3 (bts=0) ACC RAMP: barring Access Control Class 4 (bts=0) ACC RAMP: barring Access Control Class 5 (bts=0) ACC RAMP: barring Access Control Class 6 (bts=0) ACC RAMP: barring Access Control Class 7 (bts=0) ACC RAMP: barring Access Control Class 8 (bts=0) ACC RAMP: barring Access Control Class 9 (bts=0) ACC RAMP: allowing Access Control Class 0 (bts=0) ACC RAMP: step interval set to 30 seconds based on 0% channel load average (bts=0) ACC RAMP: allowing Access Control Class 1 (bts=0) ACC RAMP: step interval set to 354 seconds based on 59% channel load average (bts=0) ACC RAMP: allowing Access Control Class 2 (bts=0) ACC RAMP: step interval set to 30 seconds based on 0% channel load average (bts=0) ACC RAMP: allowing Access Control Class 3 (bts=0) ACC RAMP: step interval set to 30 seconds based on 0% channel load average Change-Id: I0a5ac3a08f992f326435944f17e0a9171911afb0 Related: OS#2591
2018-02-27osmo-bts/nanobts: Set RACH_Busy Threshold to -90 dBmHarald Welte3-4/+4
In the past we used to set this to "-10 dBm" which means that basically no RACH ever passed that treshold and in the associated CCCH LOAD IND the number of busy slots was always zero. Let's set the default to -90dBm. The user can of course always configure a different value in the VTY. This means that now any RACH slot signal level >= 90 dBm counts as "busy" in those CCCH LOAD IND (RACH). Change-Id: Ib9cbb786d19acc74f0951930b0dc9284854c6000 Closes: OS#3004 Related: OS#3003
2018-02-27paging: fix paging attemt rate counterPhilipp Maier2-38/+2
The rate counter BSC_CTR_PAGING_ATTEMPTED does not increment when a paging request is sent to the BSC. The reson for this is that the function call to rate_ctr_inc() is located in a dead code section. - Move the function call to rate_ctr_inc() to osmo_bsc_bssmap.c. incremanet on any paging attempt (valid or not) that is recived on the A-Interface. - Remove dead code from paging.c Change-Id: Iec3eb6724bc655806c3ce3c28448069590d99f91
2018-02-27paging: page all bts when no cell is associatedPhilipp Maier1-2/+2
When the cell identifier list of the BSSMAP paging contains an "No cell is associated with the transaction." entry then the paging is dropped and no paging is started at all. This is not correct. When no cell is associated, the BSS should page the whole BSS instead. - Replace respective error case with a paging request to all bts. Change-Id: Id85e3a7540bdc13cd0e780e7870f16c35c6a6a50
2018-02-27bsc_api.c: fix log string formatNeels Hofmeyr1-1/+1
Fix string format error introduced by recent commit: "bsc_api: drop unknown RR messages." I0a4d311f6939a4fcee59129daa18da4a2ab510ae e4b0ebb25b68d667b9281573638c49358f71007f Change-Id: Iab11ec6c44eb235d327b3776d5f1d82267ddadaa
2018-02-26bsc_api: drop unknown RR messages.Philipp Maier1-7/+3
Radio Resource (RR) handling is entirely done inside the BSC. However, the current implementation forwards unknown RR messages to the MSC. This is not compliant to the specification. - Remove the forwarding and drop any unknown RR message. Change-Id: I0a4d311f6939a4fcee59129daa18da4a2ab510ae
2018-02-21HO: fix minor issues found by coverityNeels Hofmeyr2-16/+21
handover_decision_2: - lchan->conn should never be NULL, but if it is, don't crash in LOGPHO* macros. - make certain to avoid modulo-zero. It's cosmetic since that config item is not allowed to be zero. handover_test: - check return value of gsm_generate_si(). - safer evaluation of main()'s argv. Fixes: CID#182929, CID#182928, CID#182927, CID#182926 Change-Id: I68e8ed3a1e8659edb47ac3e8a10508f17a3f5670
2018-02-20drop unused libbsc/meas_proc.cNeels Hofmeyr1-84/+0
The file meas_proc.c seems to be an earlier stage of development of the meas rep handling now in handover_decision.c, and to have been inadvertently added to the git tree in: commit 9af6ddfcec25f43c5b50a6c5a6b80e341ab9a8a7 Date: Sat Jan 1 15:25:50 2011 +0100 License change: We are now AGPLv3+ instead of GPLv2+ The file has never been part of Makefile.am. Change-Id: If30724e3c638b191d20d00b897731762fb4896d5
2018-02-20fix handover_test link errorStefan Sperling1-1/+1
Fix undefined references during link stage when building handover_test. The archive libbsc.a needs to be listed before the various .so files. Change-Id: Ie7e1d4815d72b8e0bbc6ccd68078a78de19d73b0
2018-02-19HO: vty: clearly mark 'handover foo' as legacy alias for 'handover1 foo'Neels Hofmeyr2-3/+2
The ALIAS_DEPRECATED causes the legacy commands to no longer show up in the command listing, hence making it more clear which commands are general and which are for hodec1 only: == BEFORE: == OsmoBSC(config-net)# list ... handover (0|1|default) handover algorithm (1|2|default) handover1 window rxlev averaging (<1-10>|default) ... handover2 window rxlev averaging (<1-10>|default) ... handover2 retries (<0-9>|default) handover window rxlev averaging (<1-10>|default) <-- legacy handover window rxqual averaging (<1-10>|default) handover window rxlev neighbor averaging (<1-10>|default) handover power budget interval (<1-99>|default) handover power budget hysteresis (<0-999>|default) handover maximum distance (<0-9999>|default) handover2 congestion-check (disabled|<1-999>|now) OsmoBSC(config-net)# handover ? 0 Disable in-call handover 1 Enable in-call handover default Enable/disable handover: Use default (0), remove explicit setting on this node algorithm Choose algorithm for handover decision window Measurement averaging settings <-- legacy power Neighbor cell power triggering maximum Maximum Timing-Advance value (i.e. MS distance) before triggering HO OsmoBSC(config-net)# handover? handover Handover general config <-- unchanged == AFTER: == OsmoBSC(config-net)# list ... handover (0|1|default) handover algorithm (1|2|default) handover1 window rxlev averaging (<1-10>|default) ... handover2 window rxlev averaging (<1-10>|default) ... handover2 retries (<0-9>|default) handover2 congestion-check (disabled|<1-999>|now) <-- no more legacy OsmoBSC(config-net)# handover ? 0 Disable in-call handover 1 Enable in-call handover default Enable/disable handover: Use default (0), remove explicit setting on this node algorithm Choose algorithm for handover decision <-- no more legacy OsmoBSC(config-net)# handover? handover Handover general config <-- unchanged The "Legacy" doc string actually never shows on the VTY console, but it will show in the reference manual. (Even with ALIAS(), a 'handover?' would only show the "Handover general config" doc string, so no loss there from using ALIAS_DEPRECATED().) Change-Id: I86be674d82242f9ca73a4d0040015c1c79f2422d
2018-02-19cosmetic: adjust copyrights on handover_cfg.c,_vty.cNeels Hofmeyr2-4/+10
They are based on work by jolly, so it can't hurt to mark his copyright. Change-Id: Id3856cf34d85d6354510a94960fe5ce810c10bc7
2018-02-19HO: vty: rename ho decision 1 vty to 'handover1' with 'handover' aliasNeels Hofmeyr6-93/+127
Handover decision 2 arguments are now configured by 'handover2 foo'. To match that scheme, rename the previously 'handover foo' args for handover decision 1 to 'handover1 foo'. For backwards compatibility, still provide aliases of the original VTY commands. Writing back the config will result in 'handover1' though. Change-Id: I7305ae7c04cc70082cd80d42b2ba32ffa399f51a
2018-02-19HO: Implement load based handover, as handover_decision_2.cNeels Hofmeyr18-2/+3725
Change-Id: Ie597eae82722baf32546331e443dd9d94f1f25e6
2018-02-19HO: cosmetic: getting a chan activ nack on a non-ho lchan is not an errorNeels Hofmeyr1-2/+2
Change-Id: I66c4f45afda614f874c9cdf0c22552f492315b71
2018-02-19HO: introduce ho decision callbacksNeels Hofmeyr4-57/+131
Instead of reacting on S_LCHAN* signals in the handover decision code, introduce callbacks for the handover decision to be invoked by handover_logic.c at the appropriate time. The rationale is explained in a comment to struct handover_decision_callbacks, quoting: " All events that are interesting for handover decision are actually communicated by S_LCHAN_* signals, so theoretically, each handover algorithm could evaluate those. However, handover_logic.c cleans up handover operation state upon receiving some of these signals. To allow a handover decision algorithm to take advantage of e.g. the struct bsc_handover before it is discarded, the handover decision event handler needs to be invoked before handover_logic.c discards the state. For example, if the handover decision wants to place a penalty timer upon a handover failure, it still needs to know which target cell the handover failed for; handover_logic.c erases that knowledge on handover failure, since it needs to clean up the lchan's handover state. The most explicit and safest way to ensure the correct order of event handling is to invoke the handover decision algorithm's actions from handover_logic.c itself, before cleaning up. This struct provides the callback functions for this purpose. For consistency, also handle signals in this way that aren't actually in danger of interference from handover_logic.c (which also saves repeated lookup of handover state for lchans). Thus, handover decision algorithms should not register any signal handler at all. " Also: - Publish struct bsc_handover to use it as argument to above callbacks. - Add enum hodec_id to struct bsc_handover, to be able to signal the appropriate hodec algorithm per event. - Add hodec_id argument to bsc_handover_start*() to be placed in the bsc_handover struct. - Publish the LOGPHO logging macros in handover.h along with struct bsc_handover, convenient for logging in callback implementations. Replace handover_decision.c's signal handler with a registered handover_decision_callbacks instance. (Upcoming handover_decision_2 will use all of the callbacks introduced here.) Change-Id: Id5b64504007fe03e0406a4b395cd0359232b77d2
2018-02-19HO: cosmetic: handover_decision.c: make process_meas_rep() return voidNeels Hofmeyr1-11/+12
The function's return value is ignored. An upcoming patch will use this as callback function and requires a void return. Change-Id: Id455a8becbb43884e8205d87b0371b216d0119fc
2018-02-19HO: clearly mark conn penalty timer member for hodec2Neels Hofmeyr2-3/+4
The conn's penalty timers will be used only for handover decision 2, make it clear by a sub-struct. hodec2 will also initialize the penalty timer list on demand only, so no need to always initialize. Change-Id: Ie6c2bc2b10dc424dfd94a9e11a9a62f51c48aa10
2018-02-19HO: lchan: store last seen measurement report nr, tweak logNeels Hofmeyr3-2/+5
Handover decision 2 will also store the last seen mr nr for neighbor cell measurements and hence can tell whether a neighbor's measurement is outdated. Change-Id: Ic1148364597f91b5a55666c80c758b61fa56f582
2018-02-19HO: cfg: separate hodec1 from hodec2 parametersNeels Hofmeyr3-124/+303
Do not share config items between the current handover decision and the upcoming handover_decision_2. Rename current handover config items to hodec2_* and duplicate the ones relevant to handover decision algorithm 1 with name prefix of hodec1_*. I considered moving hodec2 parameters to an entirely separate .c file and struct, but that causes considerable code bloat. Rather use the nice handover_cfg net/bts level mechanism as-is, and simply prefix the names. In the VTY, the hodec1 parameters are configurable by 'handover foo 23' commands, while the hodec2 parameters are by 'handover2 foo 23'. The generic VTY commands to enable/disable handover and to choose the algorithm are still 'handover (0|1)' and 'handover algorithm (1|2)'. (Note, a subsequent commit will rename the 'handover foo' for hodec1 to 'handover1 foo' and add backwards-compat aliases.) For example, the 'window rxlev averaging 5' command now exists both for handover decision 1 and handover decision 2, and its values are independent. This is valid config: network # set up handover decision algorithm 1 # (pending rename of these items to 'handover1 ...') handover window rxlev averaging 5 handover window rxlev neighbor averaging 5 # set up handover decision algorithm 2 handover2 window rxlev averaging 7 handover2 window rxlev neighbor averaging 7 handover2 penalty-time max-distance 10 # enable handover handover 1 bts 0 handover algorithm 1 bts 1 handover algorithm 2 In this example, bts 0 uses algo 1 with rxlev averaging of 5, while bts 1 uses algorithm 2 where rxlev averaging of 7 is in effect. Change-Id: I6475b2543b18d21710a6d774b214cb484f36ec8e
2018-02-19chan_compat_with_mode: signalling works over all channel typesHarald Welte1-0/+7
chan_compat_with_mode() currently only considered the requirements of voice/csd services. It failed to realize that GSM48_CMODE_SIGN can also be performed over a SDCCH, resulting in unneeded channel allocation/assignment to TCH type channels, e.g. for SMS. This makes TC_assignment_sign pass. Change-Id: I85ffcbd32ccd2617c897edb3b904f56bacd0684f Closes: OS#2762
2018-02-19bssmap_handle_assignm_req(): Don't print log statemens in malloc failure caseHarald Welte1-4/+1
Change-Id: I85528689b5298a13c60ae80fabd8d66459f730a9
2018-02-19bssmap_handle_assignm_req(): Use more conscise error/log message textsHarald Welte1-3/+3
Change-Id: Iffbdfd7591aaeedf24ff0de5f34093be78e2833a