Wrong outgoing interface with multiple routing tables
Julian Elischer
julian at elischer.org
Mon Jul 27 22:12:51 UTC 2009
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.
*/
More information about the freebsd-net
mailing list