ice: Offload SCTP checksum
This patch adds the ability to offload SCTP checksum calculations to the NIC. Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
		
							parent
							
								
									a8939784a1
								
							
						
					
					
						commit
						cf909e19ac
					
				| @ -26,6 +26,7 @@ | ||||
| #include <linux/bitmap.h> | ||||
| #include <linux/log2.h> | ||||
| #include <linux/ip.h> | ||||
| #include <linux/sctp.h> | ||||
| #include <linux/ipv6.h> | ||||
| #include <linux/if_bridge.h> | ||||
| #include <linux/avf/virtchnl.h> | ||||
|  | ||||
| @ -346,6 +346,7 @@ enum ice_tx_desc_cmd_bits { | ||||
| 	ICE_TX_DESC_CMD_IIPT_IPV4		= 0x0040, /* 2 BITS */ | ||||
| 	ICE_TX_DESC_CMD_IIPT_IPV4_CSUM		= 0x0060, /* 2 BITS */ | ||||
| 	ICE_TX_DESC_CMD_L4T_EOFT_TCP		= 0x0100, /* 2 BITS */ | ||||
| 	ICE_TX_DESC_CMD_L4T_EOFT_SCTP		= 0x0200, /* 2 BITS */ | ||||
| 	ICE_TX_DESC_CMD_L4T_EOFT_UDP		= 0x0300, /* 2 BITS */ | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -1528,6 +1528,7 @@ static int ice_cfg_netdev(struct ice_vsi *vsi) | ||||
| 
 | ||||
| 	csumo_features = NETIF_F_RXCSUM	  | | ||||
| 			 NETIF_F_IP_CSUM  | | ||||
| 			 NETIF_F_SCTP_CRC | | ||||
| 			 NETIF_F_IPV6_CSUM; | ||||
| 
 | ||||
| 	vlano_features = NETIF_F_HW_VLAN_CTAG_FILTER | | ||||
|  | ||||
| @ -1465,6 +1465,12 @@ int ice_tx_csum(struct ice_tx_buf *first, struct ice_tx_offload_params *off) | ||||
| 		offset |= l4_len << ICE_TX_DESC_LEN_L4_LEN_S; | ||||
| 		break; | ||||
| 	case IPPROTO_SCTP: | ||||
| 		/* enable SCTP checksum offload */ | ||||
| 		cmd |= ICE_TX_DESC_CMD_L4T_EOFT_SCTP; | ||||
| 		l4_len = sizeof(struct sctphdr) >> 2; | ||||
| 		offset |= l4_len << ICE_TX_DESC_LEN_L4_LEN_S; | ||||
| 		break; | ||||
| 
 | ||||
| 	default: | ||||
| 		if (first->tx_flags & ICE_TX_FLAGS_TSO) | ||||
| 			return -1; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user