Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Jul 2009 16:24:51 -0700
From:      Julian Elischer <julian@elischer.org>
To:        Oleg Sharoyko <os@sfedu.ru>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Wrong outgoing interface with multiple routing tables
Message-ID:  <4A6E3743.7050708@elischer.org>
In-Reply-To: <4A6E2666.2040906@elischer.org>
References:  <1248704237.96833.127.camel@brain.cc.rsu.ru>	<4A6DE356.6040006@elischer.org> <4A6DEE30.6000108@sfedu.ru>	<4A6DFFA1.1010709@elischer.org> <4A6E0121.2020004@sfedu.ru>	<4A6E05EC.8050401@elischer.org> <4A6E0A8B.5000103@sfedu.ru> <4A6E2666.2040906@elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Julian Elischer wrote:
> Oleg Sharoyko wrote:
>>
>> Julian Elischer wrote:
>>
>>> great.. in your simple server, can you do the sockopt on the socket 
>>> AFTER you did the listen()?
>>> (just as a test).
>>
>> Doesn't help. I have also tried to add setsockopt() after accept() 
>> (for a new socket) and in this case the only packet that is being sent 
>> out via wrong interface is the SYN+ACK from server.
>>
>> I'll try to look into the kernel code tomorrow and will report any 
>> findings.
>>
>> -- 
>> Oleg
> 
> 
> in addition to the patches already sent you might like to add the 
> following line to netinet/tcp_input.c
> 
>                 }
>                 inc.inc_fport = th->th_sport;
>                 inc.inc_lport = th->th_dport;
>                 inc.inc_fibnum = so->so_fibnum; <-------------
>                 /*
>                  * Check for an existing connection attempt in syncache if
>                  * the flag is only ACK.  A successful lookup creates a new
>                  * socket appended to the listen queue in SYN_RECEIVED 
> state.
>                  */

in fact you might try just this on its own

> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A6E3743.7050708>