This removes two fields of the TX packet history structure which
are not referenced by the CCID 3 code and are not needed:
* dccphtx_sent - is redundant since the fact that an entry is
present in the TX history in itself is an indication that the
packet has been sent (cf. dccp_write_xmit and ccid3_hc_tx_packet_sent);
* dccphtx_rtt - is nowhere referenced and is not even required:
the `Preventing Oscillations' mechanism in [RFC 3448, 4.5] uses a
moving-average, but does not require to memorize past RTTs;
the history field has no further use;
As a further benefit, the history entry size is reduced.
NB : Adding the newly created entry is now at the end of packet_sent - if it is
in the history before being fully filled in, list corruption is possible.
Signed-off-by: Gerrit Renker <[EMAIL PROTECTED]>
Acked-by: Ian McDonald <[EMAIL PROTECTED]>
Signed-off-by: Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>
---
net/dccp/ccids/ccid3.c | 4 +---
net/dccp/ccids/lib/packet_history.h | 12 ++----------
2 files changed, 3 insertions(+), 13 deletions(-)
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c
index 0029979..cd3565f 100644
--- a/net/dccp/ccids/ccid3.c
+++ b/net/dccp/ccids/ccid3.c
@@ -408,13 +408,11 @@ static void ccid3_hc_tx_packet_sent(struct sock *sk, int
more,
DCCP_CRIT("packet history - out of memory!");
return;
}
- dccp_tx_hist_add_entry(&hctx->ccid3hctx_hist, packet);
do_gettimeofday(&now);
packet->dccphtx_tstamp = now;
packet->dccphtx_seqno = dccp_sk(sk)->dccps_gss;
- packet->dccphtx_rtt = hctx->ccid3hctx_rtt;
- packet->dccphtx_sent = 1;
+ dccp_tx_hist_add_entry(&hctx->ccid3hctx_hist, packet);
}
static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
diff --git a/net/dccp/ccids/lib/packet_history.h
b/net/dccp/ccids/lib/packet_history.h
index 6208188..78ef50f 100644
--- a/net/dccp/ccids/lib/packet_history.h
+++ b/net/dccp/ccids/lib/packet_history.h
@@ -54,9 +54,7 @@
*/
struct dccp_tx_hist_entry {
struct list_head dccphtx_node;
- u64 dccphtx_seqno:48,
- dccphtx_sent:1;
- u32 dccphtx_rtt;
+ u64 dccphtx_seqno;
struct timeval dccphtx_tstamp;
};
@@ -71,13 +69,7 @@ static inline struct dccp_tx_hist_entry *
dccp_tx_hist_entry_new(struct dccp_tx_hist *hist,
const gfp_t prio)
{
- struct dccp_tx_hist_entry *entry = kmem_cache_alloc(hist->dccptxh_slab,
- prio);
-
- if (entry != NULL)
- entry->dccphtx_sent = 0;
-
- return entry;
+ return kmem_cache_alloc(hist->dccptxh_slab, prio);
}
extern int dccp_tx_hist_get_send_time(struct dccp_tx_hist *, struct list_head
*,
--
1.5.0.6
-
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