TargetLAPB™ Embedded LAPB Protocol Stack

Overview

TargetLAPB is a high-performance full-featured embedded LAPB protocol stack suited both for applications requiring strict ISO/IEC 7776 compatibility and for standards-agnostic applications requiring reliability and flow control on fast point-to-point channels.

Features

  • Compliant with the LAPB standards document: ISO/IEC 7776:1995(E) - Description of the X.25 LAPB-compatible DTE data link procedures.

  • Easy to use API for requesting and accepting connections, sending and receiving data frames, getting channel statistics, and responding to asynchronous channel events.

  • Reliability and flow control provided by the LAPB protocol. Reliability is provided using CRC checks, frame sequence numbering, and positive acknowledgments with resends after timeouts. Flow control is provided by LAPB’s sliding window protocol and RNR (receiver not ready) frames.

  • The TargetLAPB-HDLC driver interface is well documented. The HDLC driver layer performs frame transmission and reception, and supports the physical interface. TargetLAPB supports concurrent use of an unlimited number of HDLC channels. Example drivers are included.

  • Configuration parameters T1, T2, T4, N2, window size, sequence number modulus (standard or extended), and addressing (DTE or DCE) are independently programmable for each channel.

  • Optional support for ISO/IEC 13239 compliant SREJ (selective reject) frames. SREJ frames are not compliant with the LAPB standard, but provide faster recovery from lost frame errors, particularly when the window size and transfer time is large. This is a desirable option when ISO/IEC 7776 compatibility is not required.

  • Optional exclusion of FRMR (frame reject) frames. If enabled at run-time, SABM/SAMBE (set asynchronous balanced mode) frames are emitted in lieu of FRMR frames, resulting in faster re-establishment of link connectivity after frame reject errors.

  • Maintains statistics on the number of connections/reconnections, number of frames sent and received, etc. The statistics values may be read and/or printed to stdout by lapbStats().

  • LAPB events can be reported to the application using a callback function optionally supplied to lapbInit(). The following events are reported: N2 unacknowledged SABM/SABME commands, N2 unacknowledged DISC commands, N2 RNR responses, frame reject, physical disconnect, link reset, link reconnect, all I-frames acknowledged, and I-frame arrival.

  • Built-in LAPB protocol decoder. When enabled by a compile-time flag, a short summary of every frame sent or received is printed to stdout on an ongoing basis, while the protocol stack runs.

  • Extensively tested and demonstrated to be interoperable with other ISO 7776 LAPB protocol stacks.

  • A compile-time option promotes all errors to fatal errors after printing an error message to stderr. In early development, this helps catch simple programming errors that can otherwise waste time.

  • Used in critical applications worldwide.

  • Developed using TargetOS™-Lite, Blunk’s free RTOS. Easily ported to other RTOSes or used in polled mode, without a kernel.

  • Source code is 100% Standard C and has been tested using PC-lint and multiple Standard C compilers, including GCC.

  • Royalty-free license. Includes complete source code, sample applications, sample drivers, user’s manual, and one year of technical support. Electronic delivery via customer-specific web portal.