tipc: Fix port counter handling to correct congestion control
authorAllan Stephens <Allan.Stephens@windriver.com>
Mon, 24 Jan 2011 20:02:14 +0000 (15:02 -0500)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Wed, 23 Feb 2011 23:05:18 +0000 (18:05 -0500)
commitcb7ce91448c01724e18c1759aa5aba86e5f1c69b
tree48f9a6acd989af2623517a7ad4a63633f9e4dc11
parent69218fc426569739d2bb68e15ac4905948409642
tipc: Fix port counter handling to correct congestion control

Modifies TIPC's congestion control between a connected port and its
peer so that it works as documented. The following changes have been
made:

1) The counter of the number of messages sent by a port now starts
   at zero, rather than one. This prevents the port from reporting port
   congestion one message earlier than it was supposed to.

2) The counter of the number of messages sent by a port is now
   incremented only if a non-empty message is sent successfully.
   This prevents the port from becoming permanently congested if
   too many send attempts are unsuccessful because of congestion
   (or other reasons). It also removes the risk that empty hand-
   shaking messages used during connection setup might cause the
   port to report congestion earlier than it was supposed to.

3) The counter of the number of unacknowledged messages received by
   a port controlled by an internal TIPC service is now incremented
   only if the message is non-empty, in order to be consistent with
   the aforementioned changes.

Signed-off-by: Allan Stephens <Allan.Stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
net/tipc/port.c
net/tipc/port.h