summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* tlv_put: guard against NULL val and 0 lenNeels Hofmeyr2017-11-201-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | For example encode_auth_info() from gsup.c calls msgb_tlv_put(msg, iei, 0, NULL) to put a tag and len with content data following later. However, this would cause a memcpy() from a NULL pointer, in tlv_put(). Allow passing NULL and len = 0 for cases like the above: If val is NULL, use memset(0) instead of memcpy(). If len is zero, do not copy nor memset anything. Hence make tlv_put() behave in a well-defined and valid way for any and all input args; no negative fallout is possible from this patch. Add proper API doc comment. Fixes a sanitizer build failure in gsup_test: ../../../../src/libosmocore/include/osmocom/gsm/tlv.h:99:2: runtime error: null pointer passed as argument 2, which is declared to never be null Helps fix sanitizer build on debian 9. Change-Id: I13dce9cd1228817890d3e81edeeb660c893c1d64
* bssgp_fc_test: sanitize: free fc struct when doneNeels Hofmeyr2017-11-201-0/+2
| | | | | | Helps fix sanitizer build on debian 9. Change-Id: I0ef95ee8185a4789f0732b9420243dda5104d181
* gprs_bssgp: bssgp_fc_in(): fix mem leak on queue overflowNeels Hofmeyr2017-11-203-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All successful and all error code paths of bssgp_fc_in() free the msgb, except the code path calling fc_enqueue() when the msg is dropped (due to queue being full, or failure to allocate). Callers could theoretically catch the -ENOSPC return value and discard the msgb. However, in other code paths, a callback's return value is returned, which is expected to free the msgb, so such callback would have to never return -ENOSPC when it freed the msgb. Much simpler semantics would be to free the msgb in every code path, no matter which kind of error occurred. Who is currently calling bssgp_fc_in and how do they handle the return value? - bssgp_fc_test.c ignores the return value (and hits a mem leak aka sanitizer build failure if the queue is full). - fc_timer_cb() ignores the return value. - bssgp_tx_dl_ud() returns the bssgp_fc_in() rc. - which is returned by a cascade of functions leading up to being returned, for example, by gprs_llgmm_reset(), which is usually called with ignored return code. At this point it is already fairly clear that bssgp_fc_in() should always free the msgb, since the callers don't seem to distinguish even between error or success, let alone between -ENOSPC or other errors. bssgp_fc_test: assert that no msgbs remain unfreed after the tests. Adjust expected results. Helps fix sanitizer build on debian 9. Change-Id: I00c62a104baeaad6a85883c380259c469aebf0df
* bssgp_fc_test: sanitizer: free msgb context when doneNeels Hofmeyr2017-11-202-0/+12
| | | | | | | | | | | | Print remaining msgbs when done, then free the entire tall_msgb_context. To be able to do that, call msgb_talloc_ctx_init() and use its return value. A subsequent patch will fix a known mem leak and add assertions for 0b in 1 blocks remaining in the tall_msgb_context. Helps fix sanitizer build on debian 9. Change-Id: I67d347ab2642b0bfc27b21b44231a7f3146ff641
* bssgp_fc_test: clarify by outputting ok / failure messagesNeels Hofmeyr2017-11-202-3/+99
| | | | | | | | | | | The test fills up the queue / sends too large PDUs on purpose. Make that obvious by outputting returned errors in the expected output. Cosmetic: - fc_in()'s return value is ignored, hence don't return anything. - add comment. Change-Id: I57d6fce2515a65f6dd037e75af5397079215cb46
* bssgp_fc_test: remove rounding to decisecondsNeels Hofmeyr2017-11-201-10/+0
| | | | | | | | Ever since this test was changed to use osmo_gettimeofday_override, the times it sees are exact every time and don't need rounding to pass the expected output. Change-Id: I4a9a5d31fc02eb55caf7ba9c141426d8115bb740
* rate_ctr: fix mem leak for mangled descNeels Hofmeyr2017-11-201-9/+9
| | | | | | | | | | | | Using the NULL context creates mem leaks that bother sanitizer builds. Allocate as talloc "child" of the rate_ctr_group, so that the mangled desc (if any) gets freed when the rate_ctr group is freed. Remove the comment concerning osmo-msc: the way to fix the unexpected talloc state in osmo-msc tests is to have no invalid rate counter names in osmo-msc. See Ib1db8e3dc6c833174f1b0b1ca051b0861f477408 (osmo-msc). Change-Id: Ief9abfeb78b7706200bcc6aaa5dcb04fbeaa9b5b
* msgb: add inline msgb_queue_free()Neels Hofmeyr2017-11-202-0/+10
| | | | | Related: Iaad35f03e3bdfabf3ba82b16e563c0a5d1f03639 (libosmo-netif) Change-Id: Ia291832ca445d4071f0ed9a01730d945ff691cf7
* ports.h: Use same VTY port number for osmo-mgw and osmo-bsc_mgcpHarald Welte2017-11-201-1/+1
| | | | | | | | It was decided that osmo-mgw as direct successor of osmo-bsc_mgcp will use the same VTY port number (similar to osmo-nitb, osmo-bsc and osmo-bsc-sccplite all using the same VTY port number) Change-Id: Iec1da9f3b4d170416279f05876d9e1ae2970c577
* gsm0808_test: sanitize: fix msgb memleakNeels Hofmeyr2017-11-181-0/+2
| | | | | | Helps fix sanitizer build on debian 9. Change-Id: I0097d63bbb4e7ee20eb4a8474f4fef32d39e625f
* gsm0408_test: sanitize: cleanup msgbNeels Hofmeyr2017-11-181-1/+0
| | | | | | | | | | | | | | | | | Remove initial msgb talloc context creation: if we create a root ctx for msgb that all msgb are allocated in, we would in a final cleanup discard all msgbs, i.e. we would not verify that all msgb are cleaned up properly. If we create the msgb context and *don't* clean it up in the end, the sanitizer build fails because the context root is not cleaned up. Easiest is to actually allocate all msgb at NULL ctx, because then any msgb that aren't cleaned up properly would still linger, while we don't leave a root ctx that we need to clean up either. Helps fix sanitizer build on debian 9. Change-Id: I1f2d1d05c75bbf4d92787f9735083f18cdc90f6f
* lapd_test: sanitize: fix msgb memleaksNeels Hofmeyr2017-11-181-0/+9
| | | | | | Helps fix sanitizer build on debian 9. Change-Id: I0add9eac7225db23bc02fc2aaee5f42258d34e25
* abis_test: sanitize: fix msgb memleakNeels Hofmeyr2017-11-181-0/+2
| | | | | | Helps fix sanitizer build on debian 9. Change-Id: I69750d9cd2b8f30bfc6d2dfd9e62576e46989fab
* memleak: osmo_config_list_parse: getline() needs free also on errorNeels Hofmeyr2017-11-181-2/+3
| | | | | | Helps fix sanitizer build on debian 9. Change-Id: Iddf0a6cc733cd81d5f6c1eb62fc079ad319db119
* conv_acc: Our code requires SSSE3, not just SSE3Harald Welte2017-11-176-29/+29
| | | | | | | | | | | | | | | The accelerated convolutional decoder uses SSSE3 instructions such as PSIGNW (via _mm_sign_epi16) which go beyond what SSE3 offers. So let's make sure we use the right compiler flag (-mssse3) and also the right runtime check. Without this patch, we would use illegal instructions e.g. on Opteron Gen3 such as Opteron 2427, which are also used as build.opensuse.org build hosts (build31 through build36) where we wouldn't pass "make check" as a result. Change-Id: I2754164384109f2821fd98ffb48f625893f2923d Fixes: OS#2386
* Print /proc/cpuinfo before executing testsuiteHarald Welte2017-11-161-0/+1
| | | | | | | | The testsuite fails on some specific build machines in the OBS build cluster. Let's try to figure out which CPU flags they have to narrow down the cause of this. Change-Id: Ib23e5bfb3c894206fad62d6cc6151583b1bb75a6
* utils: Fix false positive in compiler warningPau Espin Pedrol2017-11-161-1/+1
| | | | | | | | | | | | | | | | Fixes the warning below: warning: ‘sqn’ may be used uninitialized in this function [-Wmaybe-uninitialized] fprintf(stderr, "Requesting --sqn %"PRIu64" implies IND=%u," ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ " so no further --ind argument is allowed.\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sqn, test_aud.u.umts.ind); ~~~~~~~~~~~~~~~~~~~~~~~~~ The warning is a false positive as sqn is only used in case sqn_is_set!=0, and in that code path, sqn is set. Change-Id: Ib5903db01ea6765bd6bb688e63f70925c5012f98
* gsm: Use correct include for getrandomPau Espin Pedrol2017-11-161-1/+1
| | | | | | | | | | | "man getrandom" states sys/random.h is required. Fixes warning below: warning: implicit declaration of function ‘getrandom’; did you mean ‘srandom’? [-Wimplicit-function-declaration] rc = getrandom(out, len, GRND_NONBLOCK); ^~~~~~~~~ Change-Id: I2e73fd018e887893dc5527d6d73644d627eb963a
* Fix/Update copyright notices; Add SPDX annotationHarald Welte2017-11-13145-100/+423
| | | | | | | | Let's fix some erroneous/accidential references to wrong license, update copyright information where applicable and introduce a SPDX-License-Identifier to all files. Change-Id: I39af26c6aaaf5c926966391f6565fc5936be21af
* vty: Fix bad use of vector_slot()Pau Espin Pedrol2017-11-101-1/+1
| | | | | | | | | | | | | | | | | | Commit in e9e9e427b78271941a25a63567fc2ec2bb9e4433 attempted to fix a compilation warning but introduced a regression documented in OS#2613. The commit was reverted in 4aa0258269296f078e685e21fb08b115567e814. After closer lookup and testing, it seems vector_slot(vline, index) is expected to be NULL in this case as set by vty_complete_command: /* In case of 'help \t'. */ if (isspace((int)vty->buf[vty->length - 1])) vector_set(vline, NULL); As a result, the correct fix for the compilation warning is to test against NULL instead of testing for empty string. Change-Id: Id9e02bbf89e0a94e1766b1efd236538712415c8a
* vty: add port number for osmo-mgwPhilipp Maier2017-11-101-0/+1
| | | | Change-Id: Ied224fe94b5152fd19e259396fbc0eaf69be4b96
* vty: deprecate now empty node commandsNeels Hofmeyr2017-11-081-2/+2
| | | | | | | | | | | Following I5021c64a787b63314e0f2f1cba0b8fc7bff4f09b a deprecation of vty_install_default() and install_default() commands is indicated. However, compiler warnings may clutter build output or even fail strict builds, hence I am submitting the deprecation in a separate patch. Depends: I5021c64a787b63314e0f2f1cba0b8fc7bff4f09b Change-Id: Icf5d83f641e838cebcccc635a043e94ba352abff
* debian: build now depends on libgnutlsHarald Welte2017-11-031-0/+1
| | | | | | | | | | In Change-Id Ic77866ce65acf524b768882c751a4f9c0635740b we introduced a gnutls fall-back for random number generation, and made this a default unless explicitly disabled at compile time. This means the debian package needs related build dependency. Change-Id: I918e4b7bf1cb621679dce6339b3c4b69d653e2a6 Related: OS#1694
* gsm0503_coding.c: Use majority vote in tch_efr_unreorder()Niro Mahasinghe2017-11-031-3/+3
| | | | | | | | | | | | The EFR coding contains some repeated bits. In case there are transmission errors, some bits may of course get corrupted. It looks like there's an improvement can be made by taking a majority vote on those "repetition bits", i.e. if 2 out of 3 bits are the same, then use that instead of expecting to match all 3 bits. See 3GPP TS 45.003 Section 3.1.1.3 for reference. Change-Id: I2a28a4d7fb82aed4d39fe8efeea702effdba3858
* gsm0503_coding.c: Fix tch_efr_unreorder() of one bitNiro Mahasinghe2017-11-031-1/+1
| | | | | | | | | | | | There's an error in tch_efr_unreorder() function in gsm0503_coding.c that results in increased RBER. One of the indices used by repetition bit recombining in this function doesn't match 3GPP TS 45.003 section 3.1.1.3, specifically "w(k) = s(223) for k = 231 and 232". This bug resulted in RBER even under ideal conditions, with no fading or AWGN present. Change-Id: I153da7bbc1bb3e01ed31eb5a7417e90841cfcde3
* Enable GnuTLS fallbackMax2017-11-023-5/+36
| | | | | | | | | | | | | | | | On systems with GNU/Linux kernel older than 3.17 (Debian 8 "jessie" for example) the osmo_get_rand_id() would always return failure due to missing getrandom() syscall. To support such systems, let's add fallback code which uses GnuTLS library. It can be disabled explicitly via '--disable-gnutls' option at compile-time, otherwise ./configure will fail if both getrandom() and GnuTLS are not available. When building with '--enable-embedded' the fallback is disabled automatically. Related: OS#1694 Change-Id: Ic77866ce65acf524b768882c751a4f9c0635740b
* Bump version: 0.10.1 → 0.10.2Harald Welte2017-11-021-0/+7
| | | | Change-Id: I88c0d0327fb022b0626ab0feff3f34468b122d4b
* Revert "vty: Fix bad use of vector_slot()"Neels Hofmeyr2017-11-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | The patch seemed sensible, but introduces a segfault when hitting tab on the interactive VTY. Reproduction example: osmo-msc telnet 127.0.0.1 4254 OsmoMSC> enable <TAB> So we need to understand what that line of code actually intends to do. Until then, revert this to avoid the segfault. The segfault happens at: Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7bc0894 in cmd_complete_command_real (vline=0x5555558d59e0, vty=0x5555558d57b0, status=0x7fffffffe024) at ../../../../src/libosmocore/src/vty/command.c:1953 1953 if (*(char *)vector_slot(vline, index) == '\0') This reverts commit e9e9e427b78271941a25a63567fc2ec2bb9e4433. Change-Id: I3fe213bdfb96de9469aae64e67000dafee59302e
* utils: move linked libraries into common variableMax2017-10-301-3/+2
| | | | Change-Id: I54f4e439cc232d926b42ddba9648d4f5e7487c3e
* Move additional libraries to appropriate placeMax2017-10-307-60/+46
| | | | | | | | | | | | | According to https://www.gnu.org/software/automake/manual/automake.html#Libtool-Flags the libraries supposed to be added to *_LDADD or *_LIBADD while *_LDFLAGS should contain additional libtool linking flags. Previously we used both. Let's unify this and move all the libraries into proper automake variable. While at it - also add libosmocore.la for tests to LDADD since all the tests link against it anyway. Change-Id: Ia657a66db75df831421af5df1175a992da5ba80f
* Tag/Release Version 0.10.1Harald Welte2017-10-291-0/+6
| | | | | | | | This is for Change-Id Icf337a430fb367bbca48a1b02822a2cb3b644e5f to catch repeated calls to osmo_init_logging() whcih is what osmo-pcu will perform after some upcoming fixes there. Change-Id: Ie14a7eadf8ba01e8d31a83e330491036358ac650
* Catch repeated calls to osmo_init_logging()Harald Welte2017-10-291-0/+6
| | | | | | | | If an application calls osmo_init_logging() multiple times, let's bail out in a safe way without corrupting the state + returning an error. Change-Id: Icf337a430fb367bbca48a1b02822a2cb3b644e5f
* jenkins: use osmo-clean-workspace.sh before and after buildNeels Hofmeyr2017-10-273-5/+8
| | | | | | | See osmo-ci change I2409b2928b4d7ebbd6c005097d4ad7337307dd93 for rationale. Depends: I2409b2928b4d7ebbd6c005097d4ad7337307dd93 Change-Id: I99fdd20e7b18c2f4a59a9db35e5efccca6546b77
* Tag/Release version 0.10.0Harald Welte2017-10-2714-28/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's been way too long since the last release. Almost one year and 468 commits. A brief summary of the changes below: * Doxygen for libosmo{coding,gb} * pseudotalloc for embedded builds, jenkins for arm-none-gnueabi * --disable-doxygen, --disable-ctrl, --disable-simd * update debian packaging * gsm0503 coding routines * osmo_hton[sl] * statistics.h -> counter.h * QCDIAG in gsmtap * llist_{first,last}_entry() * llist_count() * LOGPSRC() macro * msgb_pull_to_l2() * msgb_printf() * prbs * osmo_sock_init2() * osmo_sock_mcast_{name,loop_set,ttl_set,all_set,subscribe,ip}() * OSMO_STRINGIFY() * OSMO_VALUE_STRING() * OSMO_BYTES_FOR_BITS() * osmo_talloc_asprintf() * osmo_sub_auth_type_name() * osmo_sub_auth_data support for IND/SQN_MS * osmo_fsm ctrl interface * ctrl_handle_alloc2() * ctrl_interface_setup_dynip2() * OSMO_CTRL_PORT_HLR * bssgp_tx_bvc_ptp_reset() * gprs_ns_inst connect/remote_{ip,port} * osmo_gprs_{ul,dl}_block_size_{bits,bytes}() * osmo_gprs_{dl,ul}_cs_by_block_bytes() * gprs_ns_pdu_strings[] * more BSSGP cause values * abis_nm_admin_name() * AoIP support in gsm0808 * gsm_fn_as_gsmtime_str() * osmo_dump_gsmtime() * gsup charging support * ipa_ccm_make_id_resp() * ipa_ccm_make_id_resp_from_req() * struct gsm48_gprs_susp_req * gsm_04_14.h * rsl measurement preprocessing related IEs * abis_nm_event_cause_names[] * abis_nm_sw_desc and friends * more SYSINFO_TYPE_ values * osmo_earfcn_bit_size_ext() * t16lv_put() * msgb_t16lv_put() * tlvp_val16be() * tlvp_val32be() * osmo_tlvp_copy() * osmo_tlvp_merge() * many additional VTY nodes * cmd_node.name member * bitvec_set_u64() * bitvec_rl_curbit * ctrl_lookup_register() * osmo_fsm_find_by_name() * osmo_fsm_inst_find_by_name() * osmo_fsm_inst_find_by_id() Change-Id: Ieb5db2e910a90db780ea058b3280f2facbd68d76
* Add unit tests for bcd2char and char2bcd conversionHarald Welte2017-10-272-0/+61
| | | | | | | | Sounds stupid, but we actually didn't support hex nibbles in one of the two directions of the conversion, so let's make sure we test for this. Change-Id: I8445da54cc4f9b1cd64f286c2b238f4f7c87accb
* osmo_char2bcd(): Implment hex digits a-f and A-FHarald Welte2017-10-271-1/+8
| | | | | | | | | | | | | | osmo_bcd2char() has always supported both decimal and hex. However, osmo_char2bcd() use to only implement decimal digits. With this patch, it also suppots conversion of hex characters from ASCII to BCD. This would be relevant in cases where somebdoy would want to use 'code 11', 'code 12' or 'ST' signals in any addresses (SCCP GT e.g.) Change-Id: I7bbcc6de08024567ab64765c12d7de71df787a7a
* utils: avoid segfault when calling osmo_strlcpy(src=NULL)Neels Hofmeyr2017-10-251-1/+1
| | | | Change-Id: Ieba7ba262ace2e370a4b9a550b3131fb13f07413
* rate_ctr: Fix null pointer dereference in error pathHarald Welte2017-10-241-1/+2
| | | | | | | | | | In Change-Id Ifc6ac824f5dae9a848bb4a5d067c64a69eb40b56 we introduced a variable de-reference before we check if it's NULL. Let's reorder the statements to avoid this. Fixes: Coverity CID#178219 Change-Id: I99265a7ee76f85c479543c19ce8c05ce5d43ae69
* GPRS: constify NS printing routine parametersMax2017-10-243-4/+4
| | | | Change-Id: I549ab7c26ac1489e01f281594bafe44b0681dc83
* GPRS: add vty command to show only persistent NSMax2017-10-241-8/+23
| | | | | | | | | | | The regular 'sh ns' lists all available NS. Sometimes it's handy to know which of those are persistent. * add "show ns persistent" command * adjust parameters of dump-ns*() functions to use bool where appropriate Change-Id: Ib812864bae3ea414cc107a7b4f49bea4e6161795
* stats_test: Extend check to include test for counter group name manglingHarald Welte2017-10-242-10/+51
| | | | | | | | | In Change-Id Ifc6ac824f5dae9a848bb4a5d067c64a69eb40b56 we introduce name mangling to replace any '.' in counter (group) names to be converted to ':'. Let's test for this functionality explicitly as part of the stats_test. Change-Id: Ie35682aa79526e2ffeab6995cd640b7847d855bf
* Convert lib-internal rate_ctr from '.' separator to ':' separatorHarald Welte2017-10-243-15/+15
| | | | | | | | The rate_ctr.c code would do this mangling automatically, but let's avoid using this from new versions of our code for simplicity/explicitness. Change-Id: I24a556f447cfac25efb6e83cac2d0c2972d98fe3
* rate_ctr: Enforce counter (and ctr_group) names are valid identifiersHarald Welte2017-10-244-45/+161
| | | | | | | | | | | | | | As rate counters are automatically exposed on the CTRL interface, we need to make sure they don't contain special characters such as '.' which are not permitted/supported by CTRL. In order to be able to run old versions of osmocom programs with libosmocore versions after this commit, we introduce some special name mangling: Any '.' in the names are replaced with ':' during counter group registration, if valid identifiers can be obtained this way. Change-Id: Ifc6ac824f5dae9a848bb4a5d067c64a69eb40b56
* fsm: Enforce FSM and FSM instance names are valid osmocom identifiersHarald Welte2017-10-241-1/+12
| | | | | | | | | Let's enforce that the names of FSMs and their instances are valid osmocom identifiers. This is important as the FSMs are automatically exported via those names on the CTRL inteface, and we have to make sure CTRL syntax actually permits them. Change-Id: I9ef59432f43a3cdb94e4cbb0c44ac3f9b2aac0f2
* Introduce osmo_identifier_valid() function to check validity of identifierHarald Welte2017-10-242-0/+31
| | | | | | | | | We define the notion of an 'osmocom identifier' which is basically a 7-bit US-ASCII without any special characters beyond "-_:@". We introduce a function to verify if an identifier consists only of the permitted characters. Change-Id: I96a8d345c5a69238a12d040f39b70c485a5c421c
* jenkins: bail early if $MAKE env var is not setNeels Hofmeyr2017-10-241-0/+6
| | | | | | If $MAKE is unset, it produces confusing errors, rather check explicitly. Change-Id: I59b111dfdee4e1edea04155144f01d99f5f72aa1
* fixups for recent "Cleanup jenkins build scripts"Neels Hofmeyr2017-10-243-22/+43
| | | | | | | | | | | | | | | Change I24e500e132f5c8e8133d35548cb7b4e4552331d0 was merged, but IMHO needs improvement. Fix these: - clean the git source tree before each build step, in common prep_build(). - fix indenting inside the build() macros. - change build() arg to be build_dir, to absorb cleanup steps into build(). - in jenkins.sh, use $ENABLE_SANITIZE as global env, not passed as arg. - in jenkins.sh, don't do 'make distcheck' twice. It is not necessary to do it from source tree as well as separately from source tree, since distcheck already moves to a different build dir. Change-Id: I09d306350602f21943d5bd45f7388c83ede9b524
* contrib/fsm-to-dot.py: some tweaks that help with osmo-bsc's new FSMsNeels Hofmeyr2017-10-241-13/+40
| | | | | | | | | | | | | | | | | | | | | | Combine the C source file name and the string name into the fsm's internal name token, and use it in most places instead of the plain struct name: osmo-bsc's new FSMs have identical struct names in each static c context. Output in a file name that includes all of these more detailed name tokens. Also parse '(1 << EVENT)' as event names. Note that besides this patch, there are also some tweaks to the osmo-bsc patch that improve the fsm-to-dot experience... - call fsm-to-dot for single files to avoid name conflicts, or rename each struct as a unique name. - Add comments for the event name a callback is intended for, so that not all transitions are interpreted as TEARDOWN (because it is invoked in common error handling, which causes the script to interpret it as the causing event). (or change the event-checking if into a switch that names the valid event and has a default case for all others.) Change-Id: Ib60df7fd19efc99ba9fe797f14c0e3239c4bea20
* GPRS: check and report local address used for NSEMax2017-10-241-7/+13
| | | | | | | | | | When dumping NSE via vty: * check which local address would be used to communicate with a given NSE and print it * print link layer type last to make output more consistent Change-Id: I6932a29c7899d36bcc275f05dda9670b0e69bef0 Related: SYS#3610
* GPRS: clarify ip/frgre union useMax2017-10-243-9/+22
| | | | | | | |