linux/net/hsr/hsr_framereg.h
<<
>>
Prefs
   1/* Copyright 2011-2014 Autronica Fire and Security AS
   2 *
   3 * This program is free software; you can redistribute it and/or modify it
   4 * under the terms of the GNU General Public License as published by the Free
   5 * Software Foundation; either version 2 of the License, or (at your option)
   6 * any later version.
   7 *
   8 * Author(s):
   9 *      2011-2014 Arvid Brodin, arvid.brodin@alten.se
  10 */
  11
  12#ifndef __HSR_FRAMEREG_H
  13#define __HSR_FRAMEREG_H
  14
  15#include "hsr_main.h"
  16
  17struct hsr_node;
  18
  19struct hsr_node *hsr_add_node(struct list_head *node_db, unsigned char addr[],
  20                              u16 seq_out);
  21struct hsr_node *hsr_get_node(struct list_head *node_db, struct sk_buff *skb,
  22                              bool is_sup);
  23void hsr_handle_sup_frame(struct sk_buff *skb, struct hsr_node *node_curr,
  24                          struct hsr_port *port);
  25bool hsr_addr_is_self(struct hsr_priv *hsr, unsigned char *addr);
  26
  27void hsr_addr_subst_source(struct hsr_node *node, struct sk_buff *skb);
  28void hsr_addr_subst_dest(struct hsr_node *node_src, struct sk_buff *skb,
  29                         struct hsr_port *port);
  30
  31void hsr_register_frame_in(struct hsr_node *node, struct hsr_port *port,
  32                           u16 sequence_nr);
  33int hsr_register_frame_out(struct hsr_port *port, struct hsr_node *node,
  34                           u16 sequence_nr);
  35
  36void hsr_prune_nodes(unsigned long data);
  37
  38int hsr_create_self_node(struct list_head *self_node_db,
  39                         unsigned char addr_a[ETH_ALEN],
  40                         unsigned char addr_b[ETH_ALEN]);
  41
  42void *hsr_get_next_node(struct hsr_priv *hsr, void *_pos,
  43                        unsigned char addr[ETH_ALEN]);
  44
  45int hsr_get_node_data(struct hsr_priv *hsr,
  46                      const unsigned char *addr,
  47                      unsigned char addr_b[ETH_ALEN],
  48                      unsigned int *addr_b_ifindex,
  49                      int *if1_age,
  50                      u16 *if1_seq,
  51                      int *if2_age,
  52                      u16 *if2_seq);
  53
  54#endif /* __HSR_FRAMEREG_H */
  55