From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: Andrew Rybchenko <arybchenko@solarflare.com>
Cc: dev@dpdk.org, Jingjing Wu <jingjing.wu@intel.com>,
Roman Zhukov <Roman.Zhukov@oktetlabs.ru>
Subject: Re: [PATCH 2/2] app/testpmd: support GENEVE pattern item in flow rules
Date: Thu, 23 Nov 2017 10:40:15 +0100 [thread overview]
Message-ID: <20171123094015.GI4062@6wind.com> (raw)
In-Reply-To: <1511166121-743-3-git-send-email-arybchenko@solarflare.com>
On Mon, Nov 20, 2017 at 08:22:01AM +0000, Andrew Rybchenko wrote:
> From: Roman Zhukov <Roman.Zhukov@oktetlabs.ru>
>
> Add the ability to match a VNI field of GENEVE protocol header.
>
> Signed-off-by: Roman Zhukov <Roman.Zhukov@oktetlabs.ru>
> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Same comments as previously basically, keep the same order as rte_flow.h
after fixing the ABI breakage.
One minor comment below.
> ---
> app/test-pmd/cmdline_flow.c | 31 +++++++++++++++++++++++++++++
> app/test-pmd/config.c | 1 +
> doc/guides/testpmd_app_ug/testpmd_funcs.rst | 5 +++++
> 3 files changed, 37 insertions(+)
>
> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
> index df16d2a..cee99f3 100644
> --- a/app/test-pmd/cmdline_flow.c
> +++ b/app/test-pmd/cmdline_flow.c
> @@ -161,6 +161,9 @@ enum index {
> ITEM_SCTP_CKSUM,
> ITEM_VXLAN,
> ITEM_VXLAN_VNI,
> + ITEM_GENEVE,
> + ITEM_GENEVE_VNI,
> + ITEM_GENEVE_PROTO,
> ITEM_E_TAG,
> ITEM_E_TAG_GRP_ECID_B,
> ITEM_NVGRE,
> @@ -452,6 +455,7 @@ static const enum index next_item[] = {
> ITEM_TCP,
> ITEM_SCTP,
> ITEM_VXLAN,
> + ITEM_GENEVE,
> ITEM_E_TAG,
> ITEM_NVGRE,
> ITEM_MPLS,
> @@ -573,6 +577,13 @@ static const enum index item_vxlan[] = {
> ZERO,
> };
>
> +static const enum index item_geneve[] = {
> + ITEM_GENEVE_VNI,
> + ITEM_GENEVE_PROTO,
> + ITEM_NEXT,
> + ZERO,
> +};
> +
> static const enum index item_e_tag[] = {
> ITEM_E_TAG_GRP_ECID_B,
> ITEM_NEXT,
> @@ -1371,6 +1382,26 @@ static const struct token token_list[] = {
> .next = NEXT(item_vxlan, NEXT_ENTRY(UNSIGNED), item_param),
> .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan, vni)),
> },
> + [ITEM_GENEVE] = {
> + .name = "geneve",
> + .help = "match GENEVE header",
> + .priv = PRIV_ITEM(GENEVE, sizeof(struct rte_flow_item_geneve)),
> + .next = NEXT(item_geneve),
> + .call = parse_vc,
> + },
> + [ITEM_GENEVE_VNI] = {
> + .name = "vni",
> + .help = "Virtual Network Identifier",
How about "virtual network identifier" (all lower caps)?
> + .next = NEXT(item_geneve, NEXT_ENTRY(UNSIGNED), item_param),
> + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_geneve, vni)),
> + },
> + [ITEM_GENEVE_PROTO] = {
> + .name = "protocol",
> + .help = "GENEVE protocol type",
> + .next = NEXT(item_geneve, NEXT_ENTRY(UNSIGNED), item_param),
> + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_geneve,
> + protocol)),
> + },
> [ITEM_E_TAG] = {
> .name = "e_tag",
> .help = "match E-Tag header",
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index cd2ac11..4eda37f 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -965,6 +965,7 @@ static const struct {
> MK_FLOW_ITEM(TCP, sizeof(struct rte_flow_item_tcp)),
> MK_FLOW_ITEM(SCTP, sizeof(struct rte_flow_item_sctp)),
> MK_FLOW_ITEM(VXLAN, sizeof(struct rte_flow_item_vxlan)),
> + MK_FLOW_ITEM(GENEVE, sizeof(struct rte_flow_item_geneve)),
> MK_FLOW_ITEM(E_TAG, sizeof(struct rte_flow_item_e_tag)),
> MK_FLOW_ITEM(NVGRE, sizeof(struct rte_flow_item_nvgre)),
> MK_FLOW_ITEM(MPLS, sizeof(struct rte_flow_item_mpls)),
> diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> index 9789139..8c2fd12 100644
> --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> @@ -3083,6 +3083,11 @@ This section lists supported pattern items and their attributes, if any.
>
> - ``vni {unsigned}``: VXLAN identifier.
>
> +- ``geneve``: match GENEVE header.
> +
> + - ``vni {unsigned}``: virtual network identifier.
> + - ``protocol {unsigned}``: protocol type.
> +
> - ``e_tag``: match IEEE 802.1BR E-Tag header.
>
> - ``grp_ecid_b {unsigned}``: GRP and E-CID base.
> --
> 2.7.4
>
--
Adrien Mazarguil
6WIND
next prev parent reply other threads:[~2017-11-23 9:40 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-20 8:21 [PATCH 0/2] ethdev: add GENEVE to flow API Andrew Rybchenko
2017-11-20 8:22 ` [PATCH 1/2] ethdev: add GENEVE flow pattern item Andrew Rybchenko
2017-11-23 9:39 ` Adrien Mazarguil
2017-11-20 8:22 ` [PATCH 2/2] app/testpmd: support GENEVE pattern item in flow rules Andrew Rybchenko
2017-11-23 9:40 ` Adrien Mazarguil [this message]
2017-11-23 9:39 ` [PATCH 0/2] ethdev: add GENEVE to flow API Adrien Mazarguil
2017-11-23 10:07 ` Andrew Rybchenko
2017-12-01 10:43 ` [PATCH v2 " Andrew Rybchenko
2017-12-01 10:43 ` [PATCH v2 1/2] ethdev: add GENEVE flow pattern item Andrew Rybchenko
2017-12-04 14:03 ` Adrien Mazarguil
2017-12-07 23:52 ` Ferruh Yigit
2017-12-08 10:52 ` Adrien Mazarguil
2017-12-08 19:06 ` Ferruh Yigit
2017-12-01 10:43 ` [PATCH v2 2/2] app/testpmd: support GENEVE pattern item in flow rules Andrew Rybchenko
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=20171123094015.GI4062@6wind.com \
--to=adrien.mazarguil@6wind.com \
--cc=Roman.Zhukov@oktetlabs.ru \
--cc=arybchenko@solarflare.com \
--cc=dev@dpdk.org \
--cc=jingjing.wu@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.