diff options
Diffstat (limited to 'net/tipc/link.h')
| -rw-r--r-- | net/tipc/link.h | 51 | 
1 files changed, 26 insertions, 25 deletions
diff --git a/net/tipc/link.h b/net/tipc/link.h index 7aeb52092bf3..b5b4e3554d4e 100644 --- a/net/tipc/link.h +++ b/net/tipc/link.h @@ -58,8 +58,10 @@  /* Link endpoint execution states   */ -#define LINK_STARTED    0x0001 -#define LINK_STOPPED    0x0002 +#define LINK_STARTED     0x0001 +#define LINK_STOPPED     0x0002 +#define LINK_SYNCHING    0x0004 +#define LINK_FAILINGOVER 0x0008  /* Starting value for maximum packet size negotiation on unicast links   * (unless bearer MTU is less) @@ -118,13 +120,13 @@ struct tipc_stats {   * @pmsg: convenience pointer to "proto_msg" field   * @priority: current link priority   * @net_plane: current link network plane ('A' through 'H') - * @queue_limit: outbound message queue congestion thresholds (indexed by user) + * @backlog_limit: backlog queue congestion thresholds (indexed by importance)   * @exp_msg_count: # of tunnelled messages expected during link changeover   * @reset_checkpoint: seq # of last acknowledged message at time of link reset - * @max_pkt: current maximum packet size for this link - * @max_pkt_target: desired maximum packet size for this link - * @max_pkt_probes: # of probes based on current (max_pkt, max_pkt_target) - * @outqueue: outbound message queue + * @mtu: current maximum packet size for this link + * @advertised_mtu: advertised own mtu when link is being established + * @transmitq: queue for sent, non-acked messages + * @backlogq: queue for messages waiting to be sent   * @next_out_no: next sequence number to use for outbound messages   * @last_retransmitted: sequence number of most recently retransmitted message   * @stale_count: # of identical retransmit requests made by peer @@ -165,36 +167,40 @@ struct tipc_link {  	struct tipc_msg *pmsg;  	u32 priority;  	char net_plane; -	u32 queue_limit[15];	/* queue_limit[0]==window limit */ +	u16 synch_point; -	/* Changeover */ -	u32 exp_msg_count; -	u32 reset_checkpoint; +	/* Failover */ +	u16 failover_pkts; +	u16 failover_checkpt; +	struct sk_buff *failover_skb;  	/* Max packet negotiation */ -	u32 max_pkt; -	u32 max_pkt_target; -	u32 max_pkt_probes; +	u16 mtu; +	u16 advertised_mtu;  	/* Sending */ -	struct sk_buff_head outqueue; +	struct sk_buff_head transmq; +	struct sk_buff_head backlogq; +	struct { +		u16 len; +		u16 limit; +	} backlog[5];  	u32 next_out_no; +	u32 window;  	u32 last_retransmitted;  	u32 stale_count;  	/* Reception */  	u32 next_in_no; -	struct sk_buff_head deferred_queue; -	u32 unacked_window; +	u32 rcv_unacked; +	struct sk_buff_head deferdq;  	struct sk_buff_head inputq;  	struct sk_buff_head namedq;  	/* Congestion handling */ -	struct sk_buff *next_out;  	struct sk_buff_head wakeupq;  	/* Fragmentation/reassembly */ -	u32 long_msg_seq_no;  	struct sk_buff *reasm_buf;  	/* Statistics */ @@ -225,7 +231,7 @@ int tipc_link_xmit(struct net *net, struct sk_buff_head *list, u32 dest,  int __tipc_link_xmit(struct net *net, struct tipc_link *link,  		     struct sk_buff_head *list);  void tipc_link_proto_xmit(struct tipc_link *l_ptr, u32 msg_typ, int prob, -			  u32 gap, u32 tolerance, u32 priority, u32 acked_mtu); +			  u32 gap, u32 tolerance, u32 priority);  void tipc_link_push_packets(struct tipc_link *l_ptr);  u32 tipc_link_defer_pkt(struct sk_buff_head *list, struct sk_buff *buf);  void tipc_link_set_queue_limits(struct tipc_link *l_ptr, u32 window); @@ -302,9 +308,4 @@ static inline int link_reset_reset(struct tipc_link *l_ptr)  	return l_ptr->state == RESET_RESET;  } -static inline int link_congested(struct tipc_link *l_ptr) -{ -	return skb_queue_len(&l_ptr->outqueue) >= l_ptr->queue_limit[0]; -} -  #endif  |