mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From da75807ac41175e9db8c95f7a172b4133763b744 Mon Sep 17 00:00:00 2001
 | |
| From: Gabor Juhos <j4g8y7@gmail.com>
 | |
| Date: Mon, 11 Jan 2021 17:49:36 +0100
 | |
| Subject: [PATCH] skbuff: add DSA specific data to struct skb_shared_info
 | |
| 
 | |
| All of the already existing DSA tagging protocol drivers
 | |
| are storing the tagging data directly into the skb. In most
 | |
| cases that is the only way to send the required information
 | |
| to the underlying ethernet switch.
 | |
| 
 | |
| However on certain platforms (like the Qualcomm IPQ40xx
 | |
| SoCs) the built-in ethernet switch is connected directly
 | |
| to an ethernet MAC, and the tagging information must be
 | |
| sent out-of-band which is done directly via the hardware
 | |
| TX descriptors of the ethernet MAC.
 | |
| 
 | |
| In such cases, putting the information into the skb causes
 | |
| unneccesary overhead, because the ethernet driver must
 | |
| remove that before sending the ethernet frame towards to
 | |
| the hardware.
 | |
| 
 | |
| This change adds two new DSA specific fields to struct
 | |
| skb_shared_info which makes it possible to send the
 | |
| tagging information via skb->shinfo. With this approach,
 | |
| the twofold modifications of the skb data can be avoided.
 | |
| 
 | |
| Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
 | |
| ---
 | |
|  include/linux/skbuff.h | 3 +++
 | |
|  1 file changed, 3 insertions(+)
 | |
| 
 | |
| --- a/include/linux/skbuff.h
 | |
| +++ b/include/linux/skbuff.h
 | |
| @@ -563,6 +563,9 @@ struct skb_shared_info {
 | |
|  	unsigned int	gso_type;
 | |
|  	u32		tskey;
 | |
|  
 | |
| +	unsigned int	dsa_tag_proto;
 | |
| +	unsigned char	dsa_tag_data[8];
 | |
| +
 | |
|  	/*
 | |
|  	 * Warning : all fields before dataref are cleared in __alloc_skb()
 | |
|  	 */
 |