* [dpdk-test-report] |WARNING| pw101946-101948 [PATCH] [v4, 3/3] app/testpmd: support L2TPV2 and PPP protocol pattern
@ 2021-10-18 19:09 dpdklab
0 siblings, 0 replies; only message in thread
From: dpdklab @ 2021-10-18 19:09 UTC (permalink / raw)
To: test-report; +Cc: dpdk-test-reports
[-- Attachment #1: Type: text/plain, Size: 11959 bytes --]
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/101946
_apply patch failure_
Submitter: Jie Wang <jie1x.wang@intel.com>
Date: Monday, October 18 2021 09:33:52
Applied on: CommitID:9942ebb9c698a53b86e2bbd450f3e24238771fe5
Apply patch set 101946-101948 failed:
Checking patch doc/guides/prog_guide/rte_flow.rst...
error: while searching for:
See also `Action: REPRESENTED_PORT`_.
Actions
~~~~~~~
error: patch failed: doc/guides/prog_guide/rte_flow.rst:1548
Checking patch doc/guides/rel_notes/release_21_11.rst...
error: while searching for:
Added an ethdev API which can help users get device configuration.
* **Updated AF_XDP PMD.**
* Disabled secondary process support.
error: patch failed: doc/guides/rel_notes/release_21_11.rst:98
Checking patch lib/ethdev/rte_flow.c...
error: while searching for:
MK_FLOW_ITEM(CONNTRACK, sizeof(uint32_t)),
MK_FLOW_ITEM(PORT_REPRESENTOR, sizeof(struct rte_flow_item_ethdev)),
MK_FLOW_ITEM(REPRESENTED_PORT, sizeof(struct rte_flow_item_ethdev)),
};
/** Generate flow_action[] entry. */
error: patch failed: lib/ethdev/rte_flow.c:102
Checking patch lib/ethdev/rte_flow.h...
error: while searching for:
* @see struct rte_flow_item_ethdev
*/
RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT,
};
/**
error: patch failed: lib/ethdev/rte_flow.h:635
Hunk #3 succeeded at 1801 (offset -107 lines).
Checking patch lib/net/rte_l2tpv2.h...
Checking patch lib/net/rte_ppp.h...
Applying patch doc/guides/prog_guide/rte_flow.rst with 1 reject...
Rejected hunk #1.
Applying patch doc/guides/rel_notes/release_21_11.rst with 1 reject...
Rejected hunk #1.
Applying patch lib/ethdev/rte_flow.c with 1 reject...
Rejected hunk #1.
Applying patch lib/ethdev/rte_flow.h with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
Hunk #3 applied cleanly.
Applied patch lib/net/rte_l2tpv2.h cleanly.
Applied patch lib/net/rte_ppp.h cleanly.
diff a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst (rejected hunks)
@@ -1548,6 +1548,31 @@ This item is meant to use the same structure as `Item: PORT_REPRESENTOR`_.
See also `Action: REPRESENTED_PORT`_.
+Item: ``L2TPV2``
+^^^^^^^^^^^^^^^^^^^
+
+Matches a L2TPv2 header.
+
+- ``flags_version``: flags(12b), version(4b).
+- ``length``: total length of the message.
+- ``tunnel_id``: identifier for the control connection.
+- ``session_id``: identifier for a session within a tunnel.
+- ``ns``: sequence number for this date or control message.
+- ``nr``: sequence number expected in the next control message to be received.
+- ``offset_size``: offset of payload data.
+- ``offset_padding``: offset padding, variable length.
+- Default ``mask`` matches flags_version only.
+
+Item: ``PPP``
+^^^^^^^^^^^^^^^^^^^
+
+Matches a PPP header.
+
+- ``addr``: ppp address.
+- ``ctrl``: ppp control.
+- ``proto_id``: ppp protocol identifier.
+- Default ``mask`` matches addr, ctrl, proto_id.
+
Actions
~~~~~~~
diff a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst (rejected hunks)
@@ -98,6 +98,11 @@ New Features
Added an ethdev API which can help users get device configuration.
+* **Added L2TPV2 and PPP protocol support in rte_flow.**
+
+ Added flow pattern items and header formats of L2TPv2 and PPP to support
+ PPP over L2TPv2 over UDP protocol RSS Hash.
+
* **Updated AF_XDP PMD.**
* Disabled secondary process support.
diff a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c (rejected hunks)
@@ -102,6 +102,8 @@ static const struct rte_flow_desc_data rte_flow_desc_item[] = {
MK_FLOW_ITEM(CONNTRACK, sizeof(uint32_t)),
MK_FLOW_ITEM(PORT_REPRESENTOR, sizeof(struct rte_flow_item_ethdev)),
MK_FLOW_ITEM(REPRESENTED_PORT, sizeof(struct rte_flow_item_ethdev)),
+ MK_FLOW_ITEM(L2TPV2, sizeof(struct rte_flow_item_l2tpv2)),
+ MK_FLOW_ITEM(PPP, sizeof(struct rte_flow_item_ppp)),
};
/** Generate flow_action[] entry. */
diff a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h (rejected hunks)
@@ -635,6 +637,21 @@ enum rte_flow_item_type {
* @see struct rte_flow_item_ethdev
*/
RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT,
+
+ /**
+ * Matches L2TPV2 Header.
+ *
+ * See struct rte_flow_item_l2tpv2.
+ */
+ RTE_FLOW_ITEM_TYPE_L2TPV2,
+
+ /**
+ * Matches PPP Header.
+ *
+ * See struct rte_flow_item_ppp.
+ */
+ RTE_FLOW_ITEM_TYPE_PPP,
+
};
/**
Checking patch app/test-pmd/cmdline_flow.c...
error: while searching for:
ITEM_PORT_REPRESENTOR_PORT_ID,
ITEM_REPRESENTED_PORT,
ITEM_REPRESENTED_PORT_ETHDEV_PORT_ID,
/* Validate/create actions. */
ACTIONS,
error: patch failed: app/test-pmd/cmdline_flow.c:310
error: while searching for:
ITEM_CONNTRACK,
ITEM_PORT_REPRESENTOR,
ITEM_REPRESENTED_PORT,
END_SET,
ZERO,
};
error: patch failed: app/test-pmd/cmdline_flow.c:1018
Hunk #3 succeeded at 1368 (offset -49 lines).
Hunk #4 succeeded at 1762 (offset -63 lines).
error: while searching for:
item_param),
.args = ARGS(ARGS_ENTRY(struct rte_flow_item_ethdev, port_id)),
},
/* Validate/create actions. */
[ACTIONS] = {
.name = "actions",
error: patch failed: app/test-pmd/cmdline_flow.c:3682
Hunk #6 succeeded at 5483 (offset -280 lines).
error: while searching for:
case RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT:
mask = &rte_flow_item_ethdev_mask;
break;
default:
break;
}
error: patch failed: app/test-pmd/cmdline_flow.c:8461
Applying patch app/test-pmd/cmdline_flow.c with 4 rejects...
Rejected hunk #1.
Rejected hunk #2.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Rejected hunk #5.
Hunk #6 applied cleanly.
Rejected hunk #7.
diff a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c (rejected hunks)
@@ -310,6 +310,23 @@ enum index {
ITEM_PORT_REPRESENTOR_PORT_ID,
ITEM_REPRESENTED_PORT,
ITEM_REPRESENTED_PORT_ETHDEV_PORT_ID,
+ ITEM_L2TPV2,
+ ITEM_L2TPV2_COMMON,
+ ITEM_L2TPV2_COMMON_TYPE,
+ ITEM_L2TPV2_COMMON_TYPE_DATA_L,
+ ITEM_L2TPV2_COMMON_TYPE_CTRL,
+ ITEM_L2TPV2_MSG_DATA_L_LENGTH,
+ ITEM_L2TPV2_MSG_DATA_L_TUNNEL_ID,
+ ITEM_L2TPV2_MSG_DATA_L_SESSION_ID,
+ ITEM_L2TPV2_MSG_CTRL_LENGTH,
+ ITEM_L2TPV2_MSG_CTRL_TUNNEL_ID,
+ ITEM_L2TPV2_MSG_CTRL_SESSION_ID,
+ ITEM_L2TPV2_MSG_CTRL_NS,
+ ITEM_L2TPV2_MSG_CTRL_NR,
+ ITEM_PPP,
+ ITEM_PPP_ADDR,
+ ITEM_PPP_CTRL,
+ ITEM_PPP_PROTO_ID,
/* Validate/create actions. */
ACTIONS,
@@ -1018,6 +1035,8 @@ static const enum index next_item[] = {
ITEM_CONNTRACK,
ITEM_PORT_REPRESENTOR,
ITEM_REPRESENTED_PORT,
+ ITEM_L2TPV2,
+ ITEM_PPP,
END_SET,
ZERO,
};
@@ -3682,6 +3729,153 @@ static const struct token token_list[] = {
item_param),
.args = ARGS(ARGS_ENTRY(struct rte_flow_item_ethdev, port_id)),
},
+ [ITEM_L2TPV2] = {
+ .name = "l2tpv2",
+ .help = "match l2tpv2 header",
+ .priv = PRIV_ITEM(L2TPV2, sizeof(struct rte_flow_item_l2tpv2)),
+ .next = NEXT(item_l2tpv2),
+ .call = parse_vc,
+ },
+ [ITEM_L2TPV2_COMMON] = {
+ .name = "common",
+ .help = "l2tpv2 common header",
+ .next = NEXT(item_l2tpv2_common),
+ },
+ [ITEM_L2TPV2_COMMON_TYPE] = {
+ .name = "type",
+ .help = "type of common header",
+ .next = NEXT(item_l2tpv2_common_type),
+ .args = ARGS(ARG_ENTRY_HTON(struct rte_flow_item_l2tpv2)),
+ },
+ [ITEM_L2TPV2_COMMON_TYPE_DATA_L] = {
+ .name = "data_l",
+ .help = "Type #6: data message with length option",
+ .next = NEXT(NEXT_ENTRY(ITEM_L2TPV2_MSG_DATA_L_LENGTH,
+ ITEM_L2TPV2_MSG_DATA_L_TUNNEL_ID,
+ ITEM_L2TPV2_MSG_DATA_L_SESSION_ID,
+ ITEM_NEXT)),
+ .call = parse_vc_item_l2tpv2_type,
+ },
+ [ITEM_L2TPV2_MSG_DATA_L_LENGTH] = {
+ .name = "length",
+ .help = "message length",
+ .next = NEXT(NEXT_ENTRY(ITEM_L2TPV2_MSG_DATA_L_LENGTH,
+ ITEM_L2TPV2_COMMON, ITEM_NEXT),
+ NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_l2tpv2,
+ hdr.type6.length)),
+ },
+ [ITEM_L2TPV2_MSG_DATA_L_TUNNEL_ID] = {
+ .name = "tunnel_id",
+ .help = "tunnel identifier",
+ .next = NEXT(NEXT_ENTRY(ITEM_L2TPV2_MSG_DATA_L_TUNNEL_ID,
+ ITEM_L2TPV2_COMMON, ITEM_NEXT),
+ NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_l2tpv2,
+ hdr.type6.tunnel_id)),
+ },
+ [ITEM_L2TPV2_MSG_DATA_L_SESSION_ID] = {
+ .name = "session_id",
+ .help = "session identifier",
+ .next = NEXT(NEXT_ENTRY(ITEM_L2TPV2_MSG_DATA_L_SESSION_ID,
+ ITEM_L2TPV2_COMMON, ITEM_NEXT),
+ NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_l2tpv2,
+ hdr.type6.session_id)),
+ },
+ [ITEM_L2TPV2_COMMON_TYPE_CTRL] = {
+ .name = "control",
+ .help = "Type #3: conrtol message contains length, ns, nr options",
+ .next = NEXT(NEXT_ENTRY(ITEM_L2TPV2_MSG_CTRL_LENGTH,
+ ITEM_L2TPV2_MSG_CTRL_TUNNEL_ID,
+ ITEM_L2TPV2_MSG_CTRL_SESSION_ID,
+ ITEM_L2TPV2_MSG_CTRL_NS,
+ ITEM_L2TPV2_MSG_CTRL_NR,
+ ITEM_NEXT)),
+ .call = parse_vc_item_l2tpv2_type,
+ },
+ [ITEM_L2TPV2_MSG_CTRL_LENGTH] = {
+ .name = "length",
+ .help = "message length",
+ .next = NEXT(NEXT_ENTRY(ITEM_L2TPV2_MSG_CTRL_LENGTH,
+ ITEM_L2TPV2_COMMON, ITEM_NEXT),
+ NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_l2tpv2,
+ hdr.type3.length)),
+ },
+ [ITEM_L2TPV2_MSG_CTRL_TUNNEL_ID] = {
+ .name = "tunnel_id",
+ .help = "tunnel identifier",
+ .next = NEXT(NEXT_ENTRY(ITEM_L2TPV2_MSG_CTRL_TUNNEL_ID,
+ ITEM_L2TPV2_COMMON, ITEM_NEXT),
+ NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_l2tpv2,
+ hdr.type3.tunnel_id)),
+ },
+ [ITEM_L2TPV2_MSG_CTRL_SESSION_ID] = {
+ .name = "session_id",
+ .help = "session identifier",
+ .next = NEXT(NEXT_ENTRY(ITEM_L2TPV2_MSG_CTRL_SESSION_ID,
+ ITEM_L2TPV2_COMMON, ITEM_NEXT),
+ NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_l2tpv2,
+ hdr.type3.session_id)),
+ },
+ [ITEM_L2TPV2_MSG_CTRL_NS] = {
+ .name = "ns",
+ .help = "sequence number for message",
+ .next = NEXT(NEXT_ENTRY(ITEM_L2TPV2_MSG_CTRL_NS,
+ ITEM_L2TPV2_COMMON, ITEM_NEXT),
+ NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_l2tpv2,
+ hdr.type3.ns)),
+ },
+ [ITEM_L2TPV2_MSG_CTRL_NR] = {
+ .name = "nr",
+ .help = "sequence number for next receive message",
+ .next = NEXT(NEXT_ENTRY(ITEM_L2TPV2_MSG_CTRL_NS,
+ ITEM_L2TPV2_COMMON, ITEM_NEXT),
+ NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_l2tpv2,
+ hdr.type3.nr)),
+ },
+ [ITEM_PPP] = {
+ .name = "ppp",
+ .help = "match ppp header",
+ .priv = PRIV_ITEM(PPP, sizeof(struct rte_flow_item_ppp)),
+ .next = NEXT(item_ppp),
+ .call = parse_vc,
+ },
+ [ITEM_PPP_ADDR] = {
+ .name = "addr",
+ .help = "ppp address",
+ .next = NEXT(item_ppp, NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY(struct rte_flow_item_ppp, hdr.addr)),
+ },
+ [ITEM_PPP_CTRL] = {
+ .name = "ctrl",
+ .help = "ppp control",
+ .next = NEXT(item_ppp, NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY(struct rte_flow_item_ppp, hdr.ctrl)),
+ },
+ [ITEM_PPP_PROTO_ID] = {
+ .name = "proto_id",
+ .help = "ppp protocol id",
+ .next = NEXT(item_ppp, NEXT_ENTRY(COMMON_UNSIGNED),
+ item_param),
+ .args = ARGS(ARGS_ENTRY(struct rte_flow_item_ppp,
+ hdr.proto_id)),
+ },
/* Validate/create actions. */
[ACTIONS] = {
.name = "actions",
@@ -8461,6 +8706,12 @@ flow_item_default_mask(const struct rte_flow_item *item)
case RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT:
mask = &rte_flow_item_ethdev_mask;
break;
+ case RTE_FLOW_ITEM_TYPE_L2TPV2:
+ mask = &rte_flow_item_l2tpv2_mask;
+ break;
+ case RTE_FLOW_ITEM_TYPE_PPP:
+ mask = &rte_flow_item_ppp_mask;
+ break;
default:
break;
}
https://lab.dpdk.org/results/dashboard/patchsets/19488/
UNH-IOL DPDK Community Lab
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-10-18 19:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-18 19:09 [dpdk-test-report] |WARNING| pw101946-101948 [PATCH] [v4, 3/3] app/testpmd: support L2TPV2 and PPP protocol pattern dpdklab
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).