mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	Ref: 230c9da963 ("bcm53xx: revert bgmac back to the old limited max frame size")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
		
	
			
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
 | 
						|
Date: Fri, 10 Jun 2022 13:10:47 +0200
 | 
						|
Subject: [PATCH] bgmac: reduce max frame size to support just MTU 1500
 | 
						|
MIME-Version: 1.0
 | 
						|
Content-Type: text/plain; charset=UTF-8
 | 
						|
Content-Transfer-Encoding: 8bit
 | 
						|
 | 
						|
bgmac allocates new replacement buffer before handling each received
 | 
						|
frame. Allocating & DMA-preparing 9724 B each time consumes a lot of CPU
 | 
						|
time. Ideally bgmac should just respect currently set MTU but it isn't
 | 
						|
the case right now. For now just revert back to the old limited frame
 | 
						|
size.
 | 
						|
 | 
						|
This change bumps NAT masquarade speed by ~95%.
 | 
						|
 | 
						|
Ref: 8c7da63978f1 ("bgmac: configure MTU and add support for frames beyond 8192 byte size")
 | 
						|
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 | 
						|
---
 | 
						|
 drivers/net/ethernet/broadcom/bgmac.h | 3 +--
 | 
						|
 1 file changed, 1 insertion(+), 2 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/net/ethernet/broadcom/bgmac.h
 | 
						|
+++ b/drivers/net/ethernet/broadcom/bgmac.h
 | 
						|
@@ -328,8 +328,7 @@
 | 
						|
 #define BGMAC_RX_FRAME_OFFSET			30		/* There are 2 unused bytes between header and real data */
 | 
						|
 #define BGMAC_RX_BUF_OFFSET			(NET_SKB_PAD + NET_IP_ALIGN - \
 | 
						|
 						 BGMAC_RX_FRAME_OFFSET)
 | 
						|
-/* Jumbo frame size with FCS */
 | 
						|
-#define BGMAC_RX_MAX_FRAME_SIZE			9724
 | 
						|
+#define BGMAC_RX_MAX_FRAME_SIZE			1536
 | 
						|
 #define BGMAC_RX_BUF_SIZE			(BGMAC_RX_FRAME_OFFSET + BGMAC_RX_MAX_FRAME_SIZE)
 | 
						|
 #define BGMAC_RX_ALLOC_SIZE			(SKB_DATA_ALIGN(BGMAC_RX_BUF_SIZE + BGMAC_RX_BUF_OFFSET) + \
 | 
						|
 						 SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
 |