android_kernel_xiaomi_sm8350/net/dccp/ccids
Gerrit Renker ce177ae2e6 dccp ccid-3: Remove redundant 'options_received' struct
The `options_received' struct is redundant, since it re-duplicates the existing
`p' and `x_recv' fields. This patch removes the sub-struct and migrates the
format conversion operations (cf. below) to ccid3_hc_tx_parse_options().

                     Why the fields are redundant
                     ----------------------------
The Loss Event Rate p and the Receive Rate x_recv are initially 0 when first 
loading CCID-3, as ccid_new() zeroes out the entire ccid3_hc_tx_sock. 

When Loss Event Rate or Receive Rate options are received, they are stored by
ccid3_hc_tx_parse_options() into the fields `ccid3or_loss_event_rate' and
`ccid3or_receive_rate' of the sub-struct `options_received' in ccid3_hc_tx_sock.

After parsing (considering only the established state - dccp_rcv_established()),
the packet is passed on to ccid_hc_tx_packet_recv(). This calls the CCID-3
specific routine ccid3_hc_tx_packet_recv(), which performs the following copy
operations between fields of ccid3_hc_tx_sock:

 * hctx->options_received.ccid3or_receive_rate is copied into hctx->x_recv,
   after scaling it for fixpoint arithmetic, by 2^64;
 * hctx->options_received.ccid3or_loss_event_rate is copied into hctx->p,
   considering the above special cases; in addition, a value of 0 here needs to
   be mapped into p=0 (when no Loss Event Rate option has been received yet).

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
2008-09-04 07:45:34 +02:00
..
lib dccp tfrc/ccid-3: Computing Loss Rate from Loss Event Rate 2008-09-04 07:45:34 +02:00
ccid2.c dccp ccid-2: Remove ccid2hc{tx,rx}_ prefixes 2008-09-04 07:45:33 +02:00
ccid2.h dccp ccid-2: Remove ccid2hc{tx,rx}_ prefixes 2008-09-04 07:45:33 +02:00
ccid3.c dccp ccid-3: Remove redundant 'options_received' struct 2008-09-04 07:45:34 +02:00
ccid3.h dccp ccid-3: Remove redundant 'options_received' struct 2008-09-04 07:45:34 +02:00
Kconfig [TFRC]: Provide central source file and debug facility 2008-01-28 14:56:39 -08:00
Makefile