lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 21 Oct 2022 19:30:05 +0300
From:   Vladimir Oltean <>
        Florian Fainelli <>,
        Andrew Lunn <>,
        Vivien Didelot <>,
        Eric Dumazet <>,
        Paolo Abeni <>,
        Kurt Kanzenbach <>,
        Hauke Mehrtens <>,
        Woojung Huh <>,, Sean Wang <>,
        Landen Chao <>,
        DENG Qingfang <>,
        Matthias Brugger <>,
        Claudiu Manoil <>,
        Alexandre Belloni <>,
        Jiri Pirko <>,
        Ivan Vecera <>,
        Roopa Prabhu <>,
        Nikolay Aleksandrov <>,
        Shuah Khan <>,
        Russell King <>,
        Christian Marangi <>,
        Daniel Borkmann <>,
        Yuwei Wang <>,
        Petr Machata <>,
        Ido Schimmel <>,
        Florent Fourcot <>,
        Hans Schultz <>,
        Joachim Wiberg <>,
        Amit Cohen <>,,,,,
Subject: Re: [PATCH v8 net-next 10/12] net: dsa: mv88e6xxx: mac-auth/MAB

On Fri, Oct 21, 2022 at 03:16:21PM +0200, wrote:
> As it is now in the bridge, the locked port part is handled before learning
> in the ingress data path, so with BR_LEARNING and BR_PORT_LOCKED, I think it
> will work as it does now except link local packages.

If link-local learning is enabled on a locked port, I think those
addresses should also be learned with the BR_FDB_LOCKED flag. The
creation of those locked FDB entries can be further suppressed by the

> If your suggestion of BR_LEARNING causing BR_FDB_LOCKED on a locked port, I
> guess it would be implemented under br_fdb_update() and BR_LEARNING +
> BR_PORT_LOCKED would go together, forcing BR_LEARNING in this case, thus also
> for all drivers?

Yes, basically where this is placed right now (in br_handle_frame_finish):

	if (p->flags & BR_PORT_LOCKED) {
		struct net_bridge_fdb_entry *fdb_src =
			br_fdb_find_rcu(br, eth_hdr(skb)->h_source, vid);

		if (!fdb_src) {
			unsigned long flags = 0;

			if (p->flags & BR_PORT_MAB) {
			   except check for BR_LEARNING

				__set_bit(BR_FDB_LOCKED, &flags);
				br_fdb_update(br, p, eth_hdr(skb)->h_source,
					      vid, flags);
			goto drop;
		} else if (READ_ONCE(fdb_src->dst) != p ||
			   test_bit(BR_FDB_LOCAL, &fdb_src->flags) ||
			   test_bit(BR_FDB_LOCKED, &fdb_src->flags)) {
			goto drop;

Powered by blists - more mailing lists