Project

General

Profile

Early Design Thoughts » History » Version 1

laforge, 05/12/2018 08:21 AM

1 1 laforge
h1. osmo-e1d
2
3
The envisioned osmo-e1d is a daemon that handles Osmocom E1 interfaces. Its main tasks are:
4
5
# communicate with each E1 line hardware interface via USB [[USB_Protocol]] (or UDP/IP)
6
# provide a per-timeslot interface towards the users (such as [[OsmoBSC:]] and [[OsmoMGW:]]
7
#* likely unix domain socket based, so [[libosmo-abis:]] and friends can keep their "one FD per 
8
# provide some kind of interface by which the user application can
9
#* perform line/interface based operations
10
#** enumerate the list of available interfaces/lines
11
#** obtain status information (LOS, Alarm, CRC4 errors, etc) on each line
12
#* timeslot based
13
#** claim/release individual timeslots
14
#** enable/disable Rx/Tx of individual timeslots (could be implicit in claim?)
15
#** switch individual timeslots between raw and HDLC/CRC mode
16
#** obtain timeslot status information such as CRC16 errors, frame errors, ...
17
# implement any internal handling required, such as
18
#* perform tasks not implemented by the adapter hardware/firmware (CRC4 tx / rx, multiframe alignment, LOS / ALRM / state machines)
19
#* implement HDLC on each requested timeslot
20
21
h2. User point of view
22
23
A user application would be interested in performing the following operations:
24
25
* obtain a list of lines/interfaces
26
* obtain a list of timeslots at a given line/interface, including availability status
27
* select/open a given timeslot on a given line
28
* enable/disable a given timeslot
29
* switch mode (raw/hdlc) of a given timeslot
30
* obtain line status information like local/remote CRC4 / LOS / ALARM
31
* receive data from a given TS
32
* transmit data on a given TS
Add picture from clipboard (Maximum size: 48.8 MB)