On 10/9/07, Gerrit Renker <[EMAIL PROTECTED]> wrote:
> This is a reworked patch, using the suggested static allocation, with the 
> following differences
>  * made the field names consistent between request_sock and dccp_sock;
>  * since the time between receiving a Timestamp and sending the Timestamp 
> Echo is not huge, it makes
>    sense to use dccp_timestamp() instead of ktime; which also halved the size 
> of the field;
>  * whitespace adapted to make assignments toe in line;
>  * added a warning when 0-valued timestamps arrive, since we use this to test 
> whether one was present.
>
> I have tested this for functioning in two different environments.
>
> ----------------------------------> Patch v2 
> <------------------------------------------------------------
> [DCCP]: Handle timestamps on Request/Response exchange separately
>
> In DCCP, timestamps can occur on packets anytime, CCID3 uses a 
> timestamp(/echo) on the Request/Response
> exchange. This patch addresses the following situation:
>         * timestamps are recorded on the listening socket;
>         * Responses are sent from dccp_request_sockets;
>         * suppose two connections reach the listening socket with very small 
> time in between:
>         * the first timestamp value gets overwritten by the second connection 
> request.
>
> This is not really good, so this patch separates timestamps into
>  * those which are received by the server during the initial handshake (on 
> dccp_request_sock);
>  * those which are received by the client or the client after connection 
> establishment.
>
> As before, a timestamp of 0 is regarded as indicating that no (meaningful) 
> timestamp has been
> received (in addition, a warning message is printed if hosts send 0-valued 
> timestamps).
>
> The timestamp-echoing now works as follows:
>  * when a timestamp is present on the initial Request, it is placed into 
> dreq, due to the
>    call to dccp_parse_options in dccp_v{4,6}_conn_request;
>  * when a timestamp is present on the Ack leading from RESPOND => OPEN, it is 
> copied over
>    from the request_sock into the child cocket in dccp_create_openreq_child;
>  * timestamps received on an (established) dccp_sock are treated as before.
>
> Since Elapsed Time is measured in hundredths of milliseconds (13.2), the new 
> dccp_timestamp()
> function is used, as it is expected that the time between receiving the 
> timestamp and
> sending the timestamp echo will be very small against the wrap-around time. 
> As a byproduct,
> this allows smaller timestamping-time fields.
>
> Furthermore, inserting the Timestamp Echo option has been taken out of the 
> block starting with
> '!dccp_packet_without_ack()', since Timestamp Echo can be carried on any 
> packet (5.8 and 13.3).
>
> Signed-off-by: Gerrit Renker <[EMAIL PROTECTED]>

Acked-by: Ian McDonald <[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to