diff options
author | Ying Xue <ying.xue@windriver.com> | 2012-11-15 11:34:45 +0800 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2012-11-21 20:07:25 -0500 |
commit | 3c294cb374bf7ad6f5c2763f994d75935fb7814d (patch) | |
tree | f85f567d4c69ae8dbbbdce32022d6f306cf7fc35 /net/tipc/discover.c | |
parent | 7503115107e5862870eaf5133627051b2e23ac0a (diff) | |
download | op-kernel-dev-3c294cb374bf7ad6f5c2763f994d75935fb7814d.zip op-kernel-dev-3c294cb374bf7ad6f5c2763f994d75935fb7814d.tar.gz |
tipc: remove the bearer congestion mechanism
Currently at the TIPC bearer layer there is the following congestion
mechanism:
Once sending packets has failed via that bearer, the bearer will be
flagged as being in congested state at once. During bearer congestion,
all packets arriving at link will be queued on the link's outgoing
buffer. When we detect that the state of bearer congestion has
relaxed (e.g. some packets are received from the bearer) we will try
our best to push all packets in the link's outgoing buffer until the
buffer is empty, or until the bearer is congested again.
However, in fact the TIPC bearer never receives any feedback from the
device layer whether a send was successful or not, so it must always
assume it was successful. Therefore, the bearer congestion mechanism
as it exists currently is of no value.
But the bearer blocking state is still useful for us. For example,
when the physical media goes down/up, we need to change the state of
the links bound to the bearer. So the code maintaing the state
information is not removed.
Signed-off-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Diffstat (limited to 'net/tipc/discover.c')
-rw-r--r-- | net/tipc/discover.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/tipc/discover.c b/net/tipc/discover.c index 50eaa40..1074b95 100644 --- a/net/tipc/discover.c +++ b/net/tipc/discover.c @@ -243,7 +243,7 @@ void tipc_disc_recv_msg(struct sk_buff *buf, struct tipc_bearer *b_ptr) if ((type == DSC_REQ_MSG) && !link_fully_up && !b_ptr->blocked) { rbuf = tipc_disc_init_msg(DSC_RESP_MSG, orig, b_ptr); if (rbuf) { - b_ptr->media->send_msg(rbuf, b_ptr, &media_addr); + tipc_bearer_send(b_ptr, rbuf, &media_addr); kfree_skb(rbuf); } } |