From cfacca202fc2a794f13018472b053532ee264e95 Mon Sep 17 00:00:00 2001 From: Ting Xu Date: Sun, 25 Apr 2021 14:53:04 +0800 Subject: [PATCH] common/iavf: fix order of protocol header types The new virtchnl protocol header types for IPv4 and IPv6 fragment are not added in order, which will break ABI. Move them to the end of the list. Fixes: e6a42fd9158b ("common/iavf: add protocol header for IP fragment") Cc: stable@dpdk.org Signed-off-by: Ting Xu Acked-by: Qi Zhang --- drivers/common/iavf/README | 2 +- drivers/common/iavf/virtchnl.h | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/drivers/common/iavf/README b/drivers/common/iavf/README index 24e3fdee2a..611fdcea94 100644 --- a/drivers/common/iavf/README +++ b/drivers/common/iavf/README @@ -6,7 +6,7 @@ Intel® IAVF driver ================= This directory contains source code of FreeBSD IAVF driver of version -cid-avf.2021.01.12.tar.gz released by the team which develops +cid-avf.2021.04.29.tar.gz released by the team which develops basic drivers for any IAVF NIC. The directory of base/ contains the original source package. diff --git a/drivers/common/iavf/virtchnl.h b/drivers/common/iavf/virtchnl.h index 09d4c86550..3a60faff93 100644 --- a/drivers/common/iavf/virtchnl.h +++ b/drivers/common/iavf/virtchnl.h @@ -1481,9 +1481,7 @@ enum virtchnl_proto_hdr_type { VIRTCHNL_PROTO_HDR_S_VLAN, VIRTCHNL_PROTO_HDR_C_VLAN, VIRTCHNL_PROTO_HDR_IPV4, - VIRTCHNL_PROTO_HDR_IPV4_FRAG, VIRTCHNL_PROTO_HDR_IPV6, - VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG, VIRTCHNL_PROTO_HDR_TCP, VIRTCHNL_PROTO_HDR_UDP, VIRTCHNL_PROTO_HDR_SCTP, @@ -1500,6 +1498,12 @@ enum virtchnl_proto_hdr_type { VIRTCHNL_PROTO_HDR_ECPRI, VIRTCHNL_PROTO_HDR_L2TPV2, VIRTCHNL_PROTO_HDR_PPP, + /* IPv4 and IPv6 Fragment header types are only associated to + * VIRTCHNL_PROTO_HDR_IPV4 and VIRTCHNL_PROTO_HDR_IPV6 respectively, + * cannot be used independently. + */ + VIRTCHNL_PROTO_HDR_IPV4_FRAG, + VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG, }; /* Protocol header field within a protocol header. */ @@ -1522,8 +1526,6 @@ enum virtchnl_proto_hdr_field { VIRTCHNL_PROTO_HDR_IPV4_DSCP, VIRTCHNL_PROTO_HDR_IPV4_TTL, VIRTCHNL_PROTO_HDR_IPV4_PROT, - VIRTCHNL_PROTO_HDR_IPV4_FRAG_PKID = - PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_IPV4_FRAG), /* IPV6 */ VIRTCHNL_PROTO_HDR_IPV6_SRC = PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_IPV6), @@ -1544,9 +1546,6 @@ enum virtchnl_proto_hdr_field { VIRTCHNL_PROTO_HDR_IPV6_PREFIX64_DST, VIRTCHNL_PROTO_HDR_IPV6_PREFIX96_SRC, VIRTCHNL_PROTO_HDR_IPV6_PREFIX96_DST, - /* IPv6 Extension Header Fragment */ - VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG_PKID = - PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG), /* TCP */ VIRTCHNL_PROTO_HDR_TCP_SRC_PORT = PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_TCP), @@ -1589,6 +1588,12 @@ enum virtchnl_proto_hdr_field { VIRTCHNL_PROTO_HDR_ECPRI_MSG_TYPE = PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_ECPRI), VIRTCHNL_PROTO_HDR_ECPRI_PC_RTC_ID, + /* IPv4 Dummy Fragment */ + VIRTCHNL_PROTO_HDR_IPV4_FRAG_PKID = + PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_IPV4_FRAG), + /* IPv6 Extension Fragment */ + VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG_PKID = + PROTO_HDR_FIELD_START(VIRTCHNL_PROTO_HDR_IPV6_EH_FRAG), }; struct virtchnl_proto_hdr { -- 2.20.1