About TcpRateOps::TcpRateSample & TcpRateLinux::GenerateSample(...)

18 views
Skip to first unread message

Ruihua Chan

unread,
Sep 5, 2022, 1:41:50 PM9/5/22
to ns-3-users
Hello all,

I found that in function const TcpRateOps::TcpRateSample &
TcpRateLinux::GenerateSample ( ) when m_rateSample.m_interval < minRtt it will set the variable m_rateSample.m_priorTime to Seconds(0).

if (m_rateSample.m_interval < minRtt) 
  NS_LOG_INFO ("Sampling interval is invalid"); 
  m_rateSample.m_interval = Seconds (0); 
  m_rateSample.m_priorTime = Seconds (0); // To make rate sample invalid                 m_rateSampleTrace (m_rateSample); return m_rateSample;
}

However I could not find out similar implementation in linux kernel codes when interval < minRTT. Linux kernel codes as below.

/net/ipv4/tcp_rate.c: void tcp_rate_gen(struct sock *sk, u32 delivered, u32 lost,
          bool is_sack_reneg, struct rate_sample *rs)

if (unlikely(rs->interval_us < tcp_min_rtt(tp))) {
        if (!rs->is_retrans)
            pr_debug("tcp rate: %ld %d %u %u %u\n",
                 rs->interval_us, rs->delivered,
                 inet_csk(sk)->icsk_ca_state,
                 tp->rx_opt.sack_ok, tcp_min_rtt(tp));
        rs->interval_us = -1;
        return;
    }

Could you please help me find out where could I find the similar implementation in linux kernel or tell me how does this new line of code work to make sample invalid.Thanks in advance!
Regards,
Chan


Reply all
Reply to author
Forward
0 new messages