HSR and PRP Redundancy on RT Linux - TI.com · PDF fileHSR and PRP Redundancy on RT Linux ......

Post on 06-Mar-2018

330 views 4 download

Transcript of HSR and PRP Redundancy on RT Linux - TI.com · PDF fileHSR and PRP Redundancy on RT Linux ......

TI Confidential – NDA Restrictions

HSR and PRP Redundancy on RT Linux

Part 3: Redundancy and Linux

Which Operating System on the host for HSR/PRP? Application

Publisher/ Subsriber

Transport Layer Network Layer

B TX RX

Create Duplicate

Duplicate Discard

Duplicate Discard

A TX RX

Host

LRE

Ports

Duplicate Discard

Application Publisher/ Subsriber

Transport Layer Network Layer

B TX RX

Create Duplicate

Duplicate Discard

Duplicate Discard

A TX RX

Host

LRE

Ports

Duplicate Discard

Which Operating System on the host for HSR/PRP?

Linux is recognized with networking • Since these applications are networking based, Linux seems like a natural choice

– Allows scale across products and platforms – Reuse common networking stack, applications, tools, scripts, etc.

• Some packet deadlines may require RT Linux • TI-RTOS solutions are also available

User Space

Linux Kernel

Network Hardware

Linux architecture

User Space

Linux Kernel

Network Hardware

Focus on application in User Space IEC61850 Application

User Space

Linux Kernel

Network Hardware

Existing Linux network stack – No redundancy

Ethernet Driver

Network Stack

eth2

port0

IEC61850 Application

User Space

Linux Kernel

Network Hardware

Adding a second port for redundancy IEC61850 Application

Ethernet Driver

Network Stack

eth2

port0 port1

eth3

User Space

Linux Kernel

Network Hardware

Need LRE to handle duplicates IEC61850 Application

Ethernet Driver

Network Stack

eth2

port0 port1

eth3 LRE

User Space

Linux Kernel

Network Hardware

Should we duplicate the LRE? IEC61850 Application

Ethernet Driver

Network Stack

eth2

port0 port1

eth3 LRE IEC61850 Application LRE

User Space

Linux Kernel

Network Hardware

Move the LRE lower in the stack

Ethernet Driver

eth-slave-0 eth-slave-1

Network Stack

slave-0 slave-1

IEC61850 Application LRE IEC61850 Application LRE

User Space

Linux Kernel

Network Hardware

Adding a HSR driver to implement protocols

HSR

Ethernet Driver

eth-slave-0 eth-slave-1

Network Stack

slave-0 slave-1

IEC61850 Application IEC61850 Application

LRE

User Space

Linux Kernel

Network Hardware

Adding capability to create a HSR connection

Ethernet Driver

eth-slave-0 eth-slave-1

Network Stack

slave-0 slave-1

IEC61850 Application iproute2 ip command

netlink socket

hsr0

HSR

LRE

HSR

User Space

Linux Kernel

Network Hardware

Adding packet forward and LRE iproute2 ip command

netlink socket

Ethernet Driver

Packet Forward

eth-slave-0 eth-slave-1

Network Stack

hsr0

slave-0 slave-1

LRE Sequence Number

Redundancy Management

IEC61850 Application

HSR

User Space

Linux Kernel

Network Hardware

Creating supervisory packets iproute2 ip command

netlink socket

Ethernet Driver

Packet Forward

eth-slave-0 eth-slave-1

Network Stack

Network Supervision (announcement/check)

hsr0

slave-0 slave-1

LRE Sequence Number

Redundancy Management

IEC61850 Application

User Space

Linux Kernel

Network Hardware

Existing HSR Driver iproute2 ip command

netlink socket

Ethernet Driver

eth-slave-0 eth-slave-1

Network Stack

hsr0

slave-0 slave-1

IEC61850 Application

HSR Packet Forward

Network Supervision (announcement/check)

LRE Sequence Number

Redundancy Management

HSR Packet Forward

Network Supervision (announcement/check)

LRE Sequence Number

Redundancy Management

User Space

Linux Kernel

Network Hardware

Modifying the HSR driver

IEC-62439 MIB

iproute2 ip command

netlink socket

Ethernet Driver

eth-slave-0 eth-slave-1

Network Stack

hsr0

slave-0 slave-1

Missing

Exists Color code

Net-SNMP agent (snmpd) IEC-62439 module

HSR Packet Forward

Network Supervision (announcement/check)

LRE Sequence Number

Redundancy Management

User Space

Linux Kernel

Network Hardware

Adding PRP to the driver

IEC-62439 MIB

iproute2 ip command

netlink socket

Ethernet Driver

eth-slave-0 eth-slave-1

Network Stack

prp0

slave-0 slave-1

Missing

Exists Color code

Net-SNMP agent (snmpd) IEC-62439 module

User Space

Linux Kernel

Network Hardware

Adding PRP to the driver

IEC-62439 MIB

iproute2 ip command

netlink socket

Ethernet Driver

Packet Forward

eth-slave-0 eth-slave-1

Network Stack

Network Supervision (announcement/check)

prp0

slave-0 slave-1

LRE Sequence Number

Redundancy Management

Missing

Exists Color code

Net-SNMP agent (snmpd) IEC-62439 module

HSR Packet Forward

Network Supervision (announcement/check)

LRE Sequence Number

Redundancy Management

User Space

Linux Kernel

Network Hardware

Minimal changes for PRP

IEC-62439 MIB

iproute2 ip command

netlink socket

Ethernet Driver

eth-slave-0 eth-slave-1

Network Stack

prp0

slave-0 slave-1

Missing

Exists Color code

Net-SNMP agent (snmpd) IEC-62439 module

HSR Packet Forward

Network Supervision (announcement/check)

LRE Sequence Number

Redundancy Management

User Space

Linux Kernel

Network Hardware

Why RT Linux?

IEC-62439 MIB

iproute2 ip command

netlink socket

Ethernet Driver

eth-slave-0 eth-slave-1

Network Stack

hsr0/prp0

slave-0 slave-1

Missing

Exists Color code

Net-SNMP agent (snmpd) IEC-62439 module

• More deterministic latency to meet requirements

Section summary • Given the focus on networking, Linux is a good OS choice • Redundancy requires at least two ports • HSR implementation abstracts two ports to one HSR port implemented lower in the

stack • PRP implementation is very similar • With either implementation, upper software layers (i.e. applications) are abstracted

from details • RT Linux provides more deterministic latencies to meet requirements

For more information • HSR and PRP on RT Linux Training Series: http://training.ti.com/hsr-prp-rt-linux-training-series

• Sitara Processors Product Overview: http://www.ti.com/sitara

• AM571x Industrial Development Kit (IDK): http://www.ti.com/tool/tmdxidk5718

• AM572x Industrial Development Kit (IDK): http://www.ti.com/tool/tmdxidk5728

• Processor SDK Software Developer Guides: – Linux: http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Software_Developer’s_Guide – RTOS: http://processors.wiki.ti.com/index.php/Processor_SDK_RTOS_Software_Developer_Guide

• PRP TI Design using TI-RTOS: http://www.ti.com/tool/tidep0054

• HSR TI Design using TI-RTOS: http://www.ti.com/tool/tidep0053

• For questions regarding topics covered in this training, visit the Sitara Processors support forum at the TI E2E Community website: https://e2e.ti.com/support/arm/sitara_arm/f/791