2014-07-04 23:34:38 +02:00
/* Copyright 2011-2014 Autronica Fire and Security AS
2013-10-30 21:10:47 +01:00
*
* 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 ) :
2014-07-04 23:34:38 +02:00
* 2011 - 2014 Arvid Brodin , arvid . brodin @ alten . se
2013-10-30 21:10:47 +01:00
*/
2014-07-04 23:34:38 +02:00
# ifndef __HSR_FRAMEREG_H
# define __HSR_FRAMEREG_H
2013-10-30 21:10:47 +01:00
# include "hsr_main.h"
2014-07-04 23:34:38 +02:00
struct hsr_node ;
2013-10-30 21:10:47 +01:00
2014-07-04 23:34:38 +02:00
struct hsr_node * hsr_find_node ( struct list_head * node_db , struct sk_buff * skb ) ;
2013-10-30 21:10:47 +01:00
2014-07-04 23:34:38 +02:00
struct hsr_node * hsr_merge_node ( struct hsr_priv * hsr ,
struct hsr_node * node ,
struct sk_buff * skb ,
enum hsr_dev_idx dev_idx ) ;
2013-10-30 21:10:47 +01:00
2014-07-04 23:34:38 +02:00
void hsr_addr_subst_source ( struct hsr_priv * hsr , struct sk_buff * skb ) ;
void hsr_addr_subst_dest ( struct hsr_priv * hsr , struct ethhdr * ethhdr ,
2013-10-30 21:10:47 +01:00
enum hsr_dev_idx dev_idx ) ;
2014-07-04 23:34:38 +02:00
void hsr_register_frame_in ( struct hsr_node * node , enum hsr_dev_idx dev_idx ) ;
2013-10-30 21:10:47 +01:00
2014-07-04 23:34:38 +02:00
int hsr_register_frame_out ( struct hsr_node * node , enum hsr_dev_idx dev_idx ,
2013-10-30 21:10:47 +01:00
struct sk_buff * skb ) ;
2014-07-04 23:34:38 +02:00
void hsr_prune_nodes ( struct hsr_priv * hsr ) ;
2013-10-30 21:10:47 +01:00
int hsr_create_self_node ( struct list_head * self_node_db ,
unsigned char addr_a [ ETH_ALEN ] ,
unsigned char addr_b [ ETH_ALEN ] ) ;
2014-07-04 23:34:38 +02:00
void * hsr_get_next_node ( struct hsr_priv * hsr , void * _pos ,
2013-10-30 21:10:47 +01:00
unsigned char addr [ ETH_ALEN ] ) ;
2014-07-04 23:34:38 +02:00
int hsr_get_node_data ( struct hsr_priv * hsr ,
2013-10-30 21:10:47 +01:00
const unsigned char * addr ,
unsigned char addr_b [ ETH_ALEN ] ,
unsigned int * addr_b_ifindex ,
int * if1_age ,
u16 * if1_seq ,
int * if2_age ,
u16 * if2_seq ) ;
2014-07-04 23:34:38 +02:00
# endif /* __HSR_FRAMEREG_H */