Hi all,

I'm using Fedora 9 with kernel to implement new congestion algorithm.

I want to measure the round trip time (RTT) of acked pkt. From Linux modular congestion control - WiL, I know that void pkts_acked(struct sock *sk, u32 cnt, s32 rtt_us) can be used with rtt_us is the RTT.

However, I want to get the RTT of the acked pkt inside void (*cong_avoid)(struct sock *sk, u32 ack, u32 in_flight)? How could I do that?

In addition, I get confused when it's said that pkts_acked is called when ACK arrives but cong_avoid is also called when ACK arrives? So what's the difference between those two?

Moreover, I want to measure the time (in ms) of last ACK and new arrived ACK to find the difference as a input for a formula. Besides using current_kernel_time() in include/linux/time.h what is a better alternative way to do this? I saw an advice using rdtsc*() macro at get time inside kernel | KernelTrap.

I use (HZ/200) ~ 5ms. Is it correct?