diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2006-12-09 21:04:43 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-11 17:34:47 -0500 |
commit | bf58a381e8106fe73247c753e3da58fcb5eabd2e (patch) | |
tree | 4f0539a3d96930bddc5291b136f4fa08c1af8e77 /net/dccp/ccids/ccid3.c | |
parent | d63d8364cfe17fc9bb738f554f452595f76f21d2 (diff) |
[DCCP]: Only deliver to the CCID rx side in charge
This is an optimisation to reduce CPU load. The received feedback is now
only directed to the active CCID component, without requiring processing
also by the inactive one.
As a consequence, a similar test in ccid3.c is now redundant and is
also removed.
Justification:
Currently DCCP works as a unidirectional service, i.e. a listening server
is not at the same time a connecting client.
As far as I can see, several modifications are necessary until that
becomes possible.
At the present time, received feedback is both fed to the rx/tx CCID
modules. In unidirectional service, only one of these is active at any
one time.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net/dccp/ccids/ccid3.c')
-rw-r--r-- | net/dccp/ccids/ccid3.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c index 820bc25e14dc..936704d1b77e 100644 --- a/net/dccp/ccids/ccid3.c +++ b/net/dccp/ccids/ccid3.c | |||
@@ -540,11 +540,11 @@ static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) | |||
540 | jiffies + usecs_to_jiffies(t_nfb)); | 540 | jiffies + usecs_to_jiffies(t_nfb)); |
541 | 541 | ||
542 | /* set idle flag */ | 542 | /* set idle flag */ |
543 | hctx->ccid3hctx_idle = 1; | 543 | hctx->ccid3hctx_idle = 1; |
544 | break; | 544 | break; |
545 | case TFRC_SSTATE_NO_SENT: | 545 | case TFRC_SSTATE_NO_SENT: |
546 | if (dccp_sk(sk)->dccps_role == DCCP_ROLE_CLIENT) | 546 | /* XXX when implementing bidirectional rx/tx check this again */ |
547 | DCCP_WARN("Illegal ACK received - no packet sent\n"); | 547 | DCCP_WARN("Illegal ACK received - no packet sent\n"); |
548 | /* fall through */ | 548 | /* fall through */ |
549 | case TFRC_SSTATE_TERM: /* ignore feedback when closing */ | 549 | case TFRC_SSTATE_TERM: /* ignore feedback when closing */ |
550 | break; | 550 | break; |