From: dpdklab@iol.unh.edu
To: test-report@dpdk.org
Cc: dpdk-test-reports@iol.unh.edu
Subject: [dpdk-test-report] |WARNING| pw95451-95454 [PATCH] [v1, 4/4] doc: update iavf driver FDIR/RSS for GTPoGRE
Date: Wed, 7 Jul 2021 07:44:06 -0400 (EDT) [thread overview]
Message-ID: <20210707114406.B3B317D2A@noxus.dpdklab.iol.unh.edu> (raw)
[-- Attachment #1: Type: text/plain, Size: 6983 bytes --]
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/95451
_apply patch failure_
Submitter: Lingyu Liu <lingyu.liu@intel.com>
Date: Wednesday, July 07 2021 12:57:53
Applied on: CommitID:2508c18cff9ffb217ac40e44071dc2762d257f31
Apply patch set 95451-95454 failed:
Checking patch drivers/net/iavf/iavf_hash.c...
error: while searching for:
#define IAVF_PHINT_OUTER_IPV4 BIT_ULL(4)
#define IAVF_PHINT_OUTER_IPV6 BIT_ULL(5)
#define IAVF_PHINT_GRE BIT_ULL(6)
#define IAVF_PHINT_GTPU_MSK (IAVF_PHINT_GTPU | \
IAVF_PHINT_GTPU_EH | \
error: patch failed: drivers/net/iavf/iavf_hash.c:31
Hunk #2 succeeded at 232 (offset -4 lines).
Hunk #3 succeeded at 444 (offset -4 lines).
Hunk #4 succeeded at 500 (offset -10 lines).
error: while searching for:
case RTE_FLOW_ITEM_TYPE_IPV4:
if (!(*phint & IAVF_PHINT_GTPU_MSK) && !(*phint & IAVF_PHINT_GRE))
*phint |= IAVF_PHINT_OUTER_IPV4;
break;
case RTE_FLOW_ITEM_TYPE_IPV6:
if (!(*phint & IAVF_PHINT_GTPU_MSK) && !(*phint & IAVF_PHINT_GRE))
*phint |= IAVF_PHINT_OUTER_IPV6;
break;
case RTE_FLOW_ITEM_TYPE_GTPU:
*phint |= IAVF_PHINT_GTPU;
error: patch failed: drivers/net/iavf/iavf_hash.c:607
error: while searching for:
struct virtchnl_proto_hdr *hdr1;
struct virtchnl_proto_hdr *hdr2;
int i, shift_count = 1;
if (!(phint & IAVF_PHINT_GTPU_MSK) && !(phint & IAVF_PHINT_GRE))
return;
if (phint & IAVF_PHINT_LAYERS_MSK)
shift_count++;
if (proto_hdrs->tunnel_level == TUNNEL_LEVEL_INNER) {
/* shift headers layer */
for (i = proto_hdrs->count - 1 + shift_count;
i > shift_count - 1; i--) {
error: patch failed: drivers/net/iavf/iavf_hash.c:881
error: while searching for:
hdr2 = &proto_hdrs->proto_hdr[0];
hdr2->field_selector = 0;
proto_hdrs->count++;
proto_hdrs->tunnel_level = TUNNEL_LEVEL_OUTER;
if (phint & IAVF_PHINT_OUTER_IPV4)
VIRTCHNL_SET_PROTO_HDR_TYPE(hdr2, IPV4);
else if (phint & IAVF_PHINT_OUTER_IPV6)
VIRTCHNL_SET_PROTO_HDR_TYPE(hdr2, IPV6);
}
} else {
hdr1 = &proto_hdrs->proto_hdr[proto_hdrs->count];
}
hdr1->field_selector = 0;
proto_hdrs->count++;
if (phint & IAVF_PHINT_GTPU_EH_DWN)
VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_EH_PDU_DWN);
else if (phint & IAVF_PHINT_GTPU_EH_UP)
VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_EH_PDU_UP);
else if (phint & IAVF_PHINT_GTPU_EH)
VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_EH);
else if (phint & IAVF_PHINT_GTPU)
VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_IP);
else if (phint & IAVF_PHINT_GRE)
VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GRE);
}
static void iavf_refine_proto_hdrs(struct virtchnl_proto_hdrs *proto_hdrs,
error: patch failed: drivers/net/iavf/iavf_hash.c:906
Applying patch drivers/net/iavf/iavf_hash.c with 4 rejects...
Rejected hunk #1.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Rejected hunk #5.
Rejected hunk #6.
Rejected hunk #7.
diff a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c (rejected hunks)
@@ -31,6 +31,9 @@
#define IAVF_PHINT_OUTER_IPV4 BIT_ULL(4)
#define IAVF_PHINT_OUTER_IPV6 BIT_ULL(5)
#define IAVF_PHINT_GRE BIT_ULL(6)
+/* the second IP header of GTPoGRE */
+#define IAVF_PHINT_MID_IPV4 BIT_ULL(7)
+#define IAVF_PHINT_MID_IPV6 BIT_ULL(8)
#define IAVF_PHINT_GTPU_MSK (IAVF_PHINT_GTPU | \
IAVF_PHINT_GTPU_EH | \
@@ -607,10 +682,14 @@ iavf_hash_parse_pattern(const struct rte_flow_item pattern[], uint64_t *phint,
case RTE_FLOW_ITEM_TYPE_IPV4:
if (!(*phint & IAVF_PHINT_GTPU_MSK) && !(*phint & IAVF_PHINT_GRE))
*phint |= IAVF_PHINT_OUTER_IPV4;
+ if ((*phint & IAVF_PHINT_GRE) && !(*phint & IAVF_PHINT_GTPU_MSK))
+ *phint |= IAVF_PHINT_MID_IPV4;
break;
case RTE_FLOW_ITEM_TYPE_IPV6:
if (!(*phint & IAVF_PHINT_GTPU_MSK) && !(*phint & IAVF_PHINT_GRE))
*phint |= IAVF_PHINT_OUTER_IPV6;
+ if ((*phint & IAVF_PHINT_GRE) && !(*phint & IAVF_PHINT_GTPU_MSK))
+ *phint |= IAVF_PHINT_MID_IPV6;
break;
case RTE_FLOW_ITEM_TYPE_GTPU:
*phint |= IAVF_PHINT_GTPU;
@@ -881,14 +960,15 @@ iavf_refine_proto_hdrs_by_pattern(struct virtchnl_proto_hdrs *proto_hdrs,
struct virtchnl_proto_hdr *hdr1;
struct virtchnl_proto_hdr *hdr2;
int i, shift_count = 1;
+ int tun_lvl = proto_hdrs->tunnel_level;
if (!(phint & IAVF_PHINT_GTPU_MSK) && !(phint & IAVF_PHINT_GRE))
return;
- if (phint & IAVF_PHINT_LAYERS_MSK)
- shift_count++;
+ while (tun_lvl) {
+ if (phint & IAVF_PHINT_LAYERS_MSK)
+ shift_count = 2;
- if (proto_hdrs->tunnel_level == TUNNEL_LEVEL_INNER) {
/* shift headers layer */
for (i = proto_hdrs->count - 1 + shift_count;
i > shift_count - 1; i--) {
@@ -906,30 +986,44 @@ iavf_refine_proto_hdrs_by_pattern(struct virtchnl_proto_hdrs *proto_hdrs,
hdr2 = &proto_hdrs->proto_hdr[0];
hdr2->field_selector = 0;
proto_hdrs->count++;
- proto_hdrs->tunnel_level = TUNNEL_LEVEL_OUTER;
+ tun_lvl--;
+
+ if (tun_lvl == TUNNEL_LEVEL_OUTER) {
+ if (phint & IAVF_PHINT_OUTER_IPV4)
+ VIRTCHNL_SET_PROTO_HDR_TYPE(hdr2, IPV4);
+ else if (phint & IAVF_PHINT_OUTER_IPV6)
+ VIRTCHNL_SET_PROTO_HDR_TYPE(hdr2, IPV6);
+ } else if (tun_lvl == TUNNEL_LEVEL_INNER) {
+ if (phint & IAVF_PHINT_MID_IPV4)
+ VIRTCHNL_SET_PROTO_HDR_TYPE(hdr2, IPV4);
+ else if (phint & IAVF_PHINT_MID_IPV6)
+ VIRTCHNL_SET_PROTO_HDR_TYPE(hdr2, IPV6);
+ }
+ }
- if (phint & IAVF_PHINT_OUTER_IPV4)
- VIRTCHNL_SET_PROTO_HDR_TYPE(hdr2, IPV4);
- else if (phint & IAVF_PHINT_OUTER_IPV6)
- VIRTCHNL_SET_PROTO_HDR_TYPE(hdr2, IPV6);
+ hdr1->field_selector = 0;
+ proto_hdrs->count++;
+
+ if (phint & IAVF_PHINT_GTPU_EH_DWN)
+ VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_EH_PDU_DWN);
+ else if (phint & IAVF_PHINT_GTPU_EH_UP)
+ VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_EH_PDU_UP);
+ else if (phint & IAVF_PHINT_GTPU_EH)
+ VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_EH);
+ else if (phint & IAVF_PHINT_GTPU)
+ VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_IP);
+
+ if (phint & IAVF_PHINT_GRE) {
+ if (phint & IAVF_PHINT_GTPU) {
+ /* if GTPoGRE, add GRE header at the outer tunnel */
+ if (tun_lvl == TUNNEL_LEVEL_OUTER)
+ VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GRE);
+ } else {
+ VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GRE);
+ }
}
- } else {
- hdr1 = &proto_hdrs->proto_hdr[proto_hdrs->count];
}
-
- hdr1->field_selector = 0;
- proto_hdrs->count++;
-
- if (phint & IAVF_PHINT_GTPU_EH_DWN)
- VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_EH_PDU_DWN);
- else if (phint & IAVF_PHINT_GTPU_EH_UP)
- VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_EH_PDU_UP);
- else if (phint & IAVF_PHINT_GTPU_EH)
- VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_EH);
- else if (phint & IAVF_PHINT_GTPU)
- VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GTPU_IP);
- else if (phint & IAVF_PHINT_GRE)
- VIRTCHNL_SET_PROTO_HDR_TYPE(hdr1, GRE);
+ proto_hdrs->tunnel_level = tun_lvl;
}
static void iavf_refine_proto_hdrs(struct virtchnl_proto_hdrs *proto_hdrs,
https://lab.dpdk.org/results/dashboard/patchsets/17696/
UNH-IOL DPDK Community Lab
reply other threads:[~2021-07-07 11:44 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210707114406.B3B317D2A@noxus.dpdklab.iol.unh.edu \
--to=dpdklab@iol.unh.edu \
--cc=dpdk-test-reports@iol.unh.edu \
--cc=test-report@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).