Gerrit Renker dc841e30ea dccp: Extend CCID packet dequeueing interface
This extends the packet dequeuing interface of dccp_write_xmit() to allow
 1. CCIDs to take care of timing when the next packet may be sent;
 2. delayed sending (as before, with an inter-packet gap up to 65.535 seconds).

The main purpose is to take CCID-2 out of its polling mode (when it is network-
limited, it tries every millisecond to send, without interruption).

The mode of operation for (2) is as follows:
 * new packet is enqueued via dccp_sendmsg() => dccp_write_xmit(),
 * ccid_hc_tx_send_packet() detects that it may not send (e.g. window full),
 * it signals this condition via `CCID_PACKET_WILL_DEQUEUE_LATER',
 * dccp_write_xmit() returns without further action;
 * after some time the wait-condition for CCID becomes true,
 * that CCID schedules the tasklet,
 * tasklet function calls ccid_hc_tx_send_packet() via dccp_write_xmit(),
 * since the wait-condition is now true, ccid_hc_tx_packet() returns "send now",
 * packet is sent, and possibly more (since dccp_write_xmit() loops).

Code reuse: the taskled function calls dccp_write_xmit(), the timer function
            reduces to a wrapper around the same code.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-10-28 10:27:00 -07:00
..
2010-08-24 14:57:09 -07:00
2010-08-05 13:26:20 +01:00
2010-08-12 06:38:24 +10:00
2010-03-12 15:53:10 -08:00
2010-10-15 21:18:59 +02:00
2010-06-15 09:56:01 +10:00
2010-05-27 09:12:53 -07:00
2010-09-23 14:33:39 -07:00
2010-08-12 08:43:30 -07:00
2010-06-24 21:30:09 -07:00
2010-08-06 15:36:47 -05:00
2010-08-19 17:18:00 -07:00
2010-05-19 22:41:57 -04:00
2010-05-10 16:08:01 -07:00
2010-08-04 11:00:45 +02:00
2009-12-10 23:52:01 +00:00
2010-08-12 04:14:05 +01:00
2010-10-21 14:47:59 +02:00
2009-12-15 08:53:33 -08:00
2010-09-23 14:33:39 -07:00
2009-12-23 13:33:54 +01:00
2010-08-19 17:18:03 -07:00
2010-08-18 08:35:46 -04:00
2010-09-09 20:46:30 +02:00
2010-07-12 14:41:40 +02:00
2010-05-25 08:07:01 -07:00
2010-05-21 09:34:29 -07:00
2010-10-23 22:49:32 +02:00
2010-02-09 11:13:56 +01:00
2010-03-07 22:17:09 +01:00
2010-10-12 16:53:37 +02:00
2010-08-11 09:23:22 +02:00
2010-03-02 12:23:42 +01:00
2010-06-16 18:08:13 +02:00
2010-06-03 03:21:52 -07:00
2010-09-21 18:04:47 -07:00
2010-08-29 21:57:55 -07:00
2010-02-02 07:32:29 -08:00
2010-08-19 17:16:23 -07:00
2010-09-30 21:16:05 -07:00
2010-08-20 08:55:00 -07:00
2010-08-19 17:18:01 -07:00
2010-08-19 17:18:03 -07:00
2010-08-09 20:45:05 -07:00
2010-05-11 12:01:10 -07:00
2010-03-12 15:52:40 -08:00
2010-10-12 16:53:44 +02:00
2010-10-07 14:08:55 +01:00
2010-10-12 16:39:07 +02:00
2010-06-03 03:21:52 -07:00
2010-08-10 11:49:21 -07:00
2010-08-18 10:19:52 +02:00
2010-08-12 11:27:58 +02:00
2010-10-22 15:34:12 -05:00
2010-08-19 17:18:00 -07:00
2010-05-21 09:37:29 -07:00
2010-09-09 18:57:24 -07:00
2010-06-29 10:07:09 +02:00
2010-05-14 15:09:32 -04:00
2010-08-02 06:39:44 +03:00
2010-04-03 14:56:05 -07:00
2010-10-21 21:18:54 -04:00
2009-12-26 20:40:34 -08:00
2010-06-16 18:03:15 +02:00
2010-02-19 03:35:12 -05:00
2010-08-09 16:48:45 -04:00
2010-06-03 03:21:52 -07:00
2010-08-11 00:29:47 -04:00
2010-05-11 14:40:55 +02:00
2010-02-10 23:49:08 +09:00
2010-10-12 16:53:34 +02:00
2010-10-04 21:10:52 +02:00
2010-10-04 21:10:52 +02:00
2010-07-02 21:59:08 -07:00
2010-10-25 14:18:27 -07:00
2010-08-19 17:18:00 -07:00
2010-08-19 17:18:02 -07:00
2010-07-05 16:14:52 -06:00
2010-07-05 16:14:25 -06:00
2010-10-15 12:45:44 +02:00
2010-10-24 15:07:11 -07:00
2010-08-21 23:40:14 -07:00
2010-07-19 01:58:48 +02:00
2010-07-19 01:58:48 +02:00
2010-03-12 15:53:11 -08:00
2009-12-03 11:43:23 +00:00
2010-08-04 21:53:17 -07:00
2010-08-19 17:18:03 -07:00
2010-02-10 17:47:17 -08:00
2010-09-08 18:16:55 -07:00
2010-03-12 15:52:44 -08:00
2010-08-09 16:47:27 -04:00
2010-05-27 09:12:50 -07:00
2010-05-30 09:02:47 -07:00
2010-05-11 10:09:47 +02:00
2010-03-12 15:53:10 -08:00
2010-10-05 00:29:48 -07:00
2010-07-23 17:08:41 +04:00
2010-06-03 03:21:52 -07:00
2010-09-08 15:04:10 +02:00
2010-05-25 11:41:43 -04:00
2010-03-12 15:52:44 -08:00
2010-10-20 03:02:23 -07:00
2010-10-21 15:44:13 +02:00
2010-10-21 03:09:42 -07:00
2009-12-16 22:32:29 -05:00
2010-10-07 14:08:55 +01:00
2010-08-09 16:48:44 -04:00
2010-09-24 21:27:41 -07:00
2010-01-14 22:38:09 -05:00
2010-05-15 23:28:39 -07:00
2010-08-30 13:23:33 -07:00
2010-03-25 17:18:43 -07:00
2010-03-23 17:19:38 +01:00
2010-09-09 20:41:20 +02:00
2010-10-22 10:20:04 -07:00
2010-10-22 10:16:43 -07:00
2010-05-19 22:40:47 -04:00
2010-08-11 08:59:02 -07:00
2010-05-19 22:15:46 +09:30
2010-06-03 03:21:52 -07:00
2010-04-06 20:35:58 +04:00