Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jan 2008 11:57:25 +0000
From:      Tom Judge <tom@tomjudge.com>
To:        Andrew Thompson <thompsa@FreeBSD.org>
Cc:        freebsd-net <freebsd-net@freebsd.org>
Subject:   Re: if_bridge forwarding incorrectly forwarding ethernet link local addressed packets (e.g. lldp)
Message-ID:  <478F42A5.6080301@tomjudge.com>
In-Reply-To: <20080117030804.GA30931@heff.fud.org.nz>
References:  <478EBBFD.4090806@tomjudge.com> <20080117030804.GA30931@heff.fud.org.nz>

next in thread | previous in thread | raw e-mail | index | archive | help
Andrew Thompson wrote:
> On Thu, Jan 17, 2008 at 02:22:53AM +0000, Tom Judge wrote:
>> Hi,
>>
>> As brought up in the thread "Programming interface MAC filter without 
>> enabling PROMISC on an interface from user space." it would seem that 
>> if_bridge does not conform to IEEE 802.1D-2004.  Which states:
>>
>> <quote>
>> 7.12.6 Reserved addresses
>> Frames containing any of the group MAC Addresses specified in Table 7-10 in 
>> their destination address field shall not be relayed by the Bridge. They 
>> are configured in the Permanent Database. Management shall not provide the 
>> capability to modify or remove these entries from the Permanent or the 
>> Filtering Databases. These group MAC Addresses are reserved for assignment 
>> to standard protocols, according to the criteria for such assignments 
>> (Clause 5.5 of ISO/IEC TR 11802-2).
>> </quote>
>>
>>
>> <table 7-10>
>>                      Assignment                            Value
>> Bridge Group Address                              01-80-C2-00-00-00
>> IEEE Std 802.3x Full Duplex PAUSE operation       01-80-C2-00-00-01
>> IEEE Std 802.3ad Slow_Protocols_Multicast address 01-80-C2-00-00-02
>> IEEE P802.1X PAE address                          01-80-C2-00-00-03
>> Reserved for future standardization               01-80-C2-00-00-04
>> Reserved for future standardization               01-80-C2-00-00-05
>> Reserved for future standardization               01-80-C2-00-00-06
>> Reserved for future standardization               01-80-C2-00-00-07
>> Reserved for future standardization               01-80-C2-00-00-08
>> Reserved for future standardization               01-80-C2-00-00-09
>> Reserved for future standardization               01-80-C2-00-00-0A
>> Reserved for future standardization               01-80-C2-00-00-0B
>> Reserved for future standardization               01-80-C2-00-00-0C
>> Reserved for future standardization               01-80-C2-00-00-0D
>> Reserved for future standardization               01-80-C2-00-00-0E
>> Reserved for future standardization               01-80-C2-00-00-0F
>> </table 7-10>
>>
>> Should I raise a PR about this?
> 
> Yes please, just paste the same content in. Thanks for investigating
> this, I will sort out a patch.
> 
> 
> Andrew

Hi,

I have raised a PR about this: kern/119744 
<http://www.freebsd.org/cgi/query-pr.cgi?pr=119744>;

I also put a possible solution into the PR.  I'm not sure if the boolean 
logic on eh->ether_dhost is valid though:
if (eh->ether_dhost & 0xFFFFFFFFFFF0 == 0x0180C2000000) {}

How ever the symantics of the logic should be correct even if the code 
is wrong.  I have not tested this fix at all (not even compile).

Tom







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