mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-29 13:04:27 -04:00 
			
		
		
		
	All patches automatically rebased.
Build system: x86_64
Build-tested: ramips/mt7621*
*FS#4149 affects me so I had to revert 7f1edbd412
in order to downgrade to 2.35.1
Signed-off-by: John Audia <graysky@archlinux.us>
		
	
			
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 714e8c634821b340c191a157e8c4e0b1afd53dfc Mon Sep 17 00:00:00 2001
 | |
| From: Alex Marginean <alexandru.marginean@nxp.com>
 | |
| Date: Wed, 8 Jan 2020 15:21:53 +0200
 | |
| Subject: [PATCH] drivers: net: mscc_ocelot: don't flood unicast traffic to cpu
 | |
| 
 | |
| Switch cpu port doesn't learn MAC addresses and the local bridge dev_addr
 | |
| must be explicitly added to the bridge.
 | |
| This is done whenever a port is added to a bridge, ports following the
 | |
| 1st one will just overwrite the same entry.
 | |
| 
 | |
| Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
 | |
| ---
 | |
|  drivers/net/ethernet/mscc/ocelot.c | 8 ++++++++
 | |
|  1 file changed, 8 insertions(+)
 | |
| 
 | |
| --- a/drivers/net/ethernet/mscc/ocelot.c
 | |
| +++ b/drivers/net/ethernet/mscc/ocelot.c
 | |
| @@ -1677,6 +1677,8 @@ static int ocelot_port_obj_del(struct ne
 | |
|  int ocelot_port_bridge_join(struct ocelot *ocelot, int port,
 | |
|  			    struct net_device *bridge)
 | |
|  {
 | |
| +	struct ocelot_port *ocelot_port = ocelot->ports[port];
 | |
| +
 | |
|  	if (!ocelot->bridge_mask) {
 | |
|  		ocelot->hw_bridge_dev = bridge;
 | |
|  	} else {
 | |
| @@ -1688,6 +1690,12 @@ int ocelot_port_bridge_join(struct ocelo
 | |
|  
 | |
|  	ocelot->bridge_mask |= BIT(port);
 | |
|  
 | |
| +	/* Direct CPU traffic to PCU port, this should override any existing
 | |
| +	 * entries
 | |
| +	 */
 | |
| +	ocelot_mact_learn(ocelot, PGID_CPU, bridge->dev_addr, ocelot_port->pvid,
 | |
| +			  ENTRYTYPE_LOCKED);
 | |
| +
 | |
|  	return 0;
 | |
|  }
 | |
|  EXPORT_SYMBOL(ocelot_port_bridge_join);
 |