Antonio Pinizzotto
2005-May-02 17:22 UTC
How to read the TCP congestion window (cwnd) on Linux?
Hi everybody. Do you know about any way to read the TCP cwnd value (congestion window) on Linux? I have read that on Linux it is not possible to enable a socket option (to read to cwnd using the program trpt). Any way to read the cwnd would be good for me. thanks Antonio
Patrick McHardy
2005-May-02 21:14 UTC
Re: How to read the TCP congestion window (cwnd) on Linux?
Antonio Pinizzotto wrote:> > Hi everybody. > Do you know about any way to read the TCP cwnd value (congestion window) > on Linux? > > I have read that on Linux it is not possible to enable a socket option > (to read to cwnd using the program trpt). > > Any way to read the cwnd would be good for me.I already answered your question on the end2end list yesterday: You can get cwnd through the TCP socket monitoring interface using the "ss"-tool from iproute2 (http://developer.osdl.org/dev/iproute2) or by getsockopt(TCP_INFO). Regards Patrick
Stephen Hemminger
2005-May-03 21:27 UTC
Re: How to read the TCP congestion window (cwnd) on Linux?
On Mon, 02 May 2005 19:22:17 +0200 Antonio Pinizzotto <antonio.pinizzotto@iit.cnr.it> wrote:> > Hi everybody. > Do you know about any way to read the TCP cwnd value (congestion window) > on Linux? > > I have read that on Linux it is not possible to enable a socket option > (to read to cwnd using the program trpt). > > Any way to read the cwnd would be good for me. > > thanks > > AntonioI whipped together a hack using kprobe''s to get graphs for TCP testing. You can download it from http://developer.osdl.org/shemminger/prototypes/tcpprobe.tar.gz
Hi Stephen, Is this tcpprobe intended for 2.4 kernel? This is what I get against a 2.6.8-24 kernel: /home/ssuciu/tcpprobe/tcpprobe.c: In function `jtcp_sendmsg'': /home/ssuciu/tcpprobe/tcpprobe.c:81: warning: initialization from incompatible pointer type /home/ssuciu/tcpprobe/tcpprobe.c:83: error: structure has no member named `snd_nxt'' /home/ssuciu/tcpprobe/tcpprobe.c:83: error: structure has no member named `snd_una'' /home/ssuciu/tcpprobe/tcpprobe.c:84: error: structure has no member named `snd_cwnd'' /home/ssuciu/tcpprobe/tcpprobe.c:84: warning: passing arg 1 of `tcp_current_ssthresh'' from incompatible pointer type /home/ssuciu/tcpprobe/tcpprobe.c:85: error: structure has no member named `snd_wnd'' /home/ssuciu/tcpprobe/tcpprobe.c: In function `jtcp_recvmsg'': /home/ssuciu/tcpprobe/tcpprobe.c:100: warning: initialization from incompatible pointer type /home/ssuciu/tcpprobe/tcpprobe.c:104: error: structure has no member named `rcv_nxt'' /home/ssuciu/tcpprobe/tcpprobe.c:104: warning: passing arg 1 of `tcp_receive_window'' from incompatible pointer type make[2]: *** [/home/ssuciu/tcpprobe/tcpprobe.o] Error 1 make[1]: *** [_module_/home/ssuciu/tcpprobe] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.8-24'' Cheers, Sorin --- Stephen Hemminger <shemminger@osdl.org> wrote:> On Mon, 02 May 2005 19:22:17 +0200 > Antonio Pinizzotto <antonio.pinizzotto@iit.cnr.it> > wrote: > > > > > Hi everybody. > > Do you know about any way to read the TCP cwnd > value (congestion window) > > on Linux? > > > > I have read that on Linux it is not possible to > enable a socket option > > (to read to cwnd using the program trpt). > > > > Any way to read the cwnd would be good for me. > > > > thanks > > > > Antonio > > I whipped together a hack using kprobe''s to get > graphs for TCP testing. > You can download it from >http://developer.osdl.org/shemminger/prototypes/tcpprobe.tar.gz> _______________________________________________ > LARTC mailing list > LARTC@mailman.ds9a.nl >http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc>
Stephen Hemminger
2005-May-04 16:17 UTC
Re: How to read the TCP congestion window (cwnd) on Linux?
On Wed, 4 May 2005 00:54:23 -0700 (PDT) "Sorin S." <sese_ro@yahoo.com> wrote:> Hi Stephen, > Is this tcpprobe intended for 2.4 kernel?no, it was built for 2.6. It could work in 2.4, but you would need to dig up an old kprobes patch for 2.4 (from ibm), and do some simple tweaks to the socket to tcp cb mapping.> > This is what I get against a 2.6.8-24 kernel:some internal changes to data structures happened about 2.6.10, no big deal look at tcp_input.c you''ll see how the macros are different Does that kernel have kprobes?> > > /home/ssuciu/tcpprobe/tcpprobe.c: In function > `jtcp_sendmsg'': > /home/ssuciu/tcpprobe/tcpprobe.c:81: warning: > initialization from incompatible pointer type > /home/ssuciu/tcpprobe/tcpprobe.c:83: error: structure > has no member named `snd_nxt'' > /home/ssuciu/tcpprobe/tcpprobe.c:83: error: structure > has no member named `snd_una'' > /home/ssuciu/tcpprobe/tcpprobe.c:84: error: structure > has no member named `snd_cwnd'' > /home/ssuciu/tcpprobe/tcpprobe.c:84: warning: passing > arg 1 of `tcp_current_ssthresh'' from incompatible > pointer type > /home/ssuciu/tcpprobe/tcpprobe.c:85: error: structure > has no member named `snd_wnd'' > /home/ssuciu/tcpprobe/tcpprobe.c: In function > `jtcp_recvmsg'': > /home/ssuciu/tcpprobe/tcpprobe.c:100: warning: > initialization from incompatible pointer type > /home/ssuciu/tcpprobe/tcpprobe.c:104: error: structure > has no member named `rcv_nxt'' > /home/ssuciu/tcpprobe/tcpprobe.c:104: warning: passing > arg 1 of `tcp_receive_window'' from incompatible > pointer type > make[2]: *** [/home/ssuciu/tcpprobe/tcpprobe.o] Error > 1 > make[1]: *** [_module_/home/ssuciu/tcpprobe] Error 2 > make[1]: Leaving directory `/usr/src/linux-2.6.8-24'' > > Cheers, > Sorin > > > --- Stephen Hemminger <shemminger@osdl.org> wrote: > > On Mon, 02 May 2005 19:22:17 +0200 > > Antonio Pinizzotto <antonio.pinizzotto@iit.cnr.it> > > wrote: > > > > > > > > Hi everybody. > > > Do you know about any way to read the TCP cwnd > > value (congestion window) > > > on Linux? > > > > > > I have read that on Linux it is not possible to > > enable a socket option > > > (to read to cwnd using the program trpt). > > > > > > Any way to read the cwnd would be good for me. > > > > > > thanks > > > > > > Antonio > > > > I whipped together a hack using kprobe''s to get > > graphs for TCP testing. > > You can download it from > > > http://developer.osdl.org/shemminger/prototypes/tcpprobe.tar.gz > > _______________________________________________ > > LARTC mailing list > > LARTC@mailman.ds9a.nl > > > http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc > >