Blame view

net/tipc/monitor.h 3.49 KB
35c55c987   Jon Paul Maloy   tipc: add neighbo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  /*
   * net/tipc/monitor.h
   *
   * Copyright (c) 2015, Ericsson AB
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in the
   *    documentation and/or other materials provided with the distribution.
   * 3. Neither the names of the copyright holders nor the names of its
   *    contributors may be used to endorse or promote products derived from
   *    this software without specific prior written permission.
   *
   * Alternatively, this software may be distributed under the terms of the
   * GNU General Public License ("GPL") version 2 as published by the Free
   * Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   */
  
  #ifndef _TIPC_MONITOR_H
  #define _TIPC_MONITOR_H
cf6f7e1d5   Parthasarathy Bhuvaragan   tipc: dump monito...
38
  #include "netlink.h"
35c55c987   Jon Paul Maloy   tipc: add neighbo...
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  /* struct tipc_mon_state: link instance's cache of monitor list and domain state
   * @list_gen: current generation of this node's monitor list
   * @gen: current generation of this node's local domain
   * @peer_gen: most recent domain generation received from peer
   * @acked_gen: most recent generation of self's domain acked by peer
   * @monitoring: this peer endpoint should continuously monitored
   * @probing: peer endpoint should be temporarily probed for potential loss
   * @synched: domain record's generation has been synched with peer after reset
   */
  struct tipc_mon_state {
  	u16 list_gen;
  	u16 peer_gen;
  	u16 acked_gen;
  	bool monitoring :1;
  	bool probing    :1;
  	bool reset      :1;
  	bool synched    :1;
  };
  
  int tipc_mon_create(struct net *net, int bearer_id);
  void tipc_mon_delete(struct net *net, int bearer_id);
  
  void tipc_mon_peer_up(struct net *net, u32 addr, int bearer_id);
  void tipc_mon_peer_down(struct net *net, u32 addr, int bearer_id);
  void tipc_mon_prep(struct net *net, void *data, int *dlen,
  		   struct tipc_mon_state *state, int bearer_id);
  void tipc_mon_rcv(struct net *net, void *data, u16 dlen, u32 addr,
  		  struct tipc_mon_state *state, int bearer_id);
  void tipc_mon_get_state(struct net *net, u32 addr,
  			struct tipc_mon_state *state,
  			int bearer_id);
  void tipc_mon_remove_peer(struct net *net, u32 addr, int bearer_id);
7b3f52296   Parthasarathy Bhuvaragan   tipc: make cluste...
71
  int tipc_nl_monitor_set_threshold(struct net *net, u32 cluster_size);
bf1035b2f   Parthasarathy Bhuvaragan   tipc: get monitor...
72
  int tipc_nl_monitor_get_threshold(struct net *net);
cf6f7e1d5   Parthasarathy Bhuvaragan   tipc: dump monito...
73
74
75
76
  int __tipc_nl_add_monitor(struct net *net, struct tipc_nl_msg *msg,
  			  u32 bearer_id);
  int tipc_nl_add_monitor_peer(struct net *net, struct tipc_nl_msg *msg,
  			     u32 bearer_id, u32 *prev_node);
bf1035b2f   Parthasarathy Bhuvaragan   tipc: get monitor...
77

35c55c987   Jon Paul Maloy   tipc: add neighbo...
78
79
  extern const int tipc_max_domain_size;
  #endif