Skip site navigation (1)Skip section navigation (2)
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>