| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds RB-tree based timers which scales better than the
previous list-based implementation.
It does not require any API changes. It breaks ABI because the
osmo_timer_list structure has changed though (to avoid this in
the future, we can put internal data in some private structure).
The following table summarizes the worst-case computational complexity
of this new implementation versus the previous one:
rb-tree list-based
------- ----------
calculate next timer to expire O(1) O(n)
insertion of new timer O(log n) O(n)
deletion of timer O(log n) O(1)
timer-fired scheduler O(log n) O(3n)
The most repeated cases are:
* the calculation of the next timer to expire, that happens in every
loop of our select function.
* the timer-fired scheduler execution.
This new implementation only loses in the deletion of timer scenario,
this happens because we may need to rebalance the tree after the
removal.
So I think there is some real gain if we have some situation in which
we have to handle lots of timers.
|
|
|
|
|
|
|
|
|
| |
This patch adds red black trees implementation to libosmocore.
This data structure is very useful to search for elements in
ordered sets in O(log n) instead of O(n) that lists provide.
The first client of this code will be one follow up patch that
implements rbtree-based timer scheduler.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of mixing together the GSM layer 1 interface and RSL interface
with the implementation of LAPD, the core function of LAPD is now
extracted from LAPDm. The core implementation is now in lapd_core.c
and lapd_core.h respectively.
The lapd_core.c implements exactly one datalink instance for one SAP.
The surrounding implementation "lapdm.c" codes/decodes the layer 2
headers and handles multiplexing and datalink instances, as well as
translates primitives from/to RSL layer.
lapd_core.c can now be used for other LAPD implementations. (ISDN/ABIS)
|
| |
|
|
|
|
| |
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
| |
|
|
|
|
|
|
|
|
| |
There have been some changes in the wireshark source code that have
never been submitted to gsmtap.h
GSMTAP_CHANNEL_PACCH has been defined in an incompatible way in mainline
wirshark :(
|
|
|
|
|
| |
From: iZsh <izsh@fail0verflow.com>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
| |
|
|
|
|
| |
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
|
|
|
| |
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
fixes tiny compile error:
CC socket.lo
In file included from socket.c:13:
../include/osmocom/core/logging.h:31: error: expected declaration
specifiers or ‘...’ before ‘va_list’
make[3]: *** [socket.lo] Error 1
|
|
|
|
|
| |
Sometimes we need stuff like reversing every bit in each byte (but not
the byte-order).
|
| |
|
|
|
|
|
|
|
| |
Use the u suffix to mark the constant as unsiged integer.
This fixes:
warning: this decimal constant is unsigned only in ISO C90
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This bug was introduced in 95f7eb288c4b8b69d61fa8d68957fb21f09e11e5 and
it caused a segfault on 'write terminal'
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Additionally it wasn't possible to send concatenated sms from the vty.
To send multiple sms, it is necessary to use padding bits and add a user_data_header.
Therefore the gsm_7bit_encode function was splitted to gsm_7bit_encode and gsm_septets2octets.
gsm_septets2octets: this is the old gsm_7bit_encode function + additional padding parameter
Additionally the gsm_7bit_decode function was modified to take account for the user_data_header.
With the new gsm_get_octet_len function you can get the octet length for a given septet length.
I also added several sms tests.
|
|
|
|
|
|
|
|
| |
For some interactive commands (e.g. sending a SMS in OpenBSC) we
are using the "NAME." arg definition. For the usecase of sending SMS
it is not enough to only allow about 13 spaces. Increase the limit.
Original patch is coming from Dennis Wehrle.
|
|
|
|
| |
This had broken lcr compilation...
|
|
|
|
|
| |
This could be used to submit SMS to OpenBSC and to get informed
about new SMS coming from OpenBSC.
|
|
|
|
|
| |
They are not used anywhere in our libraries, so they should be defined
by the respective applications
|
|
|
|
|
|
|
|
| |
* All loging prefixes in libraries should be DL like DLINP
* All signals / subsystems should be called S_L_* SS_L_*
* All command nodes should be called L_*_NODE
This makes sure existinc code still compiles as expected
|
|
|
|
|
| |
this ensures struct msgb is the same size as before, which will ensure
binary compatibility
|
|
|
|
|
| |
This patch reserves E1INP_NODE and IPA_NODE for libosmo-abis
VTY interfaces.
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a new attribute to msgb objects. This new
attribute will store a pointer to the routing information,
in the case of the A-bis link, this will be used to store
e1inp_sign_link instead of struct gsm_bts_trx.
This deprecates msg->trx, that can be removed once all
application are ported to use msg->dst.
|
|
|
|
|
|
| |
This adds the libosmo-abis logging subsystems to libosmocore,
it uses the new change that harald proposed based on negative
numbers for library logging subsystems.
|