Date: Sat, 12 Feb 2011 11:40:26 -0500 (EST) From: Daniel Eischen <deischen@freebsd.org> To: Naveen Gujje <gujjenaveen@gmail.com> Cc: freebsd-hackers@freebsd.org Subject: Re: SO_SETFIB socket option Message-ID: <Pine.GSO.4.64.1102121136410.29788@sea.ntplx.net> In-Reply-To: <AANLkTimDu20-Q6n0sCgafGQb1G6Pj8bOVDtvcU%2B4UUKM@mail.gmail.com> References: <AANLkTimDu20-Q6n0sCgafGQb1G6Pj8bOVDtvcU%2B4UUKM@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---559023410-1804928587-1297528826=:29788 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed On Sat, 12 Feb 2011, Naveen Gujje wrote: > Hi All, > > On my FreeBSD 7.2 box, I've two routing tables (FIBs). Fib 0 and Fib 1 > (net.fibs = 2). > > I have a simple echo client which is the counterpart of an echo server > running somewhere. > If I run this echo client against fib 0 as 'setfib 0 ./echo-client', it > properly uses Fib 0. > But, if I run this echo client against Fib 0 by using setsockopt & SO_SETFIB > option, setsockopt fails with EINVAL. > > setsockopt & SO_SETFIB for Fib 1 succeeds. But it fails for Fib 0. > > By looking at the man page and /sys/kern/uipc_socket.c [ snip ] > Where as both Fib 0 and Fib 1 work fine if I use setfib() call. Looks like the code is wrong. Have you tried patching the source to see if it works for you? Looks like you already know the fix, but here is a patch if you'd like to rebuild your kernel to see if it works. -- DE ---559023410-1804928587-1297528826=:29788 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=uipc_socket.c.diffs Content-Transfer-Encoding: BASE64 Content-ID: <Pine.GSO.4.64.1102121140260.29788@sea.ntplx.net> Content-Description: Content-Disposition: attachment; filename=uipc_socket.c.diffs SW5kZXg6IHVpcGNfc29ja2V0LmMNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Ci0tLSB1aXBjX3NvY2tldC5jCShyZXZpc2lvbiAyMTg0OTMpDQorKysgdWlw Y19zb2NrZXQuYwkod29ya2luZyBjb3B5KQ0KQEAgLTI0NDgsMTUgKzI0NDgs MTYgQEANCiAJCWNhc2UgU09fU0VURklCOg0KIAkJCWVycm9yID0gc29vcHRj b3B5aW4oc29wdCwgJm9wdHZhbCwgc2l6ZW9mIG9wdHZhbCwNCiAJCQkJCSAg ICBzaXplb2Ygb3B0dmFsKTsNCi0JCQlpZiAob3B0dmFsIDwgMSB8fCBvcHR2 YWwgPiBydF9udW1maWJzKSB7DQorCQkJaWYgKG9wdHZhbCA8IDAgfHwgb3B0 dmFsID4gcnRfbnVtZmlicykgew0KIAkJCQllcnJvciA9IEVJTlZBTDsNCiAJ CQkJZ290byBiYWQ7DQogCQkJfQ0KLQkJCWlmICgoc28tPnNvX3Byb3RvLT5w cl9kb21haW4tPmRvbV9mYW1pbHkgPT0gUEZfSU5FVCkgfHwNCi0JCQkgICAg KHNvLT5zb19wcm90by0+cHJfZG9tYWluLT5kb21fZmFtaWx5ID09IFBGX1JP VVRFKSkgew0KKwkJCWlmIChzby0+c29fcHJvdG8gIT0gTlVMTCAmJg0KKwkJ CSAgICgoc28tPnNvX3Byb3RvLT5wcl9kb21haW4tPmRvbV9mYW1pbHkgPT0g UEZfSU5FVCkgfHwNCisJCQkgICAoc28tPnNvX3Byb3RvLT5wcl9kb21haW4t PmRvbV9mYW1pbHkgPT0gUEZfUk9VVEUpKSkgew0KIAkJCQlzby0+c29fZmli bnVtID0gb3B0dmFsOw0KIAkJCQkvKiBOb3RlOiBpZ25vcmUgZXJyb3IgKi8N Ci0JCQkJaWYgKHNvLT5zb19wcm90byAmJiBzby0+c29fcHJvdG8tPnByX2N0 bG91dHB1dCkNCisJCQkJaWYgKHNvLT5zb19wcm90by0+cHJfY3Rsb3V0cHV0 KQ0KIAkJCQkJKCpzby0+c29fcHJvdG8tPnByX2N0bG91dHB1dCkoc28sIHNv cHQpOw0KIAkJCX0gZWxzZSB7DQogCQkJCXNvLT5zb19maWJudW0gPSAwOw0K ---559023410-1804928587-1297528826=:29788--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.64.1102121136410.29788>