forked from mirrors/linux
		
	net: Disable NETIF_F_HW_TLS_TX when HW_CSUM is disabled
With NETIF_F_HW_TLS_TX packets are encrypted in HW. This cannot be
logically done when HW_CSUM offload is off.
Fixes: 2342a8512a ("net: Add TLS TX offload features")
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Boris Pismenny <borisp@nvidia.com>
Link: https://lore.kernel.org/r/20201213143929.26253-1-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
			
			
This commit is contained in:
		
							parent
							
								
									c31b70c996
								
							
						
					
					
						commit
						ae0b04b238
					
				
					 2 changed files with 12 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -524,7 +524,13 @@ on TCP retransmissions to handle corner cases is not acceptable.
 | 
			
		|||
TLS device features
 | 
			
		||||
-------------------
 | 
			
		||||
 | 
			
		||||
Drivers should ignore the changes to TLS the device feature flags.
 | 
			
		||||
Drivers should ignore the changes to the TLS device feature flags.
 | 
			
		||||
These flags will be acted upon accordingly by the core ``ktls`` code.
 | 
			
		||||
TLS device feature flags only control adding of new TLS connection
 | 
			
		||||
offloads, old connections will remain active after flags are cleared.
 | 
			
		||||
 | 
			
		||||
TLS encryption cannot be offloaded to devices without checksum calculation
 | 
			
		||||
offload. Hence, TLS TX device feature flag requires NETIF_F_HW_CSUM being set.
 | 
			
		||||
Disabling the latter implies clearing the former. Disabling TX checksum offload
 | 
			
		||||
should not affect old connections, and drivers should make sure checksum
 | 
			
		||||
calculation does not break for them.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9643,6 +9643,11 @@ static netdev_features_t netdev_fix_features(struct net_device *dev,
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ((features & NETIF_F_HW_TLS_TX) && !(features & NETIF_F_HW_CSUM)) {
 | 
			
		||||
		netdev_dbg(dev, "Dropping TLS TX HW offload feature since no CSUM feature.\n");
 | 
			
		||||
		features &= ~NETIF_F_HW_TLS_TX;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return features;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue