To match IPv6 fragment headers, we need a dedicated pattern item. The
generic RTE_FLOW_ITEM_TYPE_IPV6_EXT is useless for that on its own, it must
be completed with RTE_FLOW_ITEM_TYPE_IPV6_EXT_FRAG and associated object
to match individual fields if needed (like all the others
protocols/headers).
Then to reject a pattern item... My preference goes to a new "NOT" meta item
affecting the meaning of the item coming immediately after in the pattern
list. That would be ultra generic, wouldn't break any ABI/API and like
INVERT, wouldn't even require a new object associated with it.
To match UDPv6 traffic when there is no fragment header, one could then do
something like:
eth / ipv6 / not / ipv6_ext_frag / udp
PMD support would be trivial to implement (I'm sure!)
We may later implement other kinds of "operator" items as Andrew suggested,
for bit-wise stuff and so on. Let's keep adding features on a needed basis
though.
--
Adrien Mazarguil
6WIND
-off-by: Adrien Mazarguil
---
MAINTAINERS | 1 -
1 file changed, 1 deletion(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 96fc89dc48..7355d88c95 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -370,7 +370,6 @@ F: devtools/test-null.sh
F: doc/guides/prog_guide/switch_representation.rst
Flow
On Sun, Dec 29, 2019 at 08:56:58AM +, Ori Kam wrote:
> I volunteer to be co maintainer for the rte_flow lib.
>
> Signed-off-by: Ori Kam
Welcome :)
Acked-by: Adrien Mazarguil
--
Adrien Mazarguil
6WIND
ype (4b).
> + */
> + uint8_t v_t_flags;
v_t_flags => version_type
> + uint8_t code; /**< Message type. */
> + rte_be16_t session_id; /**< Session identifier. */
> + rte_be16_t length; /**< Payload length. */
> + rte_be16_t proto_id; /**< PPP Protocol identifier. */
As discussed, I suggest dropping proto_id to make this a generic match for
PPPoE.
> +};
> +
> +/** Default mask for RTE_FLOW_ITEM_TYPE_PPPOE. */
> +#ifndef __cplusplus
> +static const struct rte_flow_item_pppoe rte_flow_item_pppoe_mask = {
> + .session_id = RTE_BE16(0x),
> + .proto_id = RTE_BE16(0x),
> +};
I think the default for PPPoE should be an empty mask that simply says
"match PPPoE" since session_id only becomes known after negotiation and
proto_id shouldn't be part of this object.
--
Adrien Mazarguil
6WIND
oth
> directions - swap transport ports and IPv4/6 addresses).
This is only an option when src/dst are known in advance.
When doing RSS, HW implementations (such as Mellanox's) implement a modified
Toeplitz XOR'ing src with dst resulting in the same hash both ways
regardless of the key.
--
Adrien Mazarguil
6WIND
On Tue, Jul 30, 2019 at 01:27:41PM -0400, Aaron Conole wrote:
> Ferruh Yigit writes:
>
> > On 7/30/2019 5:18 PM, Adrien Mazarguil wrote:
> >> On Tue, Jul 30, 2019 at 03:48:31PM +0100, Ferruh Yigit wrote:
> >>> On 7/30/2019 3:42 PM, Aaron Conole wro
- C programmers are well aware of the dire consequences of omitting the
ending NUL byte in strings so it's not a foreign concept. This is
documented as such for rte_flow.
- Static initialization of flow rules (i.e. defining a large fixed array)
is much easier if one doesn't have to encode its size as well, think about
compilation directives (#ifdef) on some of its elements.
- Like omitting the END element, providing the wrong array size by mistake
remains a possibility, with similar or possibly worse consequences as
it's less likely to crash early and more prone to silent data corruption.
- [tons of other good reasons here]
See?
--
Adrien Mazarguil
6WIND
On Tue, Jul 30, 2019 at 06:06:56AM +, Ori Kam wrote:
> Hi Simei,
>
>
>
> > -Original Message-
> > From: dev On Behalf Of simei
> > Sent: Monday, July 29, 2019 5:44 AM
> > To: qi.z.zh...@intel.com; jingjing...@intel.com; ferruh.yi...@intel.co
On Sun, Jul 14, 2019 at 02:46:58PM +0300, Andrew Rybchenko wrote:
> On 11.07.2019 10:44, Adrien Mazarguil wrote:
> > On Wed, Jul 10, 2019 at 04:37:46PM +, Yongseok Koh wrote:
> > > > On Jul 10, 2019, at 5:26 AM, Thomas Monjalon
> > > > wrote:
> &g
e API.
> >>
> >> Ok, I misunderstood. I thought it was the structure change itself you were
> >> saying broke the ABI. Yes, putting the data in a different place is indeed
> >> an ABI break.
> >
> > We could add the new field and keep the old one unused,
> > so it does not break the ABI.
>
> Still breaks ABI if PKT_TX_METADATA is set. :-) In order not to break it, I
> can
> keep the current union'd field (tx_metadata) as is with PKT_TX_METADATA, add
> the new one at the end and make it used with the new PKT_RX_METADATA.
>
> > However I suppose everybody will prefer a version using dynamic fields.
> > Is someone against using dynamic field for such usage?
>
> However, given that the amazing dynamic fields is coming soon (thanks for your
> effort, Olivier and Thomas!), I'd be honored to be the first user of it.
>
> Olivier, I'll take a look at your RFC.
Just got a crazy idea while reading this thread... How about repurposing
that "reserved" field as "rx_metadata" in the meantime?
I know reserved fields are cursed and no one's ever supposed to touch them
but this risk is mitigated by having the end user explicitly request its
use, so the patch author (and his relatives) should be safe from the
resulting bad juju.
Joke aside, while I like the idea of Tx/Rx META, I think the similarities
with MARK (and TAG eventually) is a problem. I wasn't available and couldn't
comment when META was originally added to the Tx path, but there's a lot of
overlap between these items/actions, without anything explaining to the end
user how and why they should pick one over the other, if they can be
combined at all and what happens in that case.
All this must be documented, then we should think about unifying their
respective features and deprecate the less capable items/actions. In my
opinion, users need exactly one method to mark/match some mark while
processing Rx/Tx traffic and *optionally* have that mark read from/written
to the mbuf, which may or may not be possible depending on HW features.
--
Adrien Mazarguil
6WIND
On Fri, Jul 05, 2019 at 06:05:50PM +, Yongseok Koh wrote:
> > On Jul 5, 2019, at 6:54 AM, Adrien Mazarguil
> > wrote:
> >
> > On Thu, Jul 04, 2019 at 04:23:02PM -0700, Yongseok Koh wrote:
> >> A tag is a transient data which can be used during flow matc
-specific constraint
that shouldn't be exposed (especially since it's an 8-bit field). If so, a
PMD could keep track of used indices without having them exposed through the
public API.
--
Adrien Mazarguil
6WIND
.priv = PRIV_ITEM(GRE_KEY, sizeof(rte_be32_t)),
> + .next = NEXT(item_gre_key),
> + .call = parse_vc,
> + },
> + [ITEM_GRE_KEY_VALUE] = {
> + .name = "value",
> + .help = "GRE key value",
No need to repeat "GR
On Fri, Jul 05, 2019 at 10:14:42AM +0800, Xiaoyu Min wrote:
> Add new rte_flow_item_gre_key in order to match the optional key field.
>
> Acked-by: Ori Kam
> Signed-off-by: Xiaoyu Min
Acked-by: Adrien Mazarguil
--
Adrien Mazarguil
6WIND
On Thu, Jul 04, 2019 at 01:55:14PM +, Zhang, Qi Z wrote:
>
>
> > -Original Message-
> > From: Adrien Mazarguil [mailto:adrien.mazarg...@6wind.com]
> > Sent: Thursday, July 4, 2019 5:07 PM
> > To: Su, Simei
> > Cc: Zhang, Qi Z ; Wu, Jingjing
&
On Thu, Jul 04, 2019 at 12:48:25PM +, Zhang, Qi Z wrote:
>
>
> > -Original Message-
> > From: Adrien Mazarguil [mailto:adrien.mazarg...@6wind.com]
> > Sent: Thursday, July 4, 2019 5:07 PM
> > To: Su, Simei
> > Cc: Zhang, Qi Z ; Wu, Jingjing
&
On Thu, Jul 04, 2019 at 11:56:35AM +, Jack Min wrote:
> On Thu, 19-07-04, 11:52, Adrien Mazarguil wrote:
> > On Thu, Jul 04, 2019 at 05:52:43AM +, Jack Min wrote:
> > > On Wed, 19-07-03, 17:25, Adrien Mazarguil wrote:
> > > > On Tue, Jul 02, 2019 at 05:4
On Thu, Jul 04, 2019 at 05:52:43AM +, Jack Min wrote:
> On Wed, 19-07-03, 17:25, Adrien Mazarguil wrote:
> > On Tue, Jul 02, 2019 at 05:45:55PM +0800, Xiaoyu Min wrote:
> > > support matching on GRE key and present bits (C,K,S)
> > >
> > > example testp
age something without harming the ABI. Even
better, you wouldn't need a deprecation notice.
If you use the suggested approach, please update testpmd and its
documentation as part of the same patch, thanks.
--
Adrien Mazarguil
6WIND
but defaults to symmetric
Toeplitz on vanilla Linux and standard Toeplitz when using OFED, how about
using this chance to make the algorithm configurable as well?
Thanks.
--
Adrien Mazarguil
6WIND
E_KEY,
> +
Same comment. While I understand the intent to group GRE and GRE_KEY, doing
so causes ABI breakage by shifting the value of all subsequent pattern
items (see IPV6 and IPV6_EXT for instance).
We could later decide to sort them while knowingly breaking ABI on purpose,
however right now there's no choice but adding new pattern items and actions
at the end of their respective enums, please do that.
--
Adrien Mazarguil
6WIND
_ug/testpmd_funcs.rst
> index cb83a3ce8a..fc3ba8a009 100644
> --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> @@ -3804,6 +3804,10 @@ This section lists supported pattern items and their
> attributes, if any.
>
>- ``protocol {unsigned}``: protocol type.
>
> +- ``gre_key``: match GRE optional key field.
> +
> + - ``key {unsigned}``: key value.
> +
You should have named this field "value" then, i.e.:
- ``value {unsigned}``: key value.
> - ``fuzzy``: fuzzy pattern match, expect faster than default.
>
>- ``thresh {unsigned}``: accuracy threshold.
> --
> 2.21.0
>
--
Adrien Mazarguil
6WIND
: - Reorder release notes update properly.
> - Update comments for doxygen.
Phew!
Acked-by: Adrien Mazarguil
--
Adrien Mazarguil
6WIND
This obligation results in multiple, action-specific structures, each
> containing a single trivial type parameter.
>
> This patch introduces a new approach, allowing an action configuration
> object of any type, trivial or a structure.
>
> Signed-off-by: Dekel Peled
Acked-by: Adrien
On Tue, Jul 02, 2019 at 09:52:40AM +, Dekel Peled wrote:
> Thanks, PSB
>
> > -Original Message-
> > From: Andrew Rybchenko
> > Sent: Tuesday, July 2, 2019 11:14 AM
> > To: Dekel Peled ; Adrien Mazarguil
> > ; wenzhuo...@intel.com;
>
On Tue, Jul 02, 2019 at 08:42:41AM +, Dekel Peled wrote:
> Thanks, PSB.
>
> > -Original Message-
> > From: Andrew Rybchenko
> > Sent: Tuesday, July 2, 2019 11:09 AM
> > To: Dekel Peled ; Adrien Mazarguil
> > ; wenzhuo...@intel.com;
>
pe. */
> - const void *conf; /**< Pointer to action configuration structure. */
> + const void *conf; /**< Pointer to action configuration. */
> };
This must be moved to a separate patch
Same comment regarding "configuration object".
--
Adrien Mazarguil
6WIND
On Fri, Jun 28, 2019 at 06:23:19PM +0200, David Marchand wrote:
> On Fri, Jun 28, 2019 at 5:57 PM Adrien Mazarguil
> wrote:
>
> > Its presence on the function prototype in the header file is enough.
> >
> > Fixes: 5f4ed3f05849 ("eal: introduce random generator wi
gt; +* Increase sequence number in the outermost TCP header.
> > +*
> > +* Using this action on non-matching traffic will result in
> > +* undefined behavior.
> > +*
> > +* See struct rte_flow_integer_action.
>
> There is no rte_flow_integer_action, please, fix.
>
> [...]
--
Adrien Mazarguil
6WIND
Its presence on the function prototype in the header file is enough.
Fixes: 5f4ed3f05849 ("eal: introduce random generator with upper bound")
Cc: Mattias Rönnblom
Signed-off-by: Adrien Mazarguil
---
lib/librte_eal/common/rte_random.c | 2 +-
1 file changed, 1 insertion(+), 1 deletio
\1/; s/ *$//; i\' \
-e __rte_experimental \
-e '/^$/d}' \
$(git grep -l __rte_experimental -- '*.h')
And applies on top of below commit:
Fixes: 3b45414830ff ("enforce __rte_experimental at the start of symbol
declarations")
Cc: David Marchan
This is a follow-up series to David's [1], addressing one remaining minor
issue and moving __rte_experimental on its own line where it belongs.
[1] "[PATCH 0/9] experimental tags fixes"
https://mails.dpdk.org/archives/dev/2019-June/136009.html
Adrien Mazarguil (2):
eal
;s the relevant sed expression:
sed -i \
-e '/^\([^#].*\)__rte_experimental */{' \
-e 's//\1/; s/ *$//; i\' \
-e __rte_experimental \
-e '}' \
$(git grep -l __rte_experimental -- '*.h')
Otherwise this series looks good to me.
--
Adrien Mazarguil
6WIND
t; [3] https://mails.dpdk.org/archives/dev/2019-May/132110.html
>
> Signed-off-by: Marcin Smoczynski
Thanks!
Acked-by: Adrien Mazarguil
--
Adrien Mazarguil
6WIND
...
> > >
> > > Which could prove handy later as it appears Linux and FreeBSD don't
> > > have the same set of available IPPROTO_* definitions.
> > >
> > > Thoughts?
> > >
> > > [2] "[RFC v2 00/14] prefix network structures"
> > > https://mails.dpdk.org/archives/dev/2019-April/129752.html
> >
> > Yep, that's definitely an option too.
> > But if we going to replace all current references of IPPROTO_ inside DPDK to
> > RTE_IPROTO_ - the change will be massive.
> > And for sure it is out of scope of this patch series.
> > That's probably need to be done after Olivier RFC will be in and should be
> > subject of a separate patch series.
> > Konstantin
>
> I agree that we need RTE_IPPROTO* macros but as Konstantin pointed out this
> would be a huge change and we should do that on top of Oliver's work in
> a separate patch set.
>
> I will propose a patch set with:
> 1. Removed XOPEN_SOURCE macros as they are not needed anymore
> 2. Added BSD_VISIBLE at the top of build system.
Actually I still suggest to leave the existing _XOPEN_SOURCE for users of
-std=whatever, even if covered globally by _GNU_SOURCE and __BSD_VISIBLE.
I think it's useful as a reminder that they did their homework since this is
macro is itself standard.
Regarding RTE_IPPROTO*, my suggestion wasn't to convert DPDK entirely, only
to add the missing ones so far only needed by this patch. Given their values
are defined by RFCs, they should be fully compatible and interchangeable
with system definitions.
I'm fine with either approach in any case.
--
Adrien Mazarguil
6WIND
ce I guess only key matters no need to define the others:
RTE_FLOW_ITEM_TYPE_GRE_KEY
struct rte_flow_item_gre_key {
rte_be32_t key; /**< Application specific key value (K bit). */
};
In both cases, the default mask for this object should cover "key". Make
sure to update documentation and testpmd in the same patch.
--
Adrien Mazarguil
6WIND
unction call for each ext header is a way too expensive approach.
> Will prefer to keep that function inline.
OK, a bit cumbersome but since we're heading this way [2], how about
defining our own instead of all the above?
#define RTE_IPPROTO_HOPOPTS 0
#define RTE_IPPROTO_ROUTING 43
...
Which could prove handy later as it appears Linux and FreeBSD don't have the
same set of available IPPROTO_* definitions.
Thoughts?
[2] "[RFC v2 00/14] prefix network structures"
https://mails.dpdk.org/archives/dev/2019-April/129752.html
--
Adrien Mazarguil
6WIND
er approach:
unless really performance critical, defining rte_ipv6_get_next_ext() in
rte_net.c instead of a static inline in rte_ip.h should address this issue.
[1] "[PATCH 1/3] net: new ipv6 header extension parsing function"
https://mails.dpdk.org/archives/dev/2019-May/131885.html
--
Adrien Mazarguil
6WIND
On Thu, Apr 18, 2019 at 04:06:31PM +0200, David Marchand wrote:
> Hey Adrien,
Hey David!
> On Thu, Apr 18, 2019 at 3:12 PM Adrien Mazarguil
> wrote:
>
> > When passed to the application, Rx packets retain the port ID value
> > originally set by slave devices. Unfortu
nce issues ranging from traffic drop to crashes.
Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")
Cc: sta...@dpdk.org
Signed-off-by: Adrien Mazarguil
Reviewed-by: David Marchand
Acked-by: Gaetan Rivet
--
v3 changes:
Removed unnecessary reference to slavery ("slave"
trieved there to
avoid looking it up in non-local data structure rxq->priv->dev_data->port.
In fact rxq->priv is not accessed even once during Rx.
> > It's understood that having failsafe in the dataplane has a cost, but even
> > with the proposed fix, that cost is dwarfed by the amount of work done by a
> > true PMD (and the application) for Rx processing.
> >
> > My suggestion is to wait for someone to complain about the performance
> > compared to what they had before that fix, only then see what we can do.
>
> OK
>
>
--
Adrien Mazarguil
6WIND
On Thu, Apr 18, 2019 at 05:51:18PM +0200, Thomas Monjalon wrote:
> 18/04/2019 17:39, Thomas Monjalon:
> > 18/04/2019 17:32, Adrien Mazarguil:
> > > When passed to the application, Rx packets retain the port ID value
> > > originally set by slave devices. Unfortunatel
nce issues ranging from traffic drop to crashes.
Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")
Cc: sta...@dpdk.org
Signed-off-by: Adrien Mazarguil
Reviewed-by: David Marchand
Acked-by: Gaetan Rivet
--
v2 changes:
Modified "rxq->priv->dev->data->port_id"
On Thu, Apr 18, 2019 at 03:42:24PM +0100, Ferruh Yigit wrote:
> On 4/18/2019 2:11 PM, Adrien Mazarguil wrote:
> > When passed to the application, Rx packets retain the port ID value
> > originally set by slave devices. Unfortunately these IDs have no meaning to
> > ap
nce issues ranging from traffic drop to crashes.
Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")
Signed-off-by: Adrien Mazarguil
---
drivers/net/failsafe/failsafe_rxtx.c | 21 +
1 file changed, 21 insertions(+)
diff --git a/drivers/net/failsafe/failsafe_rxtx
applications still
rely on it for compatibility reasons; a wrapper is therefore required.
Signed-off-by: Adrien Mazarguil
---
drivers/net/mlx4/mlx4.c| 1 +
drivers/net/mlx4/mlx4.h| 3 ++
drivers/net/mlx4/mlx4_ethdev.c | 61 +++--
3 files changed, 63
ext step will be to announce a deadline for complete removal.
> As preparation of the removal of rte_eth_ctrl.h,
> RTE_ETH_FLOW_*, RTE_TUNNEL_TYPE_* and RTE_ETH_HASH_FUNCTION_* definitions
> are moved to rte_ethdev.h and rte_flow.h.
>
> Signed-off-by: Thomas Monjalon
Acked-by: Adrien Mazarguil
--
Adrien Mazarguil
6WIND
te_flow_integer" directly? Besides
"rte_flow_general_action" is vague as heck.
Seems like you made this structure so it could be extended later, but forgot
that doing so is not an option since ABIs are set in stone. You must make
new APIs as exhaustive and restrict their scope as much as possible from the
start because of that.
Note if you don't want to use union rte_flow_integer directly, it's also
fine to document your actions as taking (const rte_be32_t *) directly
through their conf pointer.
--
Adrien Mazarguil
6WIND
ment actions should use. There
are no dedicated endian types for signed values at the moment, and I'm not
sure we should define any.
This could be addressed by defining a third "SET" action to overwrite the
current value (even if unused) as this action will use the same type as
the t
Hi Ori,
(trimming message down a bit)
On Thu, Apr 04, 2019 at 09:01:52AM +, Ori Kam wrote:
> Hi Adrien,
>
> PSB
>
> > From: Adrien Mazarguil
> > On Wed, Apr 03, 2019 at 10:49:09AM +, Dekel Peled wrote:
> > > Thanks, PSB.
> > > > From: A
On Wed, Apr 03, 2019 at 10:49:09AM +, Dekel Peled wrote:
> Thanks, PSB.
>
> > -Original Message-
> > From: Adrien Mazarguil
> > Sent: Wednesday, April 3, 2019 12:15 PM
> > To: Dekel Peled
> > Cc: wenzhuo...@intel.com; jingjing...@intel.com;
>
e32_t value; /**< Value to increase/decrease by. */
> +};
Thanks for adding experimental tags and comments, however you didn't reply
anything about using a single action, or at least a single structure for
add/sub/set? I'd like to hear your thoughts.
--
Adrien Mazarguil
6WIND
seq``: Increase sequence number in the outermost TCP header
> +
> + - ``value {unsigned}``: Value to increase TCP sequence number by
> +
> +- ``dec_tcp_seq``: Decrease sequence number in the outermost TCP header
> +
> + - ``value {unsigned}``: Value to decrease TCP sequence number by
> +
> +- ``inc_tcp_ack``: Increase acknowledgment number in the outermost TCP header
> +
> + - ``value {unsigned}``: Value to increase TCP acknowledgment number by
> +
> +- ``dec_tcp_ack``: Decrease acknowledgment number in the outermost TCP header
> +
> + - ``value {unsigned}``: Value to decrease TCP acknowledgment number by
Please add missing "." to each line.
> +
> Destroying flow rules
> ~
>
> --
> 1.8.3.1
>
--
Adrien Mazarguil
6WIND
_ACTION_MOD_TCP_SEQ_OP_SUB,
RTE_FLOW_ACTION_MOD_TCP_SEQ_OP_SET,
} op; /**< Operation to perform. */
rte_be32_t value; /**< Value to use with operation. */
};
> +};
> +
> +/**
Experimental tag also missing.
> + * RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
> + * RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
> + *
> + * Increase/Decrease TCP's acknowledgment number.
Suggestion:
Increase/decrease outermost TCP acknowledgment number.
> + */
> +struct rte_flow_action_modify_tcp_ack {
> + rte_be32_t value;
Field documentation also missing.
> +};
> +
> /*
> * Definition of a single action.
> *
> --
> 1.8.3.1
>
--
Adrien Mazarguil
6WIND
On Thu, Nov 22, 2018 at 09:56:09AM +, Dekel Peled wrote:
> Thanks, PSB.
>
> > -Original Message-
> > From: Adrien Mazarguil
> > Sent: Thursday, November 22, 2018 11:05 AM
> > To: Dekel Peled
> > Cc: wenzhuo...@intel.com; jingjing...@intel.com;
s a 20-bit value, isn't the shift supposed to
be 12 bits? In which case that mask is harmless but misleading. How about:
.mplsoudp_label = rte_cpu_to_be32((res->label & 0xf) << 12);
> };
>
> if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
> --
> 1.8.3.1
>
--
Adrien Mazarguil
6WIND
is not enough, I think it
makes sense to also describe these two cases for consistency. Users are
going to wonder why is the damn PMD reading key at all if its length is
zero, so we have to explain that no, the PMD doesn't do that but the pointer
still has to be NULL anyway.
Likewise users shouldn't be tempted to enter a nonzero key length without a
valid key. It also has to be described should we choose this approach.
--
Adrien Mazarguil
6WIND
Hi Shahaf,
On Tue, Nov 13, 2018 at 06:39:04PM +, Shahaf Shuler wrote:
> Hi Adrien,
>
> Tuesday, November 13, 2018 7:15 PM, Adrien Mazarguil:
> > Subject: Re: [dpdk-dev] [PATCH v2] ethdev: document RSS default key and
> > types
> >
> > Again a bit la
Again a bit late to the party, please see below.
On Sun, Nov 11, 2018 at 09:35:22AM +, Ori Kam wrote:
> > -Original Message-
> > From: dev On Behalf Of Ophir Munk
> > Sent: Friday, November 9, 2018 10:14 AM
> > To: Yongseok Koh ; Adrien Mazarguil
> >
On Wed, Nov 07, 2018 at 03:13:07PM +, Ophir Munk wrote:
>
> > -Original Message-
> > From: Adrien Mazarguil [mailto:adrien.mazarg...@6wind.com]
> > Sent: Wednesday, November 07, 2018 4:06 PM
> > To: Ophir Munk
> > Cc: Ferruh Yigit ; Andrew Ryb
On Wed, Nov 07, 2018 at 12:39:24PM +, Ophir Munk wrote:
> > -Original Message-
> > From: Adrien Mazarguil [mailto:adrien.mazarg...@6wind.com]
> > Sent: Wednesday, November 07, 2018 11:31 AM
> > To: Ophir Munk
> > Cc: Ferruh Yigit ; Andrew Rybchenko
>
you help to solve my questions?
PMDs must handle it as described by the documentation, 0 being the only safe
value applications can rely on regardless of device properties; applications
that just want traffic to be spread somehow among the queues they configured
instead of a single queue.
< Hash key length in bytes. */
> uint32_t queue_num; /**< Number of entries in @p queue. */
> - const uint8_t *key; /**< Hash key. */
> + /** Hash key, or NULL for PMD specific default key. */
> + const uint8_t *key;
I'd suggest to document that on key_
ments]
> > "%s():" fmt, __func__, ## __VA_ARGS__)
> >^
> >
> > [2]
> > This seems because of "-pedantic" argument driver uses, and other PMDs using
> > "-pedantic", like mlx, will have same error although they are disable by
> > default and error not observed in default build.
> >
>
--
Adrien Mazarguil
6WIND
en "preserve"
is not provided, I think this field cannot be NULL.
As for "L3 decap", well, can't one just provide a separate encap action?
I mean a raw decap action, followed by another action doing raw encap of the
intended L2? A separate set of actions seems unnecessary for that.
[1] "[PATCH v3 2/4] ethdev: Add tunnel encap/decap actions"
https://mails.dpdk.org/archives/dev/2018-April/095733.html
--
Adrien Mazarguil
6WIND
> of: Invalid argument".
>
> Fixes: f7ba5e7a0f8c ("app/testpmd: rely on flow API conversion function")
>
> Signed-off-by: Moti Haimovsky
Acked-by: Adrien Mazarguil
--
Adrien Mazarguil
6WIND
issue a new patch tonight.
Indeed, I confirm this is the right bug to address (and seems like I did not
validate rte_flow_query() properly.) Thanks for taking care of it!
--
Adrien Mazarguil
6WIND
On Wed, Oct 10, 2018 at 01:17:01PM +, Ori Kam wrote:
> > -Original Message-
> > From: Adrien Mazarguil
> > On Wed, Oct 10, 2018 at 09:00:52AM +, Ori Kam wrote:
> >
> > > > On 10/7/2018 1:57 PM, Ori Kam wrote:
> > > > In addtion t
unnel encap/decap handling, I do not agree with the
proposed approach for usability reasons.
[2] [PATCH v3 2/4] ethdev: Add tunnel encap/decap actions
https://mails.dpdk.org/archives/dev/2018-April/096418.html
[3] ethdev: alter behavior of flow API actions
https://git.dpdk.org/dpdk/commit/?id=cc17feb90413
[4] net/mlx5: add VXLAN encap support to switch flow rules
https://mails.dpdk.org/archives/dev/2018-August/110598.html
[5] net/mlx5: e-switch VXLAN flow validation routine
https://mails.dpdk.org/archives/dev/2018-October/113782.html
--
Adrien Mazarguil
6WIND
if (rte_flow_conv(RTE_FLOW_CONV_OP_ACTION_NAME_PTR,
> &name, sizeof(name),
> - (void *)(uintptr_t)action->type,
> + (void *)(uintptr_t)action,
Ditto.
>
Of Mordechay Haimovsky
> >> Sent: Sunday, October 7, 2018 7:22 PM
> >> To: Adrien Mazarguil ; Shahaf Shuler
> >> ; or...@contextream.com
> >> Cc: dev@dpdk.org; Mordechay Haimovsky
> >> Subject: [dpdk-dev] [PATCH v1] ethdev: fix flow API item/
18-August/109926.html
>
> Tested-by: Takeshi T Yoshimura
> Reviewed-by: Adrien Mazarguil
> Signed-off-by: Christian Ehrhardt
> ---
> .../common/include/arch/ppc_64/rte_memcpy.h | 11 +++
> 1 file changed, 11 insertions(+)
>
> diff --git a/lib/lib
xlan_encap / port_id id 1 / end
Signed-off-by: Adrien Mazarguil
---
drivers/net/mlx5/Makefile | 10 +
drivers/net/mlx5/mlx5_nl_flow.c | 1198 +-
2 files changed, 1204 insertions(+), 4 deletions(-)
diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx
/ vxlan vni is 0x112233 /
eth / ipv6 / tcp dst is 42 / end
actions vxlan_decap / port_id id 2 / end
Signed-off-by: Adrien Mazarguil
---
drivers/net/mlx5/Makefile | 65 +++
drivers/net/mlx5/mlx5_nl_flow.c | 344 ---
2 files changed, 379 insertions
Upcoming patches will rely on them.
Signed-off-by: Adrien Mazarguil
---
drivers/net/mlx5/mlx5_nl_flow.c | 31 +--
1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_nl_flow.c b/drivers/net/mlx5/mlx5_nl_flow.c
index d20416026
data (struct mlx5_nl_flow_ctx).
A predictable message sequence number can now be stored in the context
object as an improvement over CPU counters.
Signed-off-by: Adrien Mazarguil
---
drivers/net/mlx5/mlx5.c | 18 ++--
drivers/net/mlx5/mlx5.h | 22 ++--
drivers/net/mlx5
() replaces
mlx5_get_master_ifname() while getting rid of irrelevant compatibility
code for unsupported Linux and MLNX_OFED versions.
Signed-off-by: Adrien Mazarguil
---
drivers/net/mlx5/mlx5.c| 15 +--
drivers/net/mlx5/mlx5.h| 3 -
drivers/net/mlx5/mlx5_ethdev.c | 184
running.
Signed-off-by: Adrien Mazarguil
---
drivers/net/mlx5/mlx5.c| 48 ++---
drivers/net/mlx5/mlx5.h| 1 +
drivers/net/mlx5/mlx5_ethdev.c | 4 +---
drivers/net/mlx5/mlx5_flow.c | 6 ++---
drivers/net/mlx5/mlx5_nl.c | 9 +++
5 files
er" [1] which
should applied first since testpmd does not provide a means to test VXLAN
encap otherwise.
[1] https://patches.dpdk.org/project/dpdk/list/?series=1123
Adrien Mazarguil (8):
net/mlx5: speed up interface index retrieval for flow rules
net/mlx5: clean up redundant interface name g
: Adrien Mazarguil
---
drivers/net/mlx5/mlx5_nl_flow.c | 73
1 file changed, 48 insertions(+), 25 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_nl_flow.c b/drivers/net/mlx5/mlx5_nl_flow.c
index 9ea2a1b55..e720728b7 100644
--- a/drivers/net/mlx5/mlx5_nl_flow.c
Clarify difference between mlx5_nl_flow_create() and mlx5_nl_flow_init()
by renaming the latter mlx5_nl_flow_ifindex_init().
Signed-off-by: Adrien Mazarguil
---
drivers/net/mlx5/mlx5.c | 3 ++-
drivers/net/mlx5/mlx5.h | 4 ++--
drivers/net/mlx5/mlx5_nl_flow.c | 4 ++--
3 files
Signed-off-by: Adrien Mazarguil
---
app/test-pmd/config.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 669be168b..84e817ff2 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -1048,11 +1048,12
No users left for this function, time to deprecate it.
Signed-off-by: Adrien Mazarguil
Cc: Thomas Monjalon
Cc: Ferruh Yigit
Cc: Andrew Rybchenko
Cc: Gaetan Rivet
--
v3 changes:
- Removed deprecation notice (finally got Ferruh's point), made patch last
in series.
v2 changes:
- Patc
This patch replaces rte_flow_copy() with rte_flow_conv().
Signed-off-by: Adrien Mazarguil
Cc: Declan Doherty
Cc: Chas Williams
--
v3 changes:
- Added build directives to allow experimental APIs, now needed for
rte_flow_conv().
v2 changes:
- Patch was not present in original series
ut
getting rejected outright.
Signed-off-by: Adrien Mazarguil
Cc: Declan Doherty
Cc: Nelio Laranjeiro
--
v2 changes:
- Patch was not present in original series.
---
lib/librte_ethdev/rte_flow.c | 50 +--
1 file changed, 48 insertions(+), 2 deletions(-)
diff -
This commit replaces all local information about pattern items and actions
as well as flow rule duplication code with calls to rte_flow_conv().
Signed-off-by: Adrien Mazarguil
Cc: Wenzhuo Lu
Cc: Jingjing Wu
Cc: Bernard Iremonger
---
app/test-pmd/config.c | 407
This patch replaces rte_flow_copy() with rte_flow_conv().
Signed-off-by: Adrien Mazarguil
Cc: Gaetan Rivet
--
v2 changes:
- Patch was split from "ethdev: add flow API object converter".
---
drivers/net/failsafe/failsafe_ether.c | 6 +++---
drivers/net/failsafe/failsafe_flow
Currently the command-line parser (cmdline_flow.c) is aware of these
actions, however config.c isn't. Flow rules with such actions cannot
be created and cannot be validated with PMDs that implement them.
Adrien Mazarguil (7):
ethdev: add flow API object converter
ethdev: add flow
().
Signed-off-by: Adrien Mazarguil
Cc: Thomas Monjalon
Cc: Ferruh Yigit
Cc: Andrew Rybchenko
Cc: Gaetan Rivet
--
v3 changes:
- Worked around compilation issue on ARM where rte_memcpy() is a macro that
chokes on commas.
- Marked rte_flow_conv() as experimental.
v2 changes:
- Modified patch
This provides a means for applications to retrieve the name of flow pattern
items and actions.
Signed-off-by: Adrien Mazarguil
Cc: Thomas Monjalon
Cc: Ferruh Yigit
Cc: Andrew Rybchenko
--
v2 changes:
- Replaced rte_flow_conv_name_ptr() with extra is_ptr argument to
rte_flow_conv_name
On Wed, Aug 29, 2018 at 10:27:03AM +0200, Christian Ehrhardt wrote:
> On Tue, Aug 28, 2018 at 5:02 PM Adrien Mazarguil
> wrote:
>
> > On Tue, Aug 28, 2018 at 02:38:35PM +0200, Christian Ehrhardt wrote:
> > > --- a/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h
&g
On Tue, Aug 28, 2018 at 02:38:35PM +0200, Christian Ehrhardt wrote:
> On Tue, Aug 28, 2018 at 1:44 PM Adrien Mazarguil
> wrote:
>
> > On Tue, Aug 28, 2018 at 01:30:12PM +0200, Christian Ehrhardt wrote:
> > > On Mon, Aug 27, 2018 at 2:22 PM Adrien Mazarguil <
>
On Tue, Aug 28, 2018 at 01:30:12PM +0200, Christian Ehrhardt wrote:
> On Mon, Aug 27, 2018 at 2:22 PM Adrien Mazarguil
> wrote:
>
> > Hi Christian,
> >
> > On Wed, Aug 22, 2018 at 05:11:41PM +0200, Christian Ehrhardt wrote:
> > > Just FYI the simple
On Thu, Aug 23, 2018 at 02:48:37PM +0100, Ferruh Yigit wrote:
> On 8/3/2018 2:36 PM, Adrien Mazarguil wrote:
> > This is a follow up to the "Flow API helpers enhancements" series submitted
> > almost a year ago [1]. The new title is due to the reduced
On Fri, Aug 24, 2018 at 11:58:39AM +0100, Ferruh Yigit wrote:
> On 8/3/2018 2:36 PM, Adrien Mazarguil wrote:
> > This is a follow up to the "Flow API helpers enhancements" series submitted
> > almost a year ago [1]. The new title is due to the reduced
D cannot
be used. My advice is to implement PORT_ID and not bother with the others
since port IDs are what applications are familiar with.
[1] Although with CX3, individual ports can be disabled per VF, they remain
"seen" by each instance.
--
Adrien Mazarguil
6WIND
));
> > - bool port_name_set = false;
> > - bool switch_id_set = false;
> > + int port_name_set = 0;
> > + int switch_id_set = 0;
> >
> >if (nh->nlmsg_type != RTM_NEWLINK)
> >goto error;
> > @@ -854,7 +854,7 @@ mlx5_nl_switch_info_cb(struct nlmsghdr *nh, void
> > *arg)
> >if (errno ||
> >(size_t)(end - (char *)payload) !=
> > strlen(payload))
> >goto error;
> > - port_name_set = true;
> > + port_name_set = 1;
> >break;
> >case IFLA_PHYS_SWITCH_ID:
> >info.switch_id = 0;
> > @@ -862,7 +862,7 @@ mlx5_nl_switch_info_cb(struct nlmsghdr *nh, void
> > *arg)
> >info.switch_id <<= 8;
> >info.switch_id |= ((uint8_t *)payload)[i];
> >}
> > - switch_id_set = true;
> > + switch_id_set = 1;
> >break;
> >}
> >off += RTA_ALIGN(ra->rta_len);
--
Adrien Mazarguil
6WIND
Partial bit-masks are in fact supported on TCP/UDP source/destination
ports. Remove unnecessary check.
Fixes: 2bfc777e07 ("net/mlx5: add L2-L4 pattern items to switch flow rules")
Signed-off-by: Adrien Mazarguil
---
drivers/net/mlx5/mlx5_nl_flow.c | 20
1 file c
ta...@dpdk.org
>
> Signed-off-by: Matan Azrad
> ---
> drivers/net/tap/tap_flow.c | 18 +-
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> V2:
> Address Adrien comments to fix also the spec=0 check.
Thanks,
Acked-by: Adrien Mazarguil
--
Adrien Mazarguil
6WIND
On Sun, Aug 05, 2018 at 06:10:55AM +, Matan Azrad wrote:
> Hi Adrien
>
> From: Adrien Mazarguil
> > Hi Matan,
> >
> > On Thu, Aug 02, 2018 at 05:52:18PM +, Matan Azrad wrote:
> > > Hi Adrien
> > >
> > > From: Adrien Mazarguil
> &g
1 - 100 of 1899 matches
Mail list logo