Commit e1da71ca authored by Alexander Duyck's avatar Alexander Duyck Committed by Jeff Kirsher

i40e: Drop code for unsupported flow types

We cannot currently support SCTP in the hardware, and IPV4_FLOW is not used
anywhere by the software so we can go through and drop the functionality
related to these two flow types.

In addition we cannot support masking based on the protocol value so if the
user is expecting a value other than TCP or UDP we should simply return an
error rather then trying to allocate a filter for a rule that will only
partially match what the user requested.

Change-ID: I10d52bb97d8104d76255fe244551814ff9531a63
Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent dc762120
...@@ -330,22 +330,6 @@ static int i40e_add_del_fdir_tcpv4(struct i40e_vsi *vsi, ...@@ -330,22 +330,6 @@ static int i40e_add_del_fdir_tcpv4(struct i40e_vsi *vsi,
return err ? -EOPNOTSUPP : 0; return err ? -EOPNOTSUPP : 0;
} }
/**
* i40e_add_del_fdir_sctpv4 - Add/Remove SCTPv4 Flow Director filters for
* a specific flow spec
* @vsi: pointer to the targeted VSI
* @fd_data: the flow director data required for the FDir descriptor
* @add: true adds a filter, false removes it
*
* Returns 0 if the filters were successfully added or removed
**/
static int i40e_add_del_fdir_sctpv4(struct i40e_vsi *vsi,
struct i40e_fdir_filter *fd_data,
bool add)
{
return -EOPNOTSUPP;
}
#define I40E_IP_DUMMY_PACKET_LEN 34 #define I40E_IP_DUMMY_PACKET_LEN 34
/** /**
* i40e_add_del_fdir_ipv4 - Add/Remove IPv4 Flow Director filters for * i40e_add_del_fdir_ipv4 - Add/Remove IPv4 Flow Director filters for
...@@ -428,12 +412,6 @@ int i40e_add_del_fdir(struct i40e_vsi *vsi, ...@@ -428,12 +412,6 @@ int i40e_add_del_fdir(struct i40e_vsi *vsi,
case UDP_V4_FLOW: case UDP_V4_FLOW:
ret = i40e_add_del_fdir_udpv4(vsi, input, add); ret = i40e_add_del_fdir_udpv4(vsi, input, add);
break; break;
case SCTP_V4_FLOW:
ret = i40e_add_del_fdir_sctpv4(vsi, input, add);
break;
case IPV4_FLOW:
ret = i40e_add_del_fdir_ipv4(vsi, input, add);
break;
case IP_USER_FLOW: case IP_USER_FLOW:
switch (input->ip4_proto) { switch (input->ip4_proto) {
case IPPROTO_TCP: case IPPROTO_TCP:
...@@ -442,15 +420,16 @@ int i40e_add_del_fdir(struct i40e_vsi *vsi, ...@@ -442,15 +420,16 @@ int i40e_add_del_fdir(struct i40e_vsi *vsi,
case IPPROTO_UDP: case IPPROTO_UDP:
ret = i40e_add_del_fdir_udpv4(vsi, input, add); ret = i40e_add_del_fdir_udpv4(vsi, input, add);
break; break;
case IPPROTO_SCTP: case IPPROTO_IP:
ret = i40e_add_del_fdir_sctpv4(vsi, input, add);
break;
default:
ret = i40e_add_del_fdir_ipv4(vsi, input, add); ret = i40e_add_del_fdir_ipv4(vsi, input, add);
break; break;
default:
/* We cannot support masking based on protocol */
goto unsupported_flow;
} }
break; break;
default: default:
unsupported_flow:
dev_info(&pf->pdev->dev, "Could not specify spec type %d\n", dev_info(&pf->pdev->dev, "Could not specify spec type %d\n",
input->flow_type); input->flow_type);
ret = -EINVAL; ret = -EINVAL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment