0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 #ifndef _TIPC_NODE_H
0038 #define _TIPC_NODE_H
0039
0040 #include "addr.h"
0041 #include "net.h"
0042 #include "bearer.h"
0043 #include "msg.h"
0044
0045
0046
0047 enum {
0048 TIPC_SYN_BIT = (1),
0049 TIPC_BCAST_SYNCH = (1 << 1),
0050 TIPC_BCAST_STATE_NACK = (1 << 2),
0051 TIPC_BLOCK_FLOWCTL = (1 << 3),
0052 TIPC_BCAST_RCAST = (1 << 4),
0053 TIPC_NODE_ID128 = (1 << 5),
0054 TIPC_LINK_PROTO_SEQNO = (1 << 6),
0055 TIPC_MCAST_RBCTL = (1 << 7),
0056 TIPC_GAP_ACK_BLOCK = (1 << 8),
0057 TIPC_TUNNEL_ENHANCED = (1 << 9),
0058 TIPC_NAGLE = (1 << 10),
0059 TIPC_NAMED_BCAST = (1 << 11)
0060 };
0061
0062 #define TIPC_NODE_CAPABILITIES (TIPC_SYN_BIT | \
0063 TIPC_BCAST_SYNCH | \
0064 TIPC_BCAST_STATE_NACK | \
0065 TIPC_BCAST_RCAST | \
0066 TIPC_BLOCK_FLOWCTL | \
0067 TIPC_NODE_ID128 | \
0068 TIPC_LINK_PROTO_SEQNO | \
0069 TIPC_MCAST_RBCTL | \
0070 TIPC_GAP_ACK_BLOCK | \
0071 TIPC_TUNNEL_ENHANCED | \
0072 TIPC_NAGLE | \
0073 TIPC_NAMED_BCAST)
0074
0075 #define INVALID_BEARER_ID -1
0076
0077 void tipc_node_stop(struct net *net);
0078 bool tipc_node_get_id(struct net *net, u32 addr, u8 *id);
0079 u32 tipc_node_get_addr(struct tipc_node *node);
0080 char *tipc_node_get_id_str(struct tipc_node *node);
0081 void tipc_node_put(struct tipc_node *node);
0082 void tipc_node_get(struct tipc_node *node);
0083 struct tipc_node *tipc_node_create(struct net *net, u32 addr, u8 *peer_id,
0084 u16 capabilities, u32 hash_mixes,
0085 bool preliminary);
0086 #ifdef CONFIG_TIPC_CRYPTO
0087 struct tipc_crypto *tipc_node_crypto_rx(struct tipc_node *__n);
0088 struct tipc_crypto *tipc_node_crypto_rx_by_list(struct list_head *pos);
0089 struct tipc_crypto *tipc_node_crypto_rx_by_addr(struct net *net, u32 addr);
0090 #endif
0091 u32 tipc_node_try_addr(struct net *net, u8 *id, u32 addr);
0092 void tipc_node_check_dest(struct net *net, u32 onode, u8 *peer_id128,
0093 struct tipc_bearer *bearer,
0094 u16 capabilities, u32 signature, u32 hash_mixes,
0095 struct tipc_media_addr *maddr,
0096 bool *respond, bool *dupl_addr);
0097 void tipc_node_delete_links(struct net *net, int bearer_id);
0098 void tipc_node_apply_property(struct net *net, struct tipc_bearer *b, int prop);
0099 int tipc_node_get_linkname(struct net *net, u32 bearer_id, u32 node,
0100 char *linkname, size_t len);
0101 int tipc_node_xmit(struct net *net, struct sk_buff_head *list, u32 dnode,
0102 int selector);
0103 int tipc_node_distr_xmit(struct net *net, struct sk_buff_head *list);
0104 int tipc_node_xmit_skb(struct net *net, struct sk_buff *skb, u32 dest,
0105 u32 selector);
0106 void tipc_node_subscribe(struct net *net, struct list_head *subscr, u32 addr);
0107 void tipc_node_unsubscribe(struct net *net, struct list_head *subscr, u32 addr);
0108 void tipc_node_broadcast(struct net *net, struct sk_buff *skb, int rc_dests);
0109 int tipc_node_add_conn(struct net *net, u32 dnode, u32 port, u32 peer_port);
0110 void tipc_node_remove_conn(struct net *net, u32 dnode, u32 port);
0111 int tipc_node_get_mtu(struct net *net, u32 addr, u32 sel, bool connected);
0112 bool tipc_node_is_up(struct net *net, u32 addr);
0113 u16 tipc_node_get_capabilities(struct net *net, u32 addr);
0114 int tipc_nl_node_dump(struct sk_buff *skb, struct netlink_callback *cb);
0115 int tipc_nl_node_dump_link(struct sk_buff *skb, struct netlink_callback *cb);
0116 int tipc_nl_node_reset_link_stats(struct sk_buff *skb, struct genl_info *info);
0117 int tipc_nl_node_get_link(struct sk_buff *skb, struct genl_info *info);
0118 int tipc_nl_node_set_link(struct sk_buff *skb, struct genl_info *info);
0119 int tipc_nl_peer_rm(struct sk_buff *skb, struct genl_info *info);
0120
0121 int tipc_nl_node_set_monitor(struct sk_buff *skb, struct genl_info *info);
0122 int tipc_nl_node_get_monitor(struct sk_buff *skb, struct genl_info *info);
0123 int tipc_nl_node_dump_monitor(struct sk_buff *skb, struct netlink_callback *cb);
0124 int tipc_nl_node_dump_monitor_peer(struct sk_buff *skb,
0125 struct netlink_callback *cb);
0126 #ifdef CONFIG_TIPC_CRYPTO
0127 int tipc_nl_node_set_key(struct sk_buff *skb, struct genl_info *info);
0128 int tipc_nl_node_flush_key(struct sk_buff *skb, struct genl_info *info);
0129 #endif
0130 void tipc_node_pre_cleanup_net(struct net *exit_net);
0131 #endif