Age | Commit message (Collapse) | Author | Files | Lines |
|
Some of the other bits will be used 'as-is'.
For instance the bit 0 (MSB) will be copied from this if operating
in nocrc4 mode.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: Id482c6a114e7bf051d157e81038f015e9d26fa99
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I4a35a2ab2537cbc9ecec381ab5078c1b08067925
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I8822d24c25f8ba0bb70e9f717ca04dbf0e656e71
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I8e041b3d94723eba9d3d30b9f03815d46dacf995
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I9b627a9617af4ae9ed98214d672c7d0391f801eb
|
|
Change-Id: Ic0c4c06ba7c1a405ec3c73100fe9e8476f4f5512
|
|
Change-Id: I2608af7bbb8092fddd68d4f3bb36b10a1100ce0f
|
|
Change-Id: I4ea2a11e221629a90ed227a0df33576c8607881b
|
|
The flag that stores the current alarm is not cleared periodically.
Instead it is cleared when the alarm ceases.
Change-Id: Id6cd193c71330c350c27e02b3a692d2c7e0b3fbe
|
|
Change-Id: Iaad3adb6afb9e1d8a002fa4a04ba4ab8e51671a3
|
|
The client may register a callback function to receive events.
Because there is no relation between the connected client and the
interface, all events are broadcasted to all clients that are
connected to the server.
Change-Id: I5ee3268f8349b611c3cf3fa0572dc5eab280ab2e
|
|
Change-Id: I4c20ec19fa3d9cce82c8199b38d173aa272fb07d
|
|
Whenever the RIFO buffer fill drifts away from its target, it can be
automatically reset and filled to the initial prefill_frame_count value.
The average fill is measured over several seconds. A given deviation
in percent of the prefill_frame_count is used to trigger that reset.
If the deviation is not set (0), this feature is deactivated.
There are two reasons for this to happen: The GPS clock is missing, so
the receiving interface is not in sync with the transmitting interface.
The delay changes significantly, due to congestion on the path between
both peers. (poor internet connection)
Change-Id: Id7ccbfbdb288990c01f185dec79a1022a68b4748
|
|
It seems that in some circumstances, an ISO IN transfer can be
truncated by the bus / host. In such situation we'd currently pass
a non-modulo-32 length to the mux_demux (deframer) code, and it ASSERTs
on that. Let's try to handle this more gracefully by substituting
random garbage and letting higher layers deal with massive bit errors.
Related: OS#5490
Change-Id: Ic453325b93b0e12727625a1495a948d96df4b542
|
|
Change-Id: I5088a5213d2945fdfaf3b242a63e35d0ed511914
|
|
Change-Id: I837676cb3905c0113307ebc400974c3d8cf3a3c7
|
|
Change-Id: I8d5e3ffd928fa65bc3d3b43553fcd6774a7812dc
|
|
This new mode (can be enabled per account) will force the E1OIP
protocol to always send all timeslots, i.e. not do any of the
suppression of timeslots that do not exhibit any change to the
previous E1 frame.
Change-Id: I6d17d3829b2c1c62e701a1d8c021d93d93593613
|
|
Fixes: CID#307497: Unchecked return value (CHECKED_RETURN)
Change-Id: Ie2abd580e37d7d58c507d12105ec2130fb533ed9
|
|
Fixes: CID#307511: Unchecked return value (CHECKED_RETURN)
Change-Id: Ia474a6c078f1aec3d04be494a888ffe87b199f5a
|
|
Fixes: CID#307517
Change-Id: I44e349eee5b0b54843762db8cadd6b9b1758faa4
|
|
Fixes: CID#307539, CID#307533
Change-Id: I46843174eb4699a59421dc3f3b900a3894c67081
|
|
When the socket is closed due to a connection loss, we currently use
close(). This is not enough since this will not remove the file
descriptor from the select loop. Let's use osmo_fd_close.
Related: OS#5983
Change-Id: I702b944baf2ebbcc84b6a211e245a4a41627bde6
|
|
When osmo-e1d is terminated the socket file descriptor on the client
side will get permanent POLLHUP events. This means that the registered
callback gets called with flags OSMO_FD_READ but the received data will
be of length zero. We must detect this situations and close the file
descriptor on connection loss. Otherwise we would get called over and
over again in an endless loop, resulting in 100% CPU usage.
Related: OS#5983
Change-Id: I3e1a29a9701a9432f58ef7cfedc32c916203017a
|
|
Change-Id: I178d34a67cba0359b16fe27fa30b2145703a2909
|
|
DAHDI trunkdev is a newly-introduced 'virtual trunk' character device
which is used instead of a real hardware driver. This means that an
application (such as osmo-e1d) can implement a virtual E1 trunk and
receive and transmit E1 frame data which is exposed to DAHDI users
just like the data from a real physical E1 span.
In order to build DAHDI trunkdev support into osmo-e1d, you will need
a special fork of dahdi containing the required support, currently
the laforge/trunkdev branch of the following repository:
https://gitea.osmocom.org/retronetworking/dahdi-linux
Change-Id: Ib15a7313fcd63e1ed9f2f5b349df967bc4335ec2
|
|
Change-Id: Iae76d87cf436c80c005a2f8fce5a30f74f7e4545
|
|
Related: OS#5809
Change-Id: I68fafc519d7c7ca9788bfcad7be1fadbb208cebe
|
|
If we actually expect 3rd party applications to use libosmo-e1d to talk
to osmo-e1d, we'd better add some basic documentation on how this API
shall be used.
Change-Id: Ib4a97045bca276fbd3892f801898a436de7dc39b
|
|
Don't segfault when processing a "show interfaces" for an interface
that is configured via VTY but not actually attached/found in the
system:
usb.c:693:29: runtime error: member access within null pointer of type 'struct e1_usb_intf_data'
Depends: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/30019
Depends: https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/30020
Change-Id: I2ce990bb57f6ae4edb3a99a4b7bf26a49f362410
|
|
Change-Id: Ie2d79c44e580ffa6555f87b969206047ffb7eb6f
|
|
Now that we support the e1-tracer in addition to icE1usb, let's
differentiate in the log output.
Change-Id: Iea647b12d86c97cfacbc3df43010b9b94f0a97c7
|
|
This likely means it's not an e1-tracer after all, or it's an old
firmware that doesn't yet expose the e1d-compatible USB configuration.
Related: OS#5734
Change-Id: If5a9bc20084d84885d5d97b4f982e94801612d24
|
|
This exposes the existing capability of force-opening a timeslot via a
command-line argument.
Related: OS#5735
Change-Id: Ieefc89f2e48e9124ae744a587739ff3948110944
|
|
This doesn't work, as the mux_demux.c code doesn't pass the TS0 bitstream
to users anyway. So let's reject clients attempting this.
Change-Id: Idb2d20da7de72dad38ae2fccdd7630677d0f0cc8
|
|
Recent work on the e1-tracer firmware is introducing a set of USB
descriptors (as configuration 2) that are mostly compatible to how
osmo-e1d talks to icE1usb.
The main difference is that there's only one ISO IN endpoint per USB
interface, and no ISO OUT or ISU FB endpoints. So we introduce some
minor adjustments here to accommodate that.
Related: OS#5733
Closes: OS#5734
Change-Id: I855e18c0f229bd473123f96303e60ab2de90677f
|
|
If a line is not auto-created, there is no point on claiming the
matching interface and even less point setting the alt setting that
will try to use USB isoc bandwith.
With this you can no use only line 1 and not line 0 of a ice1usb
for instance. While previously it would still "enable" line 0 and
then line 1 would fail because on BW issues most of the case.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: Iea5d72272f11875e7a32c78b60c188590deda831
|
|
This can happen if the specified device in the config isn't plugged
in for instance, no line is created ...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I594463591f2945a04ccd708f16788034cc1dfc57
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I8668fe42e4c399f08696e497887120e501341f5a
|
|
This call takes its argument in wValue rather than as payload
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: Ibeebe3184a4744bd0cd9f5a19db84c12fab18806
|
|
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: Ibf1b1440696902757f4b1c1d9c4d80c1da453a36
|
|
Because we want to handle older firmwares too, we need to excepect
we might get a smaller structure !
(We can't get a larger one since the wLength we send is limited to
the structure we know)
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I4222bf22267f8343abf1e97546111ceb1c299846
|
|
Found by gcc (Debian 10.2.1-6) 10.2.1 20210110, which fails the build
with --enable-werror because of this.
Change-Id: Ib717df376a4b414f787168c2c632f04f0c51271b
|
|
Change-Id: Ia3b429acd866ab644a9d9a848d69bd9627dcd840
|
|
This adds VTY commands at the 'account' level to configure those
settings. They will only become active on the next [re]connect
of the line.
Change-Id: Ic455ef0ef82867db512e2ffdff24d9dd42d47eeb
|
|
Change-Id: Ia0da9b038312b010bfdf88570733bf1bf004b7a8
|
|
As soon as an OCTOI connection gets into ACTIVE state, send a
ECHO_REQ every 10s and compute the RTT at the time of receiving
the response.
Contrary to the initial idea, the stat item contains the RTT (round trip
time) measured in micro-seconds. Changing this is not a problem as so
far the RTT was always reported as '0', and 0ms == 0us.
Change-Id: Id331319bff1cf6896fee37acc45846a2491ca92d
|
|
If the caller specifies zero-length data or a NULL pointer, don't
attempt to call memcpy() on that.
Change-Id: I5f5ed937643162d6ef6ce0cf2908432c007943c1
|
|
This allows to monitor the traffic utilization of each e1oip line.
Change-Id: Ifde6be0b7d3c5767b684cb8fbbc58bbd5cfb0714
|
|
The direction is wrong in two counter descriptions
Change-Id: Ia294af4b30eec1b32c4b15892751d360608c8333
|