MRP Software Stack

Features

  • complete protocol stack implementation
  • media redundancy manager and media redundancy client capability
  • written in pure ANSI C
  • ~8000 lines of code
  • based on the international standard IEC 62439 “Industrial communication networks: high availability automation networks”, clause 5.

API

The API to the MRP software is based on the MRP service specification as described in IEC 62439 with some additional functions used by the implementation. The API allows to configure and start new MRP domains and to read the current parameters in a started domain at runtime.

Porting

The MRP software mainly consists of two layers. One layer is the protocol engine which is generic and, i.e. independent of the target operating system and hardware. It is implemented according to the MRP standard. The other layer is the OS abstraction layer with the interfaces - this is where all the environment dependent code is located at. The interfaces have to be adapted to the operation system and to the hardware so the protocol engine has access to the resources provided by the target platform.

The most important interfaces are:

Port interface

The port interface is used to send and receive MRP frames. It uses functions provided by the operating system (e.g. raw sockets) in order to communicate over the network. Furthermore the port interface provides functions to read and set port states and to read the link state of a port.

Forwarding database interface

This interface provides functions to access the forwarding database (address table) of the host.

Notification interface

The notification is used to indicate a change of the media redundancy domain state.

Logging interface

This is the interface for the output from the protocol engine. It defines the output stream for logs (e.g. stdout).

Deliverables

The delivery consists of:

  • source code in ANSI C
  • porting guide in english
  • documentation in english