Skip to content

Changes

Started by upstream project gerrit-osmo-e1d #146
Started 18 hr ago
Queued 7.7 sec
HDLC timeslots: fix Rx of maximum-sized frames

E1D protocol sets the maximum permitted size of an HDLC frame to
264 bytes of useful payload, not counting the 2 bytes of FCS.
This limit is fair enough, as it matches GSM TS 08.56, the primary
intended application.  However, osmo_isdnhdlc engine used internally
by the daemon requires an Rx buffer 2 bytes larger than the maximum
payload length, for temporary storage of FCS bytes: by the nature
of HDLC, a receiver has no way of identifying FCS bytes as such
until after they have been received and stored in the Rx buffer.

This bug was caught when bringing up OsmoBSC with Nokia Flexi
Multiradio BTS.  This BTS emits some long OML messages that get
broken into segments, with each not-last segment traveling over
HDLC as a maximum-sized frame - and these frames then get dropped
by osmo-e1d, causing further breakage downstream.

Change-Id: I479e8fe5118c8eb7d4e6b16b49047a3278bc9808
falcon at