提交 c1734376 编写于 作者: A Arnaldo Carvalho de Melo 提交者: David S. Miller

[PACKET_HISTORY]: Add dccphtx_rtt and rename the win_count fields

As requested by Ian.
Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: NIan McDonald <iam4@cs.waikato.ac.nz>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 34b4a4a6
......@@ -1004,7 +1004,7 @@ static int ccid3_hc_tx_send_packet(struct sock *sk,
/* Can we send? if so add options and add to packet history */
if (rc == 0)
new_packet->dccphtx_win_count =
new_packet->dccphtx_ccval =
DCCP_SKB_CB(skb)->dccpd_ccval =
hctx->ccid3hctx_last_win_count;
out:
......@@ -1060,7 +1060,7 @@ static void ccid3_hc_tx_packet_sent(struct sock *sk, int more, int len)
min_t(unsigned long, quarter_rtt, 5)) % 16;
ccid3_pr_debug("%s, sk=%p, window changed from %u to %u!\n",
dccp_role(sk), sk,
packet->dccphtx_win_count,
packet->dccphtx_ccval,
hctx->ccid3hctx_last_win_count);
}
/* COMPLIANCE_END */
......@@ -1068,9 +1068,10 @@ static void ccid3_hc_tx_packet_sent(struct sock *sk, int more, int len)
ccid3_pr_debug("%s, sk=%p, packet sent (%llu,%u)\n",
dccp_role(sk), sk,
packet->dccphtx_seqno,
packet->dccphtx_win_count);
packet->dccphtx_ccval);
#endif
hctx->ccid3hctx_idle = 0;
packet->dccphtx_rtt = hctx->ccid3hctx_rtt;
packet->dccphtx_sent = 1;
} else
ccid3_pr_debug("%s, sk=%p, seqno=%llu NOT inserted!\n",
......@@ -1489,11 +1490,10 @@ static int ccid3_hc_rx_add_hist(struct sock *sk,
step = 2;
/* OK, find next data packet */
num_later = 1;
win_count = entry->dccphrx_win_count;
win_count = entry->dccphrx_ccval;
break;
case 2:
tmp = (win_count -
entry->dccphrx_win_count);
tmp = win_count - entry->dccphrx_ccval;
if (tmp < 0)
tmp += TFRC_WIN_COUNT_LIMIT;
if (tmp > TFRC_WIN_COUNT_PER_RTT + 1) {
......@@ -1553,7 +1553,7 @@ static void ccid3_hc_rx_send_feedback(struct sock *sk)
}
do_gettimeofday(&(hcrx->ccid3hcrx_tstamp_last_feedback));
hcrx->ccid3hcrx_last_counter = packet->dccphrx_win_count;
hcrx->ccid3hcrx_last_counter = packet->dccphrx_ccval;
hcrx->ccid3hcrx_seqno_last_counter = packet->dccphrx_seqno;
hcrx->ccid3hcrx_bytes_recv = 0;
......@@ -1645,11 +1645,11 @@ static u32 ccid3_hc_rx_calc_first_li(struct sock *sk)
switch (step) {
case 0:
tstamp = entry->dccphrx_tstamp;
win_count = entry->dccphrx_win_count;
win_count = entry->dccphrx_ccval;
step = 1;
break;
case 1:
interval = win_count - entry->dccphrx_win_count;
interval = win_count - entry->dccphrx_ccval;
if (interval < 0)
interval += TFRC_WIN_COUNT_LIMIT;
if (interval > 4)
......@@ -1816,7 +1816,7 @@ static void ccid3_hc_rx_detect_loss(struct sock *sk)
}
if (seq_loss != DCCP_MAX_SEQNO + 1)
win_loss = a_loss->dccphrx_win_count;
win_loss = a_loss->dccphrx_ccval;
out_update_li:
ccid3_hc_rx_update_li(sk, seq_loss, win_loss);
......@@ -1918,7 +1918,7 @@ static void ccid3_hc_rx_packet_recv(struct sock *sk, struct sk_buff *skb)
return;
}
win_count = packet->dccphrx_win_count;
win_count = packet->dccphrx_ccval;
ins = ccid3_hc_rx_add_hist(sk, packet);
......
......@@ -47,15 +47,16 @@
struct dccp_tx_hist_entry {
struct list_head dccphtx_node;
u64 dccphtx_seqno:48,
dccphtx_win_count:8,
dccphtx_ccval:4,
dccphtx_sent:1;
u32 dccphtx_rtt;
struct timeval dccphtx_tstamp;
};
struct dccp_rx_hist_entry {
struct list_head dccphrx_node;
u64 dccphrx_seqno:48,
dccphrx_win_count:4,
dccphrx_ccval:4,
dccphrx_type:4;
u32 dccphrx_ndp; /* In fact it is from 8 to 24 bits */
struct timeval dccphrx_tstamp;
......@@ -136,10 +137,10 @@ static inline struct dccp_rx_hist_entry *
if (entry != NULL) {
const struct dccp_hdr *dh = dccp_hdr(skb);
entry->dccphrx_seqno = DCCP_SKB_CB(skb)->dccpd_seq;
entry->dccphrx_win_count = dh->dccph_ccval;
entry->dccphrx_type = dh->dccph_type;
entry->dccphrx_ndp = ndp;
entry->dccphrx_seqno = DCCP_SKB_CB(skb)->dccpd_seq;
entry->dccphrx_ccval = dh->dccph_ccval;
entry->dccphrx_type = dh->dccph_type;
entry->dccphrx_ndp = ndp;
do_gettimeofday(&(entry->dccphrx_tstamp));
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册