Inter-process Communication#

Inter-process Communication
status: valid
tags: contribution_request, feature_request, com

Feature flag#

To activate this feature, use the following feature flag:

experimental_ipc

Overview#

This contribution describes a framework to exchange information between processes. This framework includes:

  • a communication mechanism that enables zero-copy communication

  • a mock binding for testing

The proposed IPC mechanism (called LoLa) is optimized for micro-kernel operating systems (like e.g. QNX). By utilizing shared memory, it enables low latency communication also for mixed-criticality systems (e.g. processes of different safety integrity level). The possibility for mixed-criticality systems is especially enabled by certain implementation choices and safety mechanisms that will continue to ensure freedom from interference between separate processes.

Description#

As S-CORE is targeting high-performance ECUs application will run on different processes of the OS. To fulfill the system needs, these processes need to exchange information. The IPC framework is not a one-fits-all. For example, it does not replace a standardized platform API that an application links against.

For the IPC framework also the Key- and Secondary Aspects of the general communication framework are valid as mentioned in Rationale

The basic idea of the ipc binding concept is to use two main operating system facilities:

  1. Shared Memory: Shall be used for the heavy lifting of data exchange

  2. Message Passing: Shall be used as notification mechanism

A more detailed description is provided in the architecture chapter Architecture

Specification#

For IPC also the specification of communication applies: Specification

Architecture#

The architecure of communication is diplayed here

Requirements#

The requirements for communication are listed here

Security Impact#

In addition to the security impact of commnication the IPC binding achieves the security goals: