Libosmo-abis » History » Revision 10
Revision 9 (laforge, 07/02/2020 09:04 AM) → Revision 10/12 (laforge, 07/02/2020 09:17 AM)
h1. libosmo-abis {{>toc}} h2. General description This is a library containing common/shared code regarding the A-bis interface between BTS and BSC. It implements drivers for mISDN and DAHDI based E1 cards, as well as some A-bis/IP dialects. {{graphviz_link() digraph G{ //rankdir = LR; Application -> loa; loa -> mISDN; loa -> DAHDI; loa -> e1d; loa -> IPA; mISDN -> HW; DAHDI -> HW; e1d -> HW; IPA -> IP; e1d -> vpair; HW -> BTS; IP -> BTS; Application [label="Application\nosmo-nitb / osmo-bsc"]; e1d [label="osmo-e1d"]; loa [label="libosmo-abis\ne1_input"]; IP [label="Abis/IP"]; HW [label="E1 Hardware"]; vpair [label="Virtual E1 pair"]; } }} h2. Preconditions To compile libosmo-abis you will need the following tools: <pre> sudo apt-get install build-essential libtool libortp-dev dahdi-source libsctp-dev shtool autoconf automake git-core pkg-config make gcc </pre> h2. Obtaining it To obtain libosmo-abis, you can use the following git URL: <pre> git clone git://git.osmocom.org/libosmo-abis.git </pre> h2. Compiling and installing it To compile and install it as standalone: <pre> cd libosmo-abis/ autoreconf -i ./configure make sudo make install sudo ldconfig -i cd .. </pre> h2. Licensing This library is GPL licensed. This means you *cannot use this library from non-GPL licensed code without infringing copyright! h2. Browsing its source code You can do that using our cgit installation at http://cgit.osmocom.org/libosmo-abis/ h2. Input Drivers There are currently the following input drivers available: h3. misdn This input driver supports the mISDN code as it is present in mainline linux-2.6 kernels. It uses the in-kernel LAPD implementation, and is thus bound to some restrictions. Specifically, you can only have one signalling timeslot (D-channel) in every E1 line, which may cause problems with multi-BTS or multi-TRX setups (particularly in the case of Nokia A-bis) You have to configure which E1 timeslot is to be used for signalling by module parameters, e.g. <pre> modprobe hfcmulti dslot=1 </pre> will configure TS1 as signalling. h3. misdn_lapd This input driver supports the mISDN code as it is present in mainline linux-2.6 kernels. However, unlike the "misdn" driver, it runs LAPD in userspace, as part of libosmo-abis. In order to be able to use it, you will need to make sure the mISDN kernel driver does not configure any timeslot to signalling, e.g. <pre> modprobe hfcmulti dslot=-1 </pre> (notice the "-" in front of 1 to indicate "no signalling timeslot"). h3. dahdi This driver supports the DAHDI (formerly known as zaptel) out-of-tree drivers for e.g. the various Digium and Digium compatible E1/T1/J1 cards. h3. ipa This implements A-bis over IP, as implemented by ip.access nanoBTS as well as all BTSs running [[OsmoBTS:]]. h3. hsl Experimental driver for support of the [HSL_Femto] h3. e1d This driver supports [[osmo-e1d:]], the software-defined E1 inplementation of Osmocom. osmo-e1d in turn supports the Osmocom open hardware ICE40 FPGA core, as well as virtual E1 loops for testing ([[osmo-e1d:vpair]]). {{include(cellular-infrastructure:MacroCommercialSupport)}}