aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/link.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc/link.h')
-rw-r--r--net/tipc/link.h21
1 files changed, 7 insertions, 14 deletions
diff --git a/net/tipc/link.h b/net/tipc/link.h
index 8c0b49b5b2ee..200d518b218e 100644
--- a/net/tipc/link.h
+++ b/net/tipc/link.h
@@ -40,11 +40,6 @@
40#include "msg.h" 40#include "msg.h"
41#include "node.h" 41#include "node.h"
42 42
43/* Link reassembly status codes
44 */
45#define LINK_REASM_ERROR -1
46#define LINK_REASM_COMPLETE 1
47
48/* Out-of-range value for link sequence numbers 43/* Out-of-range value for link sequence numbers
49 */ 44 */
50#define INVALID_LINK_SEQ 0x10000 45#define INVALID_LINK_SEQ 0x10000
@@ -107,7 +102,7 @@ struct tipc_stats {
107 * @checkpoint: reference point for triggering link continuity checking 102 * @checkpoint: reference point for triggering link continuity checking
108 * @peer_session: link session # being used by peer end of link 103 * @peer_session: link session # being used by peer end of link
109 * @peer_bearer_id: bearer id used by link's peer endpoint 104 * @peer_bearer_id: bearer id used by link's peer endpoint
110 * @b_ptr: pointer to bearer used by link 105 * @bearer_id: local bearer id used by link
111 * @tolerance: minimum link continuity loss needed to reset link [in ms] 106 * @tolerance: minimum link continuity loss needed to reset link [in ms]
112 * @continuity_interval: link continuity testing interval [in ms] 107 * @continuity_interval: link continuity testing interval [in ms]
113 * @abort_limit: # of unacknowledged continuity probes needed to reset link 108 * @abort_limit: # of unacknowledged continuity probes needed to reset link
@@ -116,6 +111,7 @@ struct tipc_stats {
116 * @proto_msg: template for control messages generated by link 111 * @proto_msg: template for control messages generated by link
117 * @pmsg: convenience pointer to "proto_msg" field 112 * @pmsg: convenience pointer to "proto_msg" field
118 * @priority: current link priority 113 * @priority: current link priority
114 * @net_plane: current link network plane ('A' through 'H')
119 * @queue_limit: outbound message queue congestion thresholds (indexed by user) 115 * @queue_limit: outbound message queue congestion thresholds (indexed by user)
120 * @exp_msg_count: # of tunnelled messages expected during link changeover 116 * @exp_msg_count: # of tunnelled messages expected during link changeover
121 * @reset_checkpoint: seq # of last acknowledged message at time of link reset 117 * @reset_checkpoint: seq # of last acknowledged message at time of link reset
@@ -139,8 +135,7 @@ struct tipc_stats {
139 * @next_out: ptr to first unsent outbound message in queue 135 * @next_out: ptr to first unsent outbound message in queue
140 * @waiting_ports: linked list of ports waiting for link congestion to abate 136 * @waiting_ports: linked list of ports waiting for link congestion to abate
141 * @long_msg_seq_no: next identifier to use for outbound fragmented messages 137 * @long_msg_seq_no: next identifier to use for outbound fragmented messages
142 * @reasm_head: list head of partially reassembled inbound message fragments 138 * @reasm_buf: head of partially reassembled inbound message fragments
143 * @reasm_tail: last fragment received
144 * @stats: collects statistics regarding link activity 139 * @stats: collects statistics regarding link activity
145 */ 140 */
146struct tipc_link { 141struct tipc_link {
@@ -155,7 +150,7 @@ struct tipc_link {
155 u32 checkpoint; 150 u32 checkpoint;
156 u32 peer_session; 151 u32 peer_session;
157 u32 peer_bearer_id; 152 u32 peer_bearer_id;
158 struct tipc_bearer *b_ptr; 153 u32 bearer_id;
159 u32 tolerance; 154 u32 tolerance;
160 u32 continuity_interval; 155 u32 continuity_interval;
161 u32 abort_limit; 156 u32 abort_limit;
@@ -167,6 +162,7 @@ struct tipc_link {
167 } proto_msg; 162 } proto_msg;
168 struct tipc_msg *pmsg; 163 struct tipc_msg *pmsg;
169 u32 priority; 164 u32 priority;
165 char net_plane;
170 u32 queue_limit[15]; /* queue_limit[0]==window limit */ 166 u32 queue_limit[15]; /* queue_limit[0]==window limit */
171 167
172 /* Changeover */ 168 /* Changeover */
@@ -202,8 +198,7 @@ struct tipc_link {
202 198
203 /* Fragmentation/reassembly */ 199 /* Fragmentation/reassembly */
204 u32 long_msg_seq_no; 200 u32 long_msg_seq_no;
205 struct sk_buff *reasm_head; 201 struct sk_buff *reasm_buf;
206 struct sk_buff *reasm_tail;
207 202
208 /* Statistics */ 203 /* Statistics */
209 struct tipc_stats stats; 204 struct tipc_stats stats;
@@ -228,6 +223,7 @@ struct sk_buff *tipc_link_cmd_show_stats(const void *req_tlv_area,
228 int req_tlv_space); 223 int req_tlv_space);
229struct sk_buff *tipc_link_cmd_reset_stats(const void *req_tlv_area, 224struct sk_buff *tipc_link_cmd_reset_stats(const void *req_tlv_area,
230 int req_tlv_space); 225 int req_tlv_space);
226void tipc_link_reset_all(struct tipc_node *node);
231void tipc_link_reset(struct tipc_link *l_ptr); 227void tipc_link_reset(struct tipc_link *l_ptr);
232void tipc_link_reset_list(unsigned int bearer_id); 228void tipc_link_reset_list(unsigned int bearer_id);
233int tipc_link_xmit(struct sk_buff *buf, u32 dest, u32 selector); 229int tipc_link_xmit(struct sk_buff *buf, u32 dest, u32 selector);
@@ -239,9 +235,6 @@ int tipc_link_iovec_xmit_fast(struct tipc_port *sender,
239 struct iovec const *msg_sect, 235 struct iovec const *msg_sect,
240 unsigned int len, u32 destnode); 236 unsigned int len, u32 destnode);
241void tipc_link_bundle_rcv(struct sk_buff *buf); 237void tipc_link_bundle_rcv(struct sk_buff *buf);
242int tipc_link_frag_rcv(struct sk_buff **reasm_head,
243 struct sk_buff **reasm_tail,
244 struct sk_buff **fbuf);
245void tipc_link_proto_xmit(struct tipc_link *l_ptr, u32 msg_typ, int prob, 238void tipc_link_proto_xmit(struct tipc_link *l_ptr, u32 msg_typ, int prob,
246 u32 gap, u32 tolerance, u32 priority, u32 acked_mtu); 239 u32 gap, u32 tolerance, u32 priority, u32 acked_mtu);
247void tipc_link_push_queue(struct tipc_link *l_ptr); 240void tipc_link_push_queue(struct tipc_link *l_ptr);