Date: Mon, 27 Jul 2009 15:12:54 -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: <4A6E2666.2040906@elischer.org> In-Reply-To: <4A6E0A8B.5000103@sfedu.ru> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
*/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A6E2666.2040906>
