aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorArvid Brodin <Arvid.Brodin@xdin.com>2013-10-30 16:10:47 -0400
committerDavid S. Miller <davem@davemloft.net>2013-11-03 23:20:14 -0500
commitf421436a591d34fa5279b54a96ac07d70250cc8d (patch)
treef5435cfb8877fd029dce3bdb617fae090711316f /include/uapi/linux
parent74d332c13b2148ae934ea94dac1745ae92efe8e5 (diff)
net/hsr: Add support for the High-availability Seamless Redundancy protocol (HSRv0)
High-availability Seamless Redundancy ("HSR") provides instant failover redundancy for Ethernet networks. It requires a special network topology where all nodes are connected in a ring (each node having two physical network interfaces). It is suited for applications that demand high availability and very short reaction time. HSR acts on the Ethernet layer, using a registered Ethernet protocol type to send special HSR frames in both directions over the ring. The driver creates virtual network interfaces that can be used just like any ordinary Linux network interface, for IP/TCP/UDP traffic etc. All nodes in the network ring must be HSR capable. This code is a "best effort" to comply with the HSR standard as described in IEC 62439-3:2010 (HSRv0). Signed-off-by: Arvid Brodin <arvid.brodin@xdin.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/hsr_netlink.h50
-rw-r--r--include/uapi/linux/if_ether.h1
-rw-r--r--include/uapi/linux/if_link.h13
3 files changed, 64 insertions, 0 deletions
diff --git a/include/uapi/linux/hsr_netlink.h b/include/uapi/linux/hsr_netlink.h
new file mode 100644
index 000000000000..2475cb8a53af
--- /dev/null
+++ b/include/uapi/linux/hsr_netlink.h
@@ -0,0 +1,50 @@
1/*
2 * Copyright 2011-2013 Autronica Fire and Security AS
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the Free
6 * Software Foundation; either version 2 of the License, or (at your option)
7 * any later version.
8 *
9 * Author(s):
10 * 2011-2013 Arvid Brodin, arvid.brodin@xdin.com
11 */
12
13#ifndef __UAPI_HSR_NETLINK_H
14#define __UAPI_HSR_NETLINK_H
15
16/* Generic Netlink HSR family definition
17 */
18
19/* attributes */
20enum {
21 HSR_A_UNSPEC,
22 HSR_A_NODE_ADDR,
23 HSR_A_IFINDEX,
24 HSR_A_IF1_AGE,
25 HSR_A_IF2_AGE,
26 HSR_A_NODE_ADDR_B,
27 HSR_A_IF1_SEQ,
28 HSR_A_IF2_SEQ,
29 HSR_A_IF1_IFINDEX,
30 HSR_A_IF2_IFINDEX,
31 HSR_A_ADDR_B_IFINDEX,
32 __HSR_A_MAX,
33};
34#define HSR_A_MAX (__HSR_A_MAX - 1)
35
36
37/* commands */
38enum {
39 HSR_C_UNSPEC,
40 HSR_C_RING_ERROR,
41 HSR_C_NODE_DOWN,
42 HSR_C_GET_NODE_STATUS,
43 HSR_C_SET_NODE_STATUS,
44 HSR_C_GET_NODE_LIST,
45 HSR_C_SET_NODE_LIST,
46 __HSR_C_MAX,
47};
48#define HSR_C_MAX (__HSR_C_MAX - 1)
49
50#endif /* __UAPI_HSR_NETLINK_H */
diff --git a/include/uapi/linux/if_ether.h b/include/uapi/linux/if_ether.h
index ade07f1c491a..2ce0f6a78fa5 100644
--- a/include/uapi/linux/if_ether.h
+++ b/include/uapi/linux/if_ether.h
@@ -85,6 +85,7 @@
85#define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */ 85#define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */
86#define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */ 86#define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */
87#define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */ 87#define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */
88#define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */
88#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ 89#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
89#define ETH_P_TDLS 0x890D /* TDLS */ 90#define ETH_P_TDLS 0x890D /* TDLS */
90#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ 91#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 8a1e346243b7..b78566f59aba 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -481,4 +481,17 @@ enum {
481 481
482#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1) 482#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1)
483 483
484
485/* HSR section */
486
487enum {
488 IFLA_HSR_UNSPEC,
489 IFLA_HSR_SLAVE1,
490 IFLA_HSR_SLAVE2,
491 IFLA_HSR_MULTICAST_SPEC,
492 __IFLA_HSR_MAX,
493};
494
495#define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1)
496
484#endif /* _UAPI_LINUX_IF_LINK_H */ 497#endif /* _UAPI_LINUX_IF_LINK_H */