AgeCommit message (Collapse)AuthorFilesLines
2015-10-29stats/vty: Add stats configurationJacob Erlbeck4-4/+265
This commit provides stats configuration similar to the log configuration. The following vty commands are added to the config node: stats reporter statsd Create/Modify a statsd reporter no stats reporter statsd Remove a statsd reporter To actually configure a reporter, the config-stats node is entered when the "stats reporter" command has succeeded. The following new vty commands are available there: local-ip ADDR Set the IP address to which we bind locally no local-ip Do not bind to a certain IP address remote-ip ADDR Set the remote IP address to which we connect remote-port <1-65535> Set the remote port to which we connect prefix PREFIX Set the item/counter name prefix no prefix Do not use a prefix enable Enable the reporter disable Disable the reporter Sponsored-by: On-Waves ehf
2015-10-29stats: Add the reporting frameworkJacob Erlbeck4-1/+459
This commit provides the stats reporting framework that can manage several types of measurement reporters. Initially support for rate_ctr and the statsd protocol is included. Sponsored-by: On-Waves ehf
2015-10-29stats/vty: Add stats_vty.cJacob Erlbeck4-1/+57
This file will contain the VTY code related to statistics. This commit adds a minimal file with just as single VTY command: - show stats This command shows all statistical values To enable this and future commands, the main program needs to call stats_vty_add_cmds(). Sponsored-by: On-Waves ehf
2015-10-28stat/vty: Add vty_out_statistics_full to show all statisticsJacob Erlbeck2-0/+60
This functions shows the state of all osmo_counters, stat_item groups, and counter groups. Sponsored-by: On-Waves ehf
2015-10-28stat/vty: Use the iterator algorithms to show ctrg and statgJacob Erlbeck1-20/+43
Currently the groups for stat_items and counter are iterated manually. This commit makes use of the new iterator functions to access the single elements via handlers. Sponsored-by: On-Waves ehf
2015-10-28core: Update osmo_counters_for_each docJacob Erlbeck1-2/+2
Fix type and add a note about the semantics of the handler's return code. Sponsored-by: On-Waves ehf
2015-10-28stats: Add stat_item_for_each functionsJacob Erlbeck2-0/+44
This commit adds the following functions: stat_item_for_each_group Call a handler for each group stat_item_for_each_item Call a handler for each item of a group Sponsored-by: On-Waves ehf
2015-10-28core: Extend rate_ctr by helper functionsJacob Erlbeck2-0/+60
For global value reporting, some additional helper functions are needed. The statsd protocol expects differential counter values, which are currently not provided by rate_ctr (except for s/m/h/d intervals). This commit adds several helper functions to rate_ctr: - rate_ctr_difference returns the counter delta since the last call to this function for a given counter - rate_ctr_for_each_counter iterates through each counter of a group - rate_ctr_for_each_group iterates through all globally registered counter groups Note that the rate_ctr_difference function can only be used by a single backend, since it modifies the 'previous' field in the rate_ctr obj. Sponsored-by: On-Waves ehf
2015-10-28stats: Use a global index for stat item valuesJacob Erlbeck3-47/+95
Currently each stat item has a separate index value which basically counts each single value added to the item and which can be used by a reporter to get all new values that have not been reported yet. The drawback is, that such an index must be stored for each stat item. This commit introduces a global index which is incremented for each new stat item value. This index is then stored together with the item value. So a single stored index per reporter is sufficient to make sure that only new values are reported. Sponsored-by: On-Waves ehf
2015-10-28ns: Add statistics for some eventsJacob Erlbeck3-1/+41
The following counters are added to the ns.nsvc counter group: lost.alive The number of missing ALIVE ACK messages lost.reset The number of missing RESET ACK messages The following items are added to the ns.nsvc stat item group: alive.delay The time in ms between sending ALIVE and receiving the next ALIVE ACK Sponsored-by: On-Waves ehf
2015-10-28stats: Add vty_out_stat_item_groupJacob Erlbeck3-5/+31
This functions dumps a whole stat item group to the VTY. Sponsored-by: On-Waves ehf
2015-10-28stats: Add stat_item for value monitoringJacob Erlbeck9-3/+531
This commit adds instrumentation function to gather measurement and statistical values similar to counter groups. Multiple values can be stored per item, which can be retrieved in FIFO order. Getting values from the item does not modify its state to allow for multiple independant backends (e.g. VTY and statd). When a new value is set, the oldest value gets silently overwritten. Lost values are skipped when getting values from the item. Sponsored-by: On-Waves ehf
2015-10-09commentsNeels Hofmeyr2-3/+4
2015-09-23ipaccess: add OAP proto_ext (in design).Neels Hofmeyr1-0/+1
2015-09-23utils: add 'returns' doc to osmo_hexparse().Neels Hofmeyr1-0/+1
2015-09-16build: have a disable-static build succeedJan Engelhardt3-7/+9
When using configure --disable-static, no libosmogsm.a will be created, and the tests fail to link because symbols like _a5_3 and _a5_4 are not exported through the only remaining libosmogsm.so. A method to overcome this is an intermediate private non-distributed library, examples of which are present in e.g. libabc, kmod and systemd. With this, disable-static can now be the default and practical compile time be halved.
2015-08-23Prepare new upstream release0.8.3Holger Hans Peter Freyther5-4/+9
2015-08-19build: Enable subdir-objectsSylvain Munaut1-1/+1
This fixes warning (and even build on some newer automake). This should now work in the CI as well thanks to the fix for tests. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-08-19tests: Don't reference file in src/ to test hidden func. Use static link.Sylvain Munaut1-2/+3
Taken from: https://qiaomuf.wordpress.com/2011/03/27/handling-unit-test-with-c-visibilityhidden/ Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2015-08-18Introduce gsm48_mi_type_name() functionHarald Welte3-0/+16
2015-08-18Add G-RNTI derived TLLI types defined in 23.003Harald Welte2-1/+7
2015-08-18Revert "configure.ac: Add subdir-objects"Holger Hans Peter Freyther1-1/+1
This reverts commit 7c942ba1475a366cc7c8a129fbdd335166ce21c6. With automake 1.14 and using the above option the distclean will fail with: Making distclean in tests gmake[2]: Entering directory '/home/builder/source/workspace/libosmocore/label/FreeBSD_amd64/libosmocore-' Makefile:848: ../src/gsm/.deps/a5.Po: No such file or directory Makefile:849: ../src/gsm/.deps/kasumi.Po: No such file or directory gmake[2]: *** No rule to make target '../src/gsm/.deps/kasumi.Po'. Stop. gmake[2]: Leaving directory '/home/builder/source/workspace/libosmocore/label/FreeBSD_amd64/libosmocore-' Makefile:506: recipe for target 'distclean-recursive' failed gmake[1]: *** [distclean-recursive] Error 1 gmake[1]: Leaving directory '/home/builder/source/workspace/libosmocore/label/FreeBSD_amd64/libosmocore-' Makefile:714: recipe for target 'distcheck' failed As we are not required to use the option, let's fix the build
2015-08-15configure.ac: Add subdir-objectsHarald Welte1-1/+1
Apparently this is required under latest autotools versions.
2015-08-05vty: Change API to have node installation be done by intHolger Hans Peter Freyther4-10/+11
We are mixing enums and hope that no short-enums are used. This is leading to a lot compiler warnings generated by clang. Change the API to work with integers. Porting: The go_parent_cb implementations in the applications need to be fixed. The API change leads to a compile time warning. Fixes: abis_om2000_vty.c:46:2: warning: implicit conversion from enumeration type 'enum bsc_vty_node' to different enumeration type 'enum node_type' [-Wenum-conversion] OM2K_NODE, ^~~~~~~~~
2015-08-01release: Prepare the 0.8.2 release0.8.2Holger Hans Peter Freyther5-6/+5
I have kind of used 0.8.1 by accident already so let us move to 0.8.2 now.
2015-06-19bssgp: Fix IMSI buffer size (Coverity)Jacob Erlbeck1-2/+4
Currently the size of the IMSI pointer is used instead of the size of the talloc'ed buffer. This commit changes the call to gsm48_mi_to_string to use the same value that has been used with talloc_zero_size(). The length is changed to 17 since that value is used for GSM_IMSI_LENGTH in openbsc. Fixes: Coverity CID 1040663 Sponsored-by: On-Waves ehf
2015-06-19bssgp/test: Add missing START/END printfsJacob Erlbeck2-1/+8
Sponsored-by: On-Waves ehf
2015-06-04ipa: Add libosmogsm.map entry for ipa_ccm_idtag_parse_offJacob Erlbeck1-0/+1
Addresses: CCLD utils/utils_test utils_test.o: In function `test_idtag_parsing': git/libosmocore/tests/utils/utils_test.c:64: undefined reference to `ipa_ccm_idtag_parse_off' Sponsored-by: On-Waves ehf
2015-06-02ipa: Properly parse LV stream of a ID_GET requestHolger Hans Peter Freyther4-4/+78
For some reason the structure is closer to be a LV (length and value). The value is actually a tag but it is counted inside the length. Introduce an overload of the parse function to provide an offset for the length. This will be taken from the returned length.
2015-05-26osmo-auc-gen: '-a' is already the algorithm. Fix the helpHolger Hans Peter Freyther1-1/+1
2015-05-25debian: New development release with APN changes for the SGSNHolger Hans Peter Freyther1-1/+2
2015-05-25Add APN utility function to libosmogsmHarald Welte5-1/+56
The current functions are used to 'qualify' an APN from the user-supplied APN name (name identifier) towards the fully-qualified APN name which is used in the .grps DNS zone.
2015-05-17build: Fix the building of tests as wellHolger Hans Peter Freyther1-1/+1
In file included from ../../include/osmocom/core/msgb.h:25:0, from ../../tests/sms/sms_test.c:31: ../../include/osmocom/core/bits.h:6:35: fatal error: osmocom/core/bit16gen.h: No such file or directory #include <osmocom/core/bit16gen.h>
2015-05-17build: Fix out-of-tree buildsAndreas Rottmann2-2/+2
Fixes: In file included from ../../../include/osmocom/core/msgb.h:25:0, from ../../../include/osmocom/sim/sim.h:4, from ../../../src/sim/reader_pcsc.c:30: ../../../include/osmocom/core/bits.h:6:35: fatal error: osmocom/core/bit16gen.h: No such file or directory #include <osmocom/core/bit16gen.h> In file included from ../../include/osmocom/core/msgb.h:25:0, from ../../utils/osmo-sim-test.c:26: ../../include/osmocom/core/bits.h:6:35: fatal error: osmocom/core/bit16gen.h: No such file or directory #include <osmocom/core/bit16gen.h>
2015-05-06debian: Bump version for new local packagesHolger Hans Peter Freyther1-1/+2
2015-05-06bssgp: Fix bssgp_tx_fc_bvc parameter typeJacob Erlbeck5-2/+82
Currently large values for Bmax default MS get sliced since a uint16_t is used as the type of the corresponding parameter of bssgp_tx_fc_bvc. GSM 48.018, 11.3.2 which in turn refers to 11.3.5 specifies a maximum of 6MB (0xffff * 100). This commit changes the type to uint32_t to cover the full value range. Sponsored-by: On-Waves ehf
2015-05-04bssgp/test: Fix bssgp-fc testJacob Erlbeck1-30/+0
The fix in the commit "bssgp: Fix call to llist_entry in fc_queue_timer_cfg" prevents the flow control code from generating certain logging messages ("-BSSGP-FC: fc_timer_cb() but still not able to send PDU of 10 bytes") during the tests. This breaks the test suite, since the update of the correseponding stderr output file misses. This commit updates the bssgp_fc_tests.err file accordingly. Sponsored-by: On-Waves ehf
2015-05-02linuxlist: Remove casting of ptr from container_of macroHolger Hans Peter Freyther1-1/+1
The cast is not present in the original macro and was added in OpenBSC with commit (be68f6fc6cde1367a4481d2e774a64e2cd657267) to help using the header with C++. Due the recent issue in the bssgp flow control code, let's remove the cast to see wrong pointer usage. In case C++ code doesn't compile anymore we can see how to add a cast back to it. Change was proposed by Michael McTernan
2015-04-30bssgp: Fix call to llist_entry in fc_queue_timer_cfgJacob Erlbeck1-1/+1
Currently the DL sometimes hangs and sometimes a lot of messages (still not able to send PDU) are logged. This is caused by an invalid timer delay computation, setting msecs either to 0 or to some big value. This is due to an '&' operator at the wrong place, accessing some parts in fc instead of the first element of the list. This commit fixes that issue. Sponsored-by: On-Waves ehf
2015-04-29bssgp: Fix encoding of BVC_FLOW_CONTROLJacob Erlbeck1-5/+5
Currently all 2 byte IE of the message are transmitted in the little endian byte ordering. This commit adds htons to the encoding expressions. Sponsored-by: On-Waves ehf
2015-04-29bssgp: Fix output of the VTY 'show bssgp stats' commandJacob Erlbeck1-2/+3
The output is terminated by a '\n' instead of VTY_NEWLINE. This is fixed by the commit. Sponsored-by: On-Waves ehf
2015-04-16debian: Build new versionHolger Hans Peter Freyther1-1/+7
2015-04-13osmo_static_assert: Put back the typedef in the codeHolger Hans Peter Freyther1-1/+1
In OSX the int declares linkage and for libosmo-abis we have two static asserts with the same name in two different compilation units. When adding the "unused" attribute I removed the typedef. I verified with a gcc 4.9.2 that no new warnings will be shown when compiling libosmo-abis.
2015-04-11logginrb: Fix compiler warning about fprintfHolger Hans Peter Freyther1-2/+2
loggingrb/loggingrb_test.c:76:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security] fprintf(stderr, log_target_rb_get(ringbuf_target, 0)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ loggingrb/loggingrb_test.c:77:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security] fprintf(stderr, log_target_rb_get(ringbuf_target, 1)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2015-04-11sim: Use extern for these structs to generate a linkageHolger Hans Peter Freyther2-2/+2
Fixes: duplicate symbol _ts102221_fcp_vals in: .libs/core.o .libs/card_fs_usim.o duplicate symbol _pcsc_reader_ops in: .libs/reader.o .libs/card_fs_usim.o
2015-04-11macaddr: Use the BSD code for Darwin as wellHolger Hans Peter Freyther1-1/+1
It simply compiles, no other testing has been done.
2015-04-11utils: Disable the weak symbol for darwinHolger Hans Peter Freyther1-1/+5
We should consider simply removing the alias as we have had several ABI changes since introducint the alias utils.c:223:23: error: only weak aliases are supported on darwin __attribute__((weak, alias("osmo_hexdump_nospc")));
2015-04-10gprs: Add assertion for msg != NULL to bssgp_msgb_alloc (Coverity)Jacob Erlbeck1-0/+4
Currently out-of-memory is not handled by bssgp_msgb_alloc, leading to SEGV failures if msgb_alloc_headroom returns NULL. This commit adds an OSMO_ASSERT to catch this case, which improves the situation only slightly. But bssgp_msgb_alloc is used in many places without checking the return value, so just adding a conditional early NULL return would not fix the issue either. Fixes: Coverity CID 1293377 Sponsored-by: On-Waves ehf
2015-04-10msgb: Check the return value of msgb_alloc (Coverity)Jacob Erlbeck2-0/+6
In some places, the return value of msgb_alloc/msgb_alloc_headroom is not checked before it is dereferenced. This commit adds NULL checks to return with -ENOMEM from the calling functions if the alloc function has failed. Fixes: Coverity CID 1249692, 1293376 Sponsored-by: On-Waves ehf
2015-04-07ns: Log when sending fails (Coverity)Jacob Erlbeck3-6/+24
Currently the return value of the gprs_ns_tx family of functions is often ignored. This is not a serious issue, since the successful delivery of the messages is neither guaranteed nor acknowledged by the network layer anyway. Nevertheless this commit adds logging (level INFO) to gprs_ns_tx and gprs_ns_msgb_alloc. The definition of the latter has been moved from the header file to gprs_ns.c. Fixes: Coverity CID 1040678, 1040679, 1040680, 1040681, 1040682, 1040683, 1040684, 1040686, 1040687, 1040688, 1111545, 1240203, 1240204 Sponsored-by: On-Waves ehf