LCS: Lynx Certifiable Protocol Stack

Lynx Certifiable Protocol Stack Features

  • LCS is the first DO-178B/C-certifiable standalone TCP/IP stack, now certifiable to DO-178B/C level A/B
  • Full awareness of LynxOS-178 RTOS partitions
  • Operates in standalone mode as a dedicated Virtual Machine (VM) or as part of an application within a LynxOS-178 RTOS partition
  • Enables use of debugging and profiling tools so developers can test applications in a deployment configuration
  • Uses the same open-standards POSIX API as LynxOS-178 for networking and transport-layer protocol transactions
  • ARINC 653 ports communications to a dedicated LCS partition or configure each partition with its own network stack
  • Use in production or development mode
  • Supports up to 8 interfaces (including loopback) per VM

rsc-127pxAs the first DO-178B/C certifiable TCP/IP protocol stack, the Lynx Certifiable Stack (LCS) offers unmatched performance and flexibility to designers of safety-critical systems.

Hardware-independent LCS is certifiable to DO-178B/C level A/B and employs the open-standards POSIX® API for networking and transport-layer protocol transactions.

For maximum safety, LCS segregates communications between and within LynxOS-178 RTOS partitions. For example, DO-178B/C level A transactions can be restricted to one partition of a system while DO-178B/C level B transactions are handled independently in another, and while uncertified communications are being controlled elsewhere.

For maximum flexibility, LCS can operate as a standalone dedicated Virtual Machine (VM) fully occupying its own partition, or it can be included as an adjunct to an application running within a LynxOS-178 partition. Multiple instances of the LCS TCP/IP stack can be used deterministically across a partitioned system without affecting each other.

Prior to the advent of LCS to help avionics developers meet DO-178B/C certification, the use of TCP/IP/UDP networking stacks between hardware platforms was often avoided due to the stacks’ complexity and the difficulty in getting them certified.

LCS is certifiable to DO-178B/C level A. With LCS, applications using TCP/IP now have a low-cost, low-risk path to standards certification. Meeting the strict requirements of standards such as DO-178B/C—and its European equivalent, ED-12B—can require enormous resources in terms of man-hours and cost.

ARINC 664-Capable

The flexibility of LCS allows avionics applications to support networked systems such as ARINC 664 Aircraft Full-Duplex Exchange (AFDX) that communicate both inside and outside an aircraft’s internal systems.


LCS Software Architecture

Protocols certifiable in applications up to to DO-178B/C level A/B are IPv4, TCP/IP, UDP, ICMP, ARP, and IGMP.

Features can be configured on a per-partition basis and used per DO-178B/C certification level required. Likewise, Ethernet controllers may be shared or private, as desired.

Applications can communicate with other hardware nodes directly using the stack or they can communicate via ARINC 653 ports to a dedicated partition that uses a single instance of the stack to communicate with other processing nodes.

The LCS stack consists of:

  • LCS networking daemon
  • LCS proxy socket driver
  • LCS networking controller drivers

The LCS proxy socket driver transmits socket system calls to the LCS networking daemon and passes the replies from the daemon to the user applications. The core functionality of the TCP/IP stack is implemented in the LCS networking daemon.

Fully Integrated with LynxOS-178 RTOS for Ease of Use

lynxos-178-50pxLCS is fully integrated with our LynxOS-178 RTOS, the only real-time operating system accepted by the FAA for use as a Reusable Software Component (RSC) in DO-178B/C certification. LCS uses the same open-standards POSIX API as LynxOS-178 for networking and transport-layer protocol transactions


The LCS TCP/IP supports the following POSIX system calls:

  • socket()
  • bind()
  • listen()
  • accept()
  • connect()
  • shutdown()
  • send()
  • sendto()
  • recv()
  • recvfrom()
  • setsockopt()
  • getsockopt()
  • getsockname()
  • getpeername
  • write()
  • read()
  • select()
  • close()
  • fcntl()
  • ioctl()

Socket Types

LCS supports the AF_INET POSIX socket address family. The socket types supported in the context of the family are:

  • SOCK_STREAM for the TCP protocol
  • SOCK_DGRAM for the UDP protocol
  • SOCK_RAW for raw sockets

Also, LCS supports the SOCK_RAW socket type of the PF_ROUTE protocol family, with the following types of routing commands:

  • RTM_GET – Report metrics and other route information
  • RTM_ADD – Add a route
  • RTM_DELETE – Delete a route

Socket options

The following socket options are supported by LCS:

  • IP_TOS

The LCS networking daemon provides the nonblocking socket mode.