How'ya nx5000,
Thanks very much for you're reply this (
http://lxr.linux.no/source/net/ipv4/tcp_input.c) was exactly what I was looking for. I'll try to explain (as best I can) the reason I was looking for this file. I have been trying to determine an answer to the following problem:
When using the default settings in /proc/sys/net*/ipv4 and having tcp_bic = 1. Does this (tcp_bic) have to be change to 0 if I wanted to set tcp_vegas_cong_avoid = 1. What I meaning is, does setting tcp_vegas_cong_avoid or tcp_westwood to 1 (i.e. to use either of these algorithms) automatically over ride the tcp_bic setting, or would vegas/westwood be used in conjunction with tcp_bic?
So by locating the "tcp_ca_init" function this has kinda helped to answer my question. The code for the function is listed below:
560 * When starting a new connection, pin down the current choice of
561 * congestion algorithm.
562 */
563 void tcp_ca_init(struct tcp_sock *tp)
564 {
565 if (sysctl_tcp_westwood)
566 tp->adv_cong = TCP_WESTWOOD;
567 else if (sysctl_tcp_bic)
568 tp->adv_cong = TCP_BIC;
569 else if (sysctl_tcp_vegas_cong_avoid) {
570 tp->adv_cong = TCP_VEGAS;
571 tp->vegas.baseRTT = 0x7fffffff;
572 tcp_vegas_enable(tp);
573 }
574 }
I just trying to determine what the code is stating. Would I be correct in saying that:
if tcp_bic = 1 then it will over ride whatever the setting is for tcp_vegas_cong_avoid (0 or 1). I am making this assumption because it comes before tcp Vegas in the above code. Can anyone verify if this assumption correct?
Many thanks
CICA
PS: I hope the way I have wrote this isn't too confusing