提交 04b73bd7 编写于 作者: A Anjali Singhai Jain 提交者: Jeff Kirsher

i40e: Change the notion of src and dst for FD_SB in ethtool

In XL710 devices we program FD filter's fields from Tx perspective of the flow.
However the user interface exposed in ethtool should be compliant with the
previous generation of drivers where a filter src and dst field are from
the RX perspective. This patch changes the ethtool interface in this regard
to match the other drivers.

Change-ID: Iec6ccddd87357c4fb53ccf33aa0fae699faf70cf
Signed-off-by: NAnjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
上级 f94234ee
...@@ -159,6 +159,7 @@ struct i40e_fdir_filter { ...@@ -159,6 +159,7 @@ struct i40e_fdir_filter {
/* filter ipnut set */ /* filter ipnut set */
u8 flow_type; u8 flow_type;
u8 ip4_proto; u8 ip4_proto;
/* TX packet view of src and dst */
__be32 dst_ip[4]; __be32 dst_ip[4];
__be32 src_ip[4]; __be32 src_ip[4];
__be16 src_port; __be16 src_port;
......
...@@ -1249,10 +1249,13 @@ static int i40e_get_ethtool_fdir_entry(struct i40e_pf *pf, ...@@ -1249,10 +1249,13 @@ static int i40e_get_ethtool_fdir_entry(struct i40e_pf *pf,
fsp->m_u.usr_ip4_spec.proto = 0; fsp->m_u.usr_ip4_spec.proto = 0;
} }
fsp->h_u.tcp_ip4_spec.psrc = rule->src_port; /* Reverse the src and dest notion, since the HW views them from
fsp->h_u.tcp_ip4_spec.pdst = rule->dst_port; * Tx perspective where as the user expects it from Rx filter view.
fsp->h_u.tcp_ip4_spec.ip4src = rule->src_ip[0]; */
fsp->h_u.tcp_ip4_spec.ip4dst = rule->dst_ip[0]; fsp->h_u.tcp_ip4_spec.psrc = rule->dst_port;
fsp->h_u.tcp_ip4_spec.pdst = rule->src_port;
fsp->h_u.tcp_ip4_spec.ip4src = rule->dst_ip[0];
fsp->h_u.tcp_ip4_spec.ip4dst = rule->src_ip[0];
fsp->ring_cookie = rule->q_index; fsp->ring_cookie = rule->q_index;
return 0; return 0;
...@@ -1581,10 +1584,14 @@ static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi, ...@@ -1581,10 +1584,14 @@ static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi,
input->cnt_index = 0; input->cnt_index = 0;
input->flow_type = fsp->flow_type; input->flow_type = fsp->flow_type;
input->ip4_proto = fsp->h_u.usr_ip4_spec.proto; input->ip4_proto = fsp->h_u.usr_ip4_spec.proto;
input->src_port = fsp->h_u.tcp_ip4_spec.psrc;
input->dst_port = fsp->h_u.tcp_ip4_spec.pdst; /* Reverse the src and dest notion, since the HW expects them to be from
input->src_ip[0] = fsp->h_u.tcp_ip4_spec.ip4src; * Tx perspective where as the input from user is from Rx filter view.
input->dst_ip[0] = fsp->h_u.tcp_ip4_spec.ip4dst; */
input->dst_port = fsp->h_u.tcp_ip4_spec.psrc;
input->src_port = fsp->h_u.tcp_ip4_spec.pdst;
input->dst_ip[0] = fsp->h_u.tcp_ip4_spec.ip4src;
input->src_ip[0] = fsp->h_u.tcp_ip4_spec.ip4dst;
ret = i40e_add_del_fdir(vsi, input, true); ret = i40e_add_del_fdir(vsi, input, true);
if (ret) if (ret)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册