Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Dec 2013 09:25:48 -0700
From:      "Justin T. Gibbs" <gibbs@scsiguy.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        freebsd-net@freebsd.org, =?iso-8859-1?Q?Roger_Pau_Monn=E9?= <royger@freebsd.org>, net@freebsd.org
Subject:   Re: Defaults for if_capenable and detecting user initiated changes
Message-ID:  <526A243B-7B66-45BD-9B45-3BFB04F1E16D@scsiguy.com>
In-Reply-To: <201312031213.41677.jhb@freebsd.org>
References:  <0E13D481-9D6D-4B52-A5AD-B671BF3A85AF@scsiguy.com> <201312031213.41677.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Dec 3, 2013, at 10:13 AM, John Baldwin <jhb@freebsd.org> wrote:

> On Wednesday, November 27, 2013 12:59:08 pm Justin T. Gibbs wrote:
>> Hi net,
>>=20
>> I=92m reviewing a patch from Roger Pau Monn=E9 for the Xen netfront =
driver.  The=20
> goal of the change is to avoid disturbing the user=92s settings for =
the=20
> interface just because the backend device has changed or the =
connection to the=20
> backend was reset.  I=92ve attached the latest version of the patch.
>>=20
>> The current patch leaves the interface settings alone if they can be=20=

> supported by the newly attached backend.  What would be ideal is to =
enable=20
> capabilities that default to being enabled if they were not explicitly=20=

> disabled by the user and can be supported by the new backend.  =
Unfortunately,=20
> I don=92t think the if_capenable and if_capabilities fields are =
descriptive=20
> enough to deal with an interface whose capabilities can change at =
runtime. =20
> Just as can be done with link speed, some of these settings need to =
allow an=20
> =93auto/default=94 setting in addition to on or off.  This would allow =
the user to=20
> explicitly disable a capability if needed, but generally allow the =
system to=20
> chose the most optimal settings when they are supported.  Would this =
be=20
> difficult to add?
>=20
> Couldn't you maintain this state in the Xen netfront driver's softc?
> You already get the ioctls that track changes to the capenable field,
> so you when a change explicitly disables a capability you can set that
> in a 'forced off' or 'forced on' field.  Perhaps more of a 'forced'
> field that you just update by doing:
>=20
> 	sc->capforced |=3D (oldcapenable ^ newcapenable)
>=20
> However, it's not clear to me if you can get the underlying adapters
> initial capenable list.  If so, I think capforced should be all you
> need to handle this (though it might be easier if you have separate
> forcedon and forcedoff fields).
>=20
> --=20
> John Baldwin

Certainly this could be done in the Xen driver.  The reason I posted my =
question, however, was to ask whether this should be more generically =
tracked by the if layer instead of handled by the underlying driver.  =
Lots of user interfaces support a =93restore defaults=94 capability =
(e.g. for the novice administrator who screws up, or as a step in =
writing a script/procedure that starts by getting to a known state), so =
I think this is interesting for more than this particular Xen issue.

=97
Justin




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?526A243B-7B66-45BD-9B45-3BFB04F1E16D>