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>
	
	
This commit is contained in:
		
					parent
					
						
							
								74d332c13b
							
						
					
				
			
			
				commit
				
					
						f421436a59
					
				
			
		
					 15 changed files with 2403 additions and 0 deletions
				
			
		
							
								
								
									
										50
									
								
								include/uapi/linux/hsr_netlink.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								include/uapi/linux/hsr_netlink.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,50 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2011-2013 Autronica Fire and Security AS
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software; you can redistribute it and/or modify it
 | 
			
		||||
 * under the terms of the GNU General Public License as published by the Free
 | 
			
		||||
 * Software Foundation; either version 2 of the License, or (at your option)
 | 
			
		||||
 * any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * Author(s):
 | 
			
		||||
 *	2011-2013 Arvid Brodin, arvid.brodin@xdin.com
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef __UAPI_HSR_NETLINK_H
 | 
			
		||||
#define __UAPI_HSR_NETLINK_H
 | 
			
		||||
 | 
			
		||||
/* Generic Netlink HSR family definition
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* attributes */
 | 
			
		||||
enum {
 | 
			
		||||
	HSR_A_UNSPEC,
 | 
			
		||||
	HSR_A_NODE_ADDR,
 | 
			
		||||
	HSR_A_IFINDEX,
 | 
			
		||||
	HSR_A_IF1_AGE,
 | 
			
		||||
	HSR_A_IF2_AGE,
 | 
			
		||||
	HSR_A_NODE_ADDR_B,
 | 
			
		||||
	HSR_A_IF1_SEQ,
 | 
			
		||||
	HSR_A_IF2_SEQ,
 | 
			
		||||
	HSR_A_IF1_IFINDEX,
 | 
			
		||||
	HSR_A_IF2_IFINDEX,
 | 
			
		||||
	HSR_A_ADDR_B_IFINDEX,
 | 
			
		||||
	__HSR_A_MAX,
 | 
			
		||||
};
 | 
			
		||||
#define HSR_A_MAX (__HSR_A_MAX - 1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* commands */
 | 
			
		||||
enum {
 | 
			
		||||
	HSR_C_UNSPEC,
 | 
			
		||||
	HSR_C_RING_ERROR,
 | 
			
		||||
	HSR_C_NODE_DOWN,
 | 
			
		||||
	HSR_C_GET_NODE_STATUS,
 | 
			
		||||
	HSR_C_SET_NODE_STATUS,
 | 
			
		||||
	HSR_C_GET_NODE_LIST,
 | 
			
		||||
	HSR_C_SET_NODE_LIST,
 | 
			
		||||
	__HSR_C_MAX,
 | 
			
		||||
};
 | 
			
		||||
#define HSR_C_MAX (__HSR_C_MAX - 1)
 | 
			
		||||
 | 
			
		||||
#endif /* __UAPI_HSR_NETLINK_H */
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue