Project

General

Profile

Libosmocore » History » Version 1

laforge, 02/19/2016 10:49 PM
new page on libosmocore

1 1 laforge
[[PageOutline]]
2
= libosmocore =
3
4
libosmocore is a library with various utility functions that were originally developed as part of 
5
the [wiki:OpenBSC] project, but which are of a more generic nature and thus useful to (at least)
6
other programs that we develop in the sphere of Open Source mobile communications.
7
8
There is no clear scope of it.  We simply move all shared code between [wiki:OsmocomBB] and [wiki:OpenBSC]
9
in this library to avoid code duplication.
10
11
== Obtaining it ==
12
13
When you download and build [wiki:OsmocomBB], then libosmocore is automatically part of the package,
14
no special action is required.
15
16
If you want to obtain a standalone version of libosmocore, you can use the following git URL:
17
{{{git clone git://git.osmocom.org/libosmocore.git}}}
18
19
== Licensing ==
20
21
This library is GPL licensed, as the code is taken from the similarly GPL-licensed OpenBSC codebase.
22
23
This means you '''cannot use this library from non-GPL licensed code without infringing copyright!
24
25
== Features ==
26
27
=== Select loop abstraction ===
28
29
This is implemented in select.[ch] and enables you to build complex asynchronous/non-blocking I/O
30
programs in a single thread.
31
32
=== Message buffer handling ===
33
34
Inspired by the Linux kernel {{{struct sk_buff}}}, this is our message buffer {{{struct msgb}}}
35
implementation.  It provides handling of packet buffers, putting them in queues, prepending
36
and appending data to it, etc.
37
38
=== Bitvector ===
39
40
A convenient set of routines to deal with bit-vectors in C.  This was originally written
41
for rest-octet parsing.
42
43
=== TLV handling ===
44
45
The GSM Layer3 and above are full of TV / TLV / TL16V and other data fields.  Our implementation
46
provides parser and generator functions, tightly coupled to {{{struct msgb}}}
47
48
=== Timers ===
49
50
Provides a timer core where you can register timers with a callback function. The function
51
is called when the timer expires.
52
53
=== Comp128v1 ===
54
55
A Comp128v1 implementation by Sylvain Munaut is included.
56
57
=== Talloc memory allocator ===
58
59
The talloc memory allocator from the Samba project.
Add picture from clipboard (Maximum size: 48.8 MB)