[v2] net/ice/base: support L2 and L3 FDIR field for IP fragment packets

Message ID 20210803072354.1204898-1-wenjun1.wu@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series [v2] net/ice/base: support L2 and L3 FDIR field for IP fragment packets |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot success github build: passed

Commit Message

Wenjun Wu Aug. 3, 2021, 7:23 a.m. UTC
  Add L2 and L3 FDIR field support for IPv6 fragment packets.

Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>

---
v2: remove redundant IPv6 protocol field, because for IPv6 fragment packets, 
    this value should be fix.
---
 drivers/net/ice/base/ice_fdir.c | 7 +++++++
 1 file changed, 7 insertions(+)
  

Comments

Qi Zhang Aug. 29, 2021, 9:56 a.m. UTC | #1
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Wenjun Wu
> Sent: Tuesday, August 3, 2021 3:24 PM
> To: dev@dpdk.org; qiming.yang@intel.com--annotate
> Cc: Wu, Wenjun1 <wenjun1.wu@intel.com>
> Subject: [dpdk-dev] [PATCH v2] net/ice/base: support L2 and L3 FDIR field for IP
> fragment packets
> 
> Add L2 and L3 FDIR field support for IPv6 fragment packets.
> 
> Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
> 
> ---
> v2: remove redundant IPv6 protocol field, because for IPv6 fragment packets,
>     this value should be fix.
> ---
>  drivers/net/ice/base/ice_fdir.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/net/ice/base/ice_fdir.c b/drivers/net/ice/base/ice_fdir.c
> index 2e4770061d..43209263d3 100644
> --- a/drivers/net/ice/base/ice_fdir.c
> +++ b/drivers/net/ice/base/ice_fdir.c
> @@ -1958,6 +1958,13 @@ ice_fdir_get_gen_prgm_pkt(struct ice_hw *hw,
> struct ice_fdir_fltr *input,
>  		ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
>  		break;
>  	case ICE_FLTR_PTYPE_FRAG_IPV6:
> +		ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
> +					 input->ip.v6.src_ip);
> +		ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
> +					 input->ip.v6.dst_ip);
> +		ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
> +		ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
> +		ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
>  		ice_pkt_insert_u32(loc, ICE_IPV6_ID_OFFSET,
>  				   input->ip.v6.packet_id);
>  		break;
> --
> 2.25.1

Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi
  

Patch

diff --git a/drivers/net/ice/base/ice_fdir.c b/drivers/net/ice/base/ice_fdir.c
index 2e4770061d..43209263d3 100644
--- a/drivers/net/ice/base/ice_fdir.c
+++ b/drivers/net/ice/base/ice_fdir.c
@@ -1958,6 +1958,13 @@  ice_fdir_get_gen_prgm_pkt(struct ice_hw *hw, struct ice_fdir_fltr *input,
 		ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
 		break;
 	case ICE_FLTR_PTYPE_FRAG_IPV6:
+		ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,
+					 input->ip.v6.src_ip);
+		ice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,
+					 input->ip.v6.dst_ip);
+		ice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);
+		ice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);
+		ice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);
 		ice_pkt_insert_u32(loc, ICE_IPV6_ID_OFFSET,
 				   input->ip.v6.packet_id);
 		break;