While working on the promised EWMA patch for CCID 3 packet sizes, I stumbled 
over two things
and can make no sense of a bit of CCID 3 Receive code:

        1) ccid3_hc_rx_sock maintains a real-timer RTT counter ccid3hcrx_rtt
           which is an alias for a TFRC structure defined in <linux/tfrc.h>
        2) ccid3_hc_rx_packet_recv (detailed below) updates this, but leaves 
the variable
           `win_count = packet->dccphrx_ccval;'  entirely untouched after 
initialisation

It may be that ... ?
        * this is because a real-time counter as opposed to the 4-digit window 
value
          counter affords better reliability (but then win_count should be 
removed)
        * this stems from the original TFRC code and might need update
        

I'd be glad for clarification about this code:


static void ccid3_hc_rx_packet_recv(struct sock *sk, struct sk_buff *skb)
{
        /* ... */
        switch (DCCP_SKB_CB(skb)->dccpd_type) {
        case DCCP_PKT_ACK:
                if (hcrx->ccid3hcrx_state == TFRC_RSTATE_NO_DATA)
                        return;
        case DCCP_PKT_DATAACK:
                /* ... */
                rtt_prev = hcrx->ccid3hcrx_rtt;
                /* ... */
                r_sample = timeval_usecs(&now);
                t_elapsed = opt_recv->dccpor_elapsed_time * 10;

                /* 
                   after updating r_sample with regard to t_elapsed ... 
                   ==> The code that now follows is identical with 
ccid3_hc_tx_packet_recv
                       --is this a leftover ?
                       --should it not rather update the sending structure 
(ccid3hctx_rtt)
                   ==> why not use win_count ??
                 */

                if (hcrx->ccid3hcrx_state == TFRC_RSTATE_NO_DATA)
                        hcrx->ccid3hcrx_rtt = r_sample;
                else
                        hcrx->ccid3hcrx_rtt = (hcrx->ccid3hcrx_rtt * 9) / 10 +
                                              r_sample / 10;
                /* ... */
                break;
        case DCCP_PKT_DATA:
                break;
        default: /* We're not interested in other packet types, move along */
                return;
        }
        /* ... */

        win_count = packet->dccphrx_ccval; /* XXX this is the only place 
`win_count' appears */

        /* ... */
}       
-
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