Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 May 2017 18:00:30 +0300
From:      Oleg Bulyzhin <oleg@FreeBSD.org>
To:        Hans Petter Selasky <hps@selasky.org>
Cc:        Oleg Bulyzhin <oleg@FreeBSD.org>, Sepherosa Ziehau <sephe@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, araujo@FreeBSD.org, hps@FreeBSD.org
Subject:   Re: svn commit: r305177 - head/sys/net
Message-ID:  <20170518150030.GA55481@lath.RINET.ru>
In-Reply-To: <355478da-ed4d-60bb-bb4e-144a694e28b8@selasky.org>
References:  <201609010632.u816WZUj025186@repo.freebsd.org> <20170518140403.GA54405@lath.RINET.ru> <355478da-ed4d-60bb-bb4e-144a694e28b8@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, May 18, 2017 at 04:25:01PM +0200, Hans Petter Selasky wrote:
> On 05/18/17 16:04, Oleg Bulyzhin wrote:
> > On Thu, Sep 01, 2016 at 06:32:35AM +0000, Sepherosa Ziehau wrote:
> >> Author: sephe
> >> Date: Thu Sep  1 06:32:35 2016
> >> New Revision: 305177
> >> URL: https://svnweb.freebsd.org/changeset/base/305177
> >>
> >> Log:
> >>    net/vlan: Shift for pri is 13 (pri mask 0xe000) not 1.
> >>    
> >>    Reviewed by:	araujo, hps
> >>    MFC after:	1 week
> >>    Sponsored by:	Microsoft
> >>    Differential Revision:	https://reviews.freebsd.org/D7710
> >>
> >> Modified:
> >>    head/sys/net/ethernet.h
> >>
> >> Modified: head/sys/net/ethernet.h
> >> ==============================================================================
> >> --- head/sys/net/ethernet.h	Thu Sep  1 06:05:08 2016	(r305176)
> >> +++ head/sys/net/ethernet.h	Thu Sep  1 06:32:35 2016	(r305177)
> >> @@ -92,7 +92,7 @@ struct ether_vlan_header {
> >>   #define	EVL_PRIOFTAG(tag)	(((tag) >> 13) & 7)
> >>   #define	EVL_CFIOFTAG(tag)	(((tag) >> 12) & 1)
> >>   #define	EVL_MAKETAG(vlid, pri, cfi)					\
> >> -	((((((pri) & 7) << 1) | ((cfi) & 1)) << 12) | ((vlid) & EVL_VLID_MASK))
> >> +	((((((pri) & 7) << 13) | ((cfi) & 1)) << 12) | ((vlid) & EVL_VLID_MASK))
> >>   
> >>   /*
> >>    *  NOTE: 0x0000-0x05DC (0..1500) are generally IEEE 802.3 length fields.
> > 
> > Please revert this one. It's just plain wrong and previous one was ok.
> > 
> 
> Hi,
> 
> Can you explain a bit more what is wrong?
> 
> > If you care about readability it should be:
> > ((((pri) & 7) << 13) | (((cfi) & 1) << 12) | ((vlid) & EVL_VLID_MASK))
> 
> Isn't this exactly what the patch is doing? -R ???

Current version is shifting pri out of uint16. If you examine parentheses:
pri is shifted left 13, then 12.
Original version did it right (shift 1, then 12 (total 13)).


-- 
Oleg.

================================================================
=== Oleg Bulyzhin -- OBUL-RIPN -- OBUL-RIPE -- oleg@rinet.ru ===
================================================================




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