86 lines
2.9 KiB
Plaintext
86 lines
2.9 KiB
Plaintext
[[drivers]]
|
|
== E1 drivers
|
|
|
|
`osmo-e1d` was primarily developed for the icE1usb hardware, but also
|
|
supports some other drivers by now.
|
|
|
|
|
|
=== The `usb` driver for icE1usb and e1-tracer
|
|
|
|
The `usb` driver implements the USB interface first implemented by the
|
|
`icE1usb` hardware.
|
|
|
|
For more information on the `icEusb`, please see its related user
|
|
manual, published at https://downloads.osmocom.org/docs/latest/icE1usb-usermanual.pdf
|
|
|
|
Each `icEusb` device implements one E1 interface with up to two E1
|
|
lines. Note that supporting two E1 lines is only supported on very few
|
|
select USB host controllers. In most cases, your USB host controller
|
|
will only permit using one of the two lines.
|
|
|
|
==== Configuration
|
|
|
|
`osmo-e1d` will automatically detect any supported USB devices when
|
|
starting up. It will dynamically allocate E1 interface and E1 line
|
|
numbers to those USB devices. However, the order is not guaranteed and
|
|
particularly in case you have multiple devices, it is strongly
|
|
recommended to use _static configuration_.
|
|
|
|
In this static configuration, you would have a block like
|
|
|
|
.Example configuration snippet for an icE1usb
|
|
----
|
|
interface 2 icE1usb
|
|
usb-serial dc697407e7881531
|
|
----
|
|
|
|
This way you reserve/allocate the E1 interface number 2 for the icE1usb
|
|
with serial number dc697407e7881531. The Serial number is unique and
|
|
stored in the iSerial string of the USB device descriptor. You can for
|
|
example use `lsusb -v -d 1d50: | grep iSerial` to obtain it, or check
|
|
the `dmesg` kernel log after plugging in a device.
|
|
|
|
==== Using the `usb` driver with `e1-tracer`
|
|
|
|
The same driver has been slightly extended to also support the passive,
|
|
bi-directional `e1-tracer` hardware. The configuration and use is
|
|
identical to the use with the `icE1usb`, with the notable difference
|
|
that a passive tracer can obviously only receive data from E1, but not
|
|
transmit. The two directions of a E1 circuit are represented as two
|
|
lines in `osmo-e1d`.
|
|
|
|
=== The `vpair` driver for virtual E1 circuits
|
|
|
|
Sometimes it is useful to be able to interface multiple E1-using
|
|
applications without a real E1 circuit or any hardware whatsoever.
|
|
|
|
This can be used in automatic / virtualized software testing, but also
|
|
in case a legacy application is migrate away from real physical E1
|
|
circuits.
|
|
|
|
==== Configuration
|
|
|
|
The configuration of the `vpair` driver is relatively simple. It
|
|
consists of a single `virtual-e1-pair` command.
|
|
|
|
.Example configuration snippet for a virtual E1 pair with one E1 line
|
|
----
|
|
e1d
|
|
virtual-e1-pair 1
|
|
----
|
|
|
|
The above example will create a virtual pair of E1 interfaces, each
|
|
of those interface with one E1 line.
|
|
|
|
.Log output of the example configuration for 1 virtual pair
|
|
----
|
|
intf_line.c:184 (I0) Created
|
|
intf_line.c:285 (I0:L0) Created
|
|
intf_line.c:184 (I1) Created
|
|
intf_line.c:285 (I1:L0) Created
|
|
----
|
|
|
|
You can subsequently use the Lines just like you would use physical E1
|
|
lines. Any data you transmit on one line will be received on the other
|
|
line, and vice versa.
|