| .. | .. |
|---|
| 45 | 45 | /* Optional capabilities supported by this code version |
|---|
| 46 | 46 | */ |
|---|
| 47 | 47 | enum { |
|---|
| 48 | + TIPC_SYN_BIT = (1), |
|---|
| 48 | 49 | TIPC_BCAST_SYNCH = (1 << 1), |
|---|
| 49 | 50 | TIPC_BCAST_STATE_NACK = (1 << 2), |
|---|
| 50 | 51 | TIPC_BLOCK_FLOWCTL = (1 << 3), |
|---|
| 51 | 52 | TIPC_BCAST_RCAST = (1 << 4), |
|---|
| 52 | 53 | TIPC_NODE_ID128 = (1 << 5), |
|---|
| 53 | | - TIPC_LINK_PROTO_SEQNO = (1 << 6) |
|---|
| 54 | + TIPC_LINK_PROTO_SEQNO = (1 << 6), |
|---|
| 55 | + TIPC_MCAST_RBCTL = (1 << 7), |
|---|
| 56 | + TIPC_GAP_ACK_BLOCK = (1 << 8), |
|---|
| 57 | + TIPC_TUNNEL_ENHANCED = (1 << 9), |
|---|
| 58 | + TIPC_NAGLE = (1 << 10), |
|---|
| 59 | + TIPC_NAMED_BCAST = (1 << 11) |
|---|
| 54 | 60 | }; |
|---|
| 55 | 61 | |
|---|
| 56 | | -#define TIPC_NODE_CAPABILITIES (TIPC_BCAST_SYNCH | \ |
|---|
| 57 | | - TIPC_BCAST_STATE_NACK | \ |
|---|
| 58 | | - TIPC_BCAST_RCAST | \ |
|---|
| 59 | | - TIPC_BLOCK_FLOWCTL | \ |
|---|
| 60 | | - TIPC_NODE_ID128 | \ |
|---|
| 61 | | - TIPC_LINK_PROTO_SEQNO) |
|---|
| 62 | +#define TIPC_NODE_CAPABILITIES (TIPC_SYN_BIT | \ |
|---|
| 63 | + TIPC_BCAST_SYNCH | \ |
|---|
| 64 | + TIPC_BCAST_STATE_NACK | \ |
|---|
| 65 | + TIPC_BCAST_RCAST | \ |
|---|
| 66 | + TIPC_BLOCK_FLOWCTL | \ |
|---|
| 67 | + TIPC_NODE_ID128 | \ |
|---|
| 68 | + TIPC_LINK_PROTO_SEQNO | \ |
|---|
| 69 | + TIPC_MCAST_RBCTL | \ |
|---|
| 70 | + TIPC_GAP_ACK_BLOCK | \ |
|---|
| 71 | + TIPC_TUNNEL_ENHANCED | \ |
|---|
| 72 | + TIPC_NAGLE | \ |
|---|
| 73 | + TIPC_NAMED_BCAST) |
|---|
| 74 | + |
|---|
| 62 | 75 | #define INVALID_BEARER_ID -1 |
|---|
| 63 | 76 | |
|---|
| 64 | 77 | void tipc_node_stop(struct net *net); |
|---|
| 65 | 78 | bool tipc_node_get_id(struct net *net, u32 addr, u8 *id); |
|---|
| 79 | +u32 tipc_node_get_addr(struct tipc_node *node); |
|---|
| 80 | +char *tipc_node_get_id_str(struct tipc_node *node); |
|---|
| 81 | +void tipc_node_put(struct tipc_node *node); |
|---|
| 82 | +void tipc_node_get(struct tipc_node *node); |
|---|
| 83 | +struct tipc_node *tipc_node_create(struct net *net, u32 addr, u8 *peer_id, |
|---|
| 84 | + u16 capabilities, u32 hash_mixes, |
|---|
| 85 | + bool preliminary); |
|---|
| 86 | +#ifdef CONFIG_TIPC_CRYPTO |
|---|
| 87 | +struct tipc_crypto *tipc_node_crypto_rx(struct tipc_node *__n); |
|---|
| 88 | +struct tipc_crypto *tipc_node_crypto_rx_by_list(struct list_head *pos); |
|---|
| 89 | +struct tipc_crypto *tipc_node_crypto_rx_by_addr(struct net *net, u32 addr); |
|---|
| 90 | +#endif |
|---|
| 66 | 91 | u32 tipc_node_try_addr(struct net *net, u8 *id, u32 addr); |
|---|
| 67 | 92 | void tipc_node_check_dest(struct net *net, u32 onode, u8 *peer_id128, |
|---|
| 68 | 93 | struct tipc_bearer *bearer, |
|---|
| 69 | | - u16 capabilities, u32 signature, |
|---|
| 94 | + u16 capabilities, u32 signature, u32 hash_mixes, |
|---|
| 70 | 95 | struct tipc_media_addr *maddr, |
|---|
| 71 | 96 | bool *respond, bool *dupl_addr); |
|---|
| 72 | 97 | void tipc_node_delete_links(struct net *net, int bearer_id); |
|---|
| .. | .. |
|---|
| 80 | 105 | u32 selector); |
|---|
| 81 | 106 | void tipc_node_subscribe(struct net *net, struct list_head *subscr, u32 addr); |
|---|
| 82 | 107 | void tipc_node_unsubscribe(struct net *net, struct list_head *subscr, u32 addr); |
|---|
| 83 | | -void tipc_node_broadcast(struct net *net, struct sk_buff *skb); |
|---|
| 108 | +void tipc_node_broadcast(struct net *net, struct sk_buff *skb, int rc_dests); |
|---|
| 84 | 109 | int tipc_node_add_conn(struct net *net, u32 dnode, u32 port, u32 peer_port); |
|---|
| 85 | 110 | void tipc_node_remove_conn(struct net *net, u32 dnode, u32 port); |
|---|
| 86 | | -int tipc_node_get_mtu(struct net *net, u32 addr, u32 sel); |
|---|
| 111 | +int tipc_node_get_mtu(struct net *net, u32 addr, u32 sel, bool connected); |
|---|
| 87 | 112 | bool tipc_node_is_up(struct net *net, u32 addr); |
|---|
| 88 | 113 | u16 tipc_node_get_capabilities(struct net *net, u32 addr); |
|---|
| 89 | 114 | int tipc_nl_node_dump(struct sk_buff *skb, struct netlink_callback *cb); |
|---|
| .. | .. |
|---|
| 98 | 123 | int tipc_nl_node_dump_monitor(struct sk_buff *skb, struct netlink_callback *cb); |
|---|
| 99 | 124 | int tipc_nl_node_dump_monitor_peer(struct sk_buff *skb, |
|---|
| 100 | 125 | struct netlink_callback *cb); |
|---|
| 126 | +#ifdef CONFIG_TIPC_CRYPTO |
|---|
| 127 | +int tipc_nl_node_set_key(struct sk_buff *skb, struct genl_info *info); |
|---|
| 128 | +int tipc_nl_node_flush_key(struct sk_buff *skb, struct genl_info *info); |
|---|
| 129 | +#endif |
|---|
| 130 | +void tipc_node_pre_cleanup_net(struct net *exit_net); |
|---|
| 101 | 131 | #endif |
|---|