Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Jan 2015 17:39:10 +0300
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        Luiz Otavio O Souza <loos.br@gmail.com>
Cc:        Luiz Otavio O Souza <loos@freebsd.org>, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r276751 - head/sys/netinet
Message-ID:  <20150112143910.GL15484@FreeBSD.org>
In-Reply-To: <CAJ8CS7qJWzwdRrYRT4EEQ%2Bwm3XynvebdW2zMMLpX=d%2BdbouKwA@mail.gmail.com>
References:  <201501061307.t06D7E0a001358@svn.freebsd.org> <20150107205203.GI15484@FreeBSD.org> <CAJ8CS7qJWzwdRrYRT4EEQ%2Bwm3XynvebdW2zMMLpX=d%2BdbouKwA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
  Luiz,

On Fri, Jan 09, 2015 at 11:14:53AM -0200, Luiz Otavio O Souza wrote:
L> On Wed, Jan 7, 2015 at 6:52 PM, Gleb Smirnoff wrote:
L> > On Tue, Jan 06, 2015 at 01:07:14PM +0000, Luiz Otavio O Souza wrote:
L> > L> Author: loos
L> > L> Date: Tue Jan  6 13:07:13 2015
L> > L> New Revision: 276751
L> > L> URL: https://svnweb.freebsd.org/changeset/base/276751
L> > L>
L> > L> Log:
L> > L>   Remove the check that prevent carp(4) advskew to be set to '0'.
L> > L>
L> > L>   CARP devices are created with advskew set to '0' and once you set it to
L> > L>   any other value in the valid range (0..254) you can't set it back to zero.
L> > L>
L> > L>   The code in question is also used to prevent that zeroed values overwrite
L> > L>   the CARP defaults when a new CARP device is created.  Since advskew already
L> > L>   defaults to '0' for newly created devices and the new value is guaranteed
L> > L>   to be within the valid range, it is safe to overwrite it here.
L> > L>
L> > L>   PR:                194672
L> > L>   Reported by:       cmb@pfsense.org
L> > L>   In collaboration with:     garga
L> > L>   Tested by: garga
L> > L>   MFC after: 2 weeks
L> >
L> > Please correct me if I am wrong, but after this change any SIOCSVH will reset
L> > the advskew to 0.
L> >
L> > For example, please try to:
L> >
L> > ifconfig igb0 vhid 1 advskew 100
L> > ifconfig igb0 vhid 1 pass foobar
L> >
L> > Now let's check the advskew:
L> >
L> > ifconfig igb0
L> 
L> Only if the SIOCSVH request is not initialized with data from SIOCGVH.
L> 
L> ifconfig (at setcarp_callback()) will always read the existing values
L> before issuing the SIOCSVH with the new values and this is what makes
L> my change safe:
L> 
L> # ifconfig em0 vhid 1 advskew 100 192.168.100.1/24 alias
L> # ifconfig em0 | grep carp
L>         carp: MASTER vhid 1 advbase 1 advskew 100
L> # ifconfig em0 vhid 1 pass foobar
L> # ifconfig em0 | grep carp
L>         carp: MASTER vhid 1 advbase 1 advskew 100
L> # ifconfig em0 vhid 1 advbase 5
L> # ifconfig em0 | grep carp
L>         carp: MASTER vhid 1 advbase 5 advskew 100
L> # ifconfig em0 vhid 1 advskew 0
L> # ifconfig em0 | grep carp
L>         carp: MASTER vhid 1 advbase 5 advskew 0

Thanks for checking that! Good that I was wrong.

-- 
Totus tuus, Glebius.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150112143910.GL15484>