aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp/ccids/ccid2.c
diff options
context:
space:
mode:
authorGerrit Renker <[email protected]>2008-09-04 05:30:19 +0000
committerGerrit Renker <[email protected]>2008-09-04 05:45:34 +0000
commitce177ae2e6b196659e93a9408cc1f5f13f206d13 (patch)
tree4ecd5266014cb5214c9e4955e753331f9fb23645 /net/dccp/ccids/ccid2.c
parentdccp tfrc/ccid-3: Computing Loss Rate from Loss Event Rate (diff)
downloadkernel-ce177ae2e6b196659e93a9408cc1f5f13f206d13.tar.gz
kernel-ce177ae2e6b196659e93a9408cc1f5f13f206d13.zip
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 <[email protected]>
Diffstat (limited to 'net/dccp/ccids/ccid2.c')
0 files changed, 0 insertions, 0 deletions