History log of /dpdk/drivers/net/tap/tap_flow.c (Results 1 – 25 of 54)
Revision Date Author Comments
# 43fd3624 21-Jan-2025 Andre Muezerie <andremue@linux.microsoft.com>

drivers: replace GCC pragma with cast

"GCC diagnostic ignored" pragmas have been commonly sprinkled
over the code.
Clang supports GCC's pragma for compatibility with existing
source code, so #pragma

drivers: replace GCC pragma with cast

"GCC diagnostic ignored" pragmas have been commonly sprinkled
over the code.
Clang supports GCC's pragma for compatibility with existing
source code, so #pragma GCC diagnostic and #pragma clang
diagnostic are synonyms for Clang
(https://clang.llvm.org/docs/UsersManual.html).

Now that effort is being made to make the code compatible with MSVC
these expressions would become more complex. It makes sense to hide
this complexity behind macros. This makes maintenance easier as these
macros are defined in a single place. As a plus the code becomes
more readable as well.

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>

show more ...


# 9abf92e0 28-Oct-2024 Stephen Hemminger <stephen@networkplumber.org>

net/tap: do not use opaque parameter in convert

The function to convert from internal representation to
netlink was using a void pointer when both caller and callee
were using same structure.

Signe

net/tap: do not use opaque parameter in convert

The function to convert from internal representation to
netlink was using a void pointer when both caller and callee
were using same structure.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

show more ...


# b4241019 28-Oct-2024 Stephen Hemminger <stephen@networkplumber.org>

net/tap: rename struct nlmsg

The struct netlink message structure is part of the internal
TAP device API, not the netlink API itself. Use tap_ prefix
to avoid any confusion with nlmsghdr from netlin

net/tap: rename struct nlmsg

The struct netlink message structure is part of the internal
TAP device API, not the netlink API itself. Use tap_ prefix
to avoid any confusion with nlmsghdr from netlink.h

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

show more ...


# 89b5642d 18-Oct-2024 Robin Jarry <rjarry@redhat.com>

net: use IPv6 address structure for packet headers

The rte_ipv6_hdr uses ad-hoc uint8_t[16] arrays to represent addresses.
Replace these arrays with the newly added rte_ipv6_addr structure. Adapt
al

net: use IPv6 address structure for packet headers

The rte_ipv6_hdr uses ad-hoc uint8_t[16] arrays to represent addresses.
Replace these arrays with the newly added rte_ipv6_addr structure. Adapt
all code accordingly.

Signed-off-by: Robin Jarry <rjarry@redhat.com>

show more ...


# e0d947a1 04-Oct-2024 Ferruh Yigit <ferruh.yigit@amd.com>

ethdev: convert string initialization

gcc 15 experimental [1], with -Wextra flag, gives warning in variable
initialization as string [2].

The warning has a point when initialized variable is intend

ethdev: convert string initialization

gcc 15 experimental [1], with -Wextra flag, gives warning in variable
initialization as string [2].

The warning has a point when initialized variable is intended to use as
string, since assignment is missing the required null terminator for
this case. But warning is useless for our usecase.

In this patch only updated a few instance to show the issue, there are
many instances to fix, if we prefer to go this way.
Other option is to disable warning but it can be useful for actual
string usecases, so I prefer to keep it.

Converted string initialization to array initialization.

[1]
gcc (GCC) 15.0.0 20241003 (experimental)

[2]
../lib/ethdev/rte_flow.h:906:36:
error: initializer-string for array of ‘unsigned char’ is too long
[-Werror=unterminated-string-initialization]
906 | .hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~

../lib/ethdev/rte_flow.h:907:36:
error: initializer-string for array of ‘unsigned char’ is too long
[-Werror=unterminated-string-initialization]
907 | .hdr.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~

../lib/ethdev/rte_flow.h:1009:25:
error: initializer-string for array of ‘unsigned char’ is too long
[-Werror=unterminated-string-initialization]
1009 | "\xff\xff\xff\xff\xff\xff\xff\xff"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

../lib/ethdev/rte_flow.h:1012:25:
error: initializer-string for array of ‘unsigned char’ is too long
[-Werror=unterminated-string-initialization]
1012 | "\xff\xff\xff\xff\xff\xff\xff\xff"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

../lib/ethdev/rte_flow.h:1135:20:
error: initializer-string for array of ‘unsigned char’ is too long
[-Werror=unterminated-string-initialization]
1135 | .hdr.vni = "\xff\xff\xff",
| ^~~~~~~~~~~~~~

Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>

show more ...


# 2bb2f755 21-May-2024 Stephen Hemminger <stephen@networkplumber.org>

net/tap: use libbpf to load new BPF program

There were multiple issues in the RSS queue support in the TAP
driver. This required extensive rework of the BPF support.

Change the BPF loading to use b

net/tap: use libbpf to load new BPF program

There were multiple issues in the RSS queue support in the TAP
driver. This required extensive rework of the BPF support.

Change the BPF loading to use bpftool to
create a skeleton header file, and load with libbpf.
The BPF is always compiled from source so less chance that
source and instructions diverge. Also resolves issue where
libbpf and source get out of sync. The program
is only loaded once, so if multiple rules are created
only one BPF program is loaded in kernel.

The new BPF program only needs a single action.
No need for action and re-classification step.

It also fixes the missing bits from the original.
- supports setting RSS key per flow
- level of hash can be L3 or L3/L4.

Bugzilla ID: 1329

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

show more ...


# 7c391c6b 21-May-2024 Stephen Hemminger <stephen@networkplumber.org>

net/tap: do not build flow support if header is out of date

The proper place for finding bpf structures and functions is
in linux/bpf.h. The original version was trying to workaround the
case where

net/tap: do not build flow support if header is out of date

The proper place for finding bpf structures and functions is
in linux/bpf.h. The original version was trying to workaround the
case where the build environment was running on old pre BPF
version of Glibc, but the target environment had BPF.

Having own private (and divergent) version headers leads to future
problems when BPF definitions evolve.

If the build infrastructure is so old that TC flower is not
supported, then the TAP device will build without any flow support.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

show more ...


# 36d4adfa 21-May-2024 Stephen Hemminger <stephen@networkplumber.org>

net/tap: validate and setup parameters for BPF RSS

The flow RSS support via BPF was not using the key, or
hash type parameters. Which is good because they were never
properly setup.

Fix the setup a

net/tap: validate and setup parameters for BPF RSS

The flow RSS support via BPF was not using the key, or
hash type parameters. Which is good because they were never
properly setup.

Fix the setup and validate the flow parameters, the BPF
side gets fixed later.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

show more ...


# 801fee5c 21-May-2024 Stephen Hemminger <stephen@networkplumber.org>

net/tap: remove unused fields

The driver doesn't support these other hash types, and there
is no reason to implement these in future. The rss_flows list
was set but never used.

Signed-off-by: Steph

net/tap: remove unused fields

The driver doesn't support these other hash types, and there
is no reason to implement these in future. The rss_flows list
was set but never used.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

show more ...


# 72ab1dc1 21-May-2024 Stephen Hemminger <stephen@networkplumber.org>

net/tap: do not duplicate file descriptors

The TAP device can use same file descriptor for both Rx and Tx queues
which reduces the number of FD's required.

MP process support passes file descriptor

net/tap: do not duplicate file descriptors

The TAP device can use same file descriptor for both Rx and Tx queues
which reduces the number of FD's required.

MP process support passes file descriptors from primary
to secondary process; but because of the restriction on
max FD's passed RTE_MP_MAX_FD_NUM (8) the TAP device was restricted
to only 4 queues if using secondary.
This allows up to 8 queues (versus 4).

The restriction on max FD's should be changed in EAL in
future, but it will break ABI compatibility.
The max Linux supports which is SCM_MAX_FD (253).

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

show more ...


# e9e6089a 21-May-2024 Stephen Hemminger <stephen@networkplumber.org>

net/tap: fix file descriptor check in isolated flow

The check for receive queue FD in flow_isolate is incorrect.
If queue has not been setup then FD will be -1 not 0.

Fixes: f503d2694825 ("net/tap:

net/tap: fix file descriptor check in isolated flow

The check for receive queue FD in flow_isolate is incorrect.
If queue has not been setup then FD will be -1 not 0.

Fixes: f503d2694825 ("net/tap: support flow API isolated mode")
Cc: stable@dpdk.org

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

show more ...


# 4e924ff6 29-Feb-2024 Stephen Hemminger <stephen@networkplumber.org>

net/tap: fix traffic control handle calculation

The code to take a flow pointer and make a TC handle was incorrect
and would always generate the same handle. This is because it was
hashing the addre

net/tap: fix traffic control handle calculation

The code to take a flow pointer and make a TC handle was incorrect
and would always generate the same handle. This is because it was
hashing the address of the union on the stack (which is invariant)
rather than the contents of the union.

The following testpmd case would cause an error:
testpmd> flow create 0 ingress pattern eth src is 06:05:04:03:02:01 \
/ end actions queue index 2 / end
Flow rule #0 created
testpmd> flow create 0 ingress pattern eth src is 06:05:04:03:02:02 \
/ end actions queue index 3 / end
tap_nl_dump_ext_ack(): Filter already exists
tap_flow_create(): Kernel refused TC filter rule creation (17): File exists
port_flow_complain(): Caught PMD error type 2 (flow rule (handle)):
overlapping rules or Kernel too old for flower support: File exists

This fix does it in a more robust manner using size independent
code. It also initializes the hash seed so the same hash won't
show up every time and risk potential leakage of address to
other places.

Bugzilla ID: 1382
Fixes: de96fe68ae95 ("net/tap: add basic flow API patterns and actions")
Fixes: a625ab89df11 ("net/tap: fix build with GCC 11")
Cc: stable@dpdk.org

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...


# 11b90b53 29-Feb-2024 Stephen Hemminger <stephen@networkplumber.org>

net/tap: do not overwrite flow API errors

All flow errors were ending up being reported as not supported,
even when the error path was previously setting a valid and
better error message.

Example,

net/tap: do not overwrite flow API errors

All flow errors were ending up being reported as not supported,
even when the error path was previously setting a valid and
better error message.

Example, asking for a non-existent queue in flow.

Before:
testpmd> flow create 0 ingress pattern eth src is 06:05:04:03:02:01 \
/ end actions queue index 12 / end
port_flow_complain(): Caught PMD error type 16 (specific action):
cause: 0x7fffc46c1e18, action not supported: Operation not supported

After:
testpmd> flow create 0 ingress pattern eth src is 06:05:04:03:02:01 \
/ end actions queue index 12 / end
port_flow_complain(): Caught PMD error type 16 (specific action):
cause: 0x7fffa54e1d88, queue index out of range: Numerical result
out of range

Fixes: f46900d03823 ("net/tap: fix flow and port commands")
Fixes: de96fe68ae95 ("net/tap: add basic flow API patterns and actions")
Cc: stable@dpdk.org

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...


# 8275d5fc 25-Oct-2022 Thomas Monjalon <thomas@monjalon.net>

ethdev: use Ethernet protocol struct for flow matching

As announced in the deprecation notice, flow item structures
should re-use the protocol header definitions from the directory lib/net/.
The Eth

ethdev: use Ethernet protocol struct for flow matching

As announced in the deprecation notice, flow item structures
should re-use the protocol header definitions from the directory lib/net/.
The Ethernet headers (including VLAN) structures are used
instead of the redundant fields in the flow items.

The remaining protocols to clean up are listed for future work
in the deprecation list.
Some protocols are not even defined in the directory net yet.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>

show more ...


# 8772bbfa 21-Jul-2022 Alex Kiselev <alex@bisonrouter.com>

net/tap: fix overflow of network interface index

On Linux and most other systems, network interface index is a 32-bit
integer. Indexes overflowing the 16-bit integer are frequently seen
when used i

net/tap: fix overflow of network interface index

On Linux and most other systems, network interface index is a 32-bit
integer. Indexes overflowing the 16-bit integer are frequently seen
when used inside a Docker container.

Fixes: 7c25284e30c2 ("net/tap: add netlink back-end for flow API")
Fixes: 2bc06869cd94 ("net/tap: add remote netdevice traffic capture")
Cc: stable@dpdk.org

Signed-off-by: Alex Kiselev <alex@bisonrouter.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...


# 06c047b6 09-Feb-2022 Stephen Hemminger <stephen@networkplumber.org>

remove unnecessary null checks

Functions like free, rte_free, and rte_mempool_free
already handle NULL pointer so the checks here are not necessary.

Remove redundant NULL pointer checks before free

remove unnecessary null checks

Functions like free, rte_free, and rte_mempool_free
already handle NULL pointer so the checks here are not necessary.

Remove redundant NULL pointer checks before free functions
found by nullfree.cocci

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...


# 7be78d02 29-Nov-2021 Josh Soref <jsoref@gmail.com>

fix spelling in comments and strings

The tool comes from https://github.com/jsoref

Signed-off-by: Josh Soref <jsoref@gmail.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>


# a625ab89 11-May-2021 Ferruh Yigit <ferruh.yigit@intel.com>

net/tap: fix build with GCC 11

Reproduced with '--buildtype=debugoptimized' config,
compiler version: gcc (GCC) 12.0.0 20210509 (experimental)

There are multiple build errors, like:
In file include

net/tap: fix build with GCC 11

Reproduced with '--buildtype=debugoptimized' config,
compiler version: gcc (GCC) 12.0.0 20210509 (experimental)

There are multiple build errors, like:
In file included from ../drivers/net/tap/tap_flow.c:13:
In function ‘rte_jhash_2hashes’,
inlined from ‘rte_jhash’ at ../lib/hash/rte_jhash.h:284:2,
inlined from ‘tap_flow_set_handle’ at
../drivers/net/tap/tap_flow.c:1306:12,
inlined from ‘rss_enable’ at ../drivers/net/tap/tap_flow.c:1909:3,
inlined from ‘priv_flow_process’ at
../drivers/net/tap/tap_flow.c:1228:11:
../lib/hash/rte_jhash.h:238:9:
warning: ‘flow’ may be used uninitialized [-Wmaybe-uninitialized]
238 | __rte_jhash_2hashes(key, length, pc, pb, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../drivers/net/tap/tap_flow.c: In function ‘priv_flow_process’:
../lib/hash/rte_jhash.h:81:1: note: by argument 1 of type ‘const void *’
to ‘__rte_jhash_2hashes.constprop’ declared here
81 | __rte_jhash_2hashes(const void *key, uint32_t length, uint32_t *pc,
| ^~~~~~~~~~~~~~~~~~~
../drivers/net/tap/tap_flow.c:1028:1: note: ‘flow’ declared here
1028 | priv_flow_process(struct pmd_internals *pmd,
| ^~~~~~~~~~~~~~~~~

Fix strict aliasing rule by using union.

Bugzilla ID: 690
Fixes: de96fe68ae95 ("net/tap: add basic flow API patterns and actions")
Cc: stable@dpdk.org

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>

show more ...


# fb7ad441 21-Mar-2021 Thomas Monjalon <thomas@monjalon.net>

ethdev: replace callback getting filter operations

Since rte_flow is the only API for filtering operations,
the legacy driver interface filter_ctrl was too much complicated
for the simple task of ge

ethdev: replace callback getting filter operations

Since rte_flow is the only API for filtering operations,
the legacy driver interface filter_ctrl was too much complicated
for the simple task of getting the struct rte_flow_ops.

The filter type RTE_ETH_FILTER_GENERIC and
the filter operarion RTE_ETH_FILTER_GET are removed.
The new driver callback flow_ops_get replaces filter_ctrl.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Rosen Xu <rosen.xu@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

show more ...


# 8451387d 27-Apr-2020 Stephen Hemminger <stephen@networkplumber.org>

net/tap: fix crash in flow destroy

The TAP driver does not initialize all the elements of the rte_flow
structure. This can lead to crash in rte_flow_destroy.

(gdb) where
flow=0x100e99280, error

net/tap: fix crash in flow destroy

The TAP driver does not initialize all the elements of the rte_flow
structure. This can lead to crash in rte_flow_destroy.

(gdb) where
flow=0x100e99280, error=0x0)
at drivers/net/tap/tap_flow.c:1514

(gdb) p remote_flow
$1 = (struct rte_flow *) 0x6b6b6b6b6b6b6b6b

Which is here:
static int
tap_flow_destroy_pmd(struct pmd_internals *pmd,
struct rte_flow *flow,
struct rte_flow_error *error)
{
struct rte_flow *remote_flow = flow->remote_flow;
...
if (remote_flow) {
remote_flow->msg.nh.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK;

Simplest fix is to use rte_zmalloc() so remote_flow and other fields
are always set at zero.

Fixes: 2bc06869cd94 ("net/tap: add remote netdevice traffic capture")
Cc: stable@dpdk.org

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

show more ...


# 35b2d13f 21-May-2019 Olivier Matz <olivier.matz@6wind.com>

net: add rte prefix to ether defines

Add 'RTE_' prefix to defines:
- rename ETHER_ADDR_LEN as RTE_ETHER_ADDR_LEN.
- rename ETHER_TYPE_LEN as RTE_ETHER_TYPE_LEN.
- rename ETHER_CRC_LEN as RTE_ETHER_C

net: add rte prefix to ether defines

Add 'RTE_' prefix to defines:
- rename ETHER_ADDR_LEN as RTE_ETHER_ADDR_LEN.
- rename ETHER_TYPE_LEN as RTE_ETHER_TYPE_LEN.
- rename ETHER_CRC_LEN as RTE_ETHER_CRC_LEN.
- rename ETHER_HDR_LEN as RTE_ETHER_HDR_LEN.
- rename ETHER_MIN_LEN as RTE_ETHER_MIN_LEN.
- rename ETHER_MAX_LEN as RTE_ETHER_MAX_LEN.
- rename ETHER_MTU as RTE_ETHER_MTU.
- rename ETHER_MAX_VLAN_FRAME_LEN as RTE_ETHER_MAX_VLAN_FRAME_LEN.
- rename ETHER_MAX_VLAN_ID as RTE_ETHER_MAX_VLAN_ID.
- rename ETHER_MAX_JUMBO_FRAME_LEN as RTE_ETHER_MAX_JUMBO_FRAME_LEN.
- rename ETHER_MIN_MTU as RTE_ETHER_MIN_MTU.
- rename ETHER_LOCAL_ADMIN_ADDR as RTE_ETHER_LOCAL_ADMIN_ADDR.
- rename ETHER_GROUP_ADDR as RTE_ETHER_GROUP_ADDR.
- rename ETHER_TYPE_IPv4 as RTE_ETHER_TYPE_IPv4.
- rename ETHER_TYPE_IPv6 as RTE_ETHER_TYPE_IPv6.
- rename ETHER_TYPE_ARP as RTE_ETHER_TYPE_ARP.
- rename ETHER_TYPE_VLAN as RTE_ETHER_TYPE_VLAN.
- rename ETHER_TYPE_RARP as RTE_ETHER_TYPE_RARP.
- rename ETHER_TYPE_QINQ as RTE_ETHER_TYPE_QINQ.
- rename ETHER_TYPE_ETAG as RTE_ETHER_TYPE_ETAG.
- rename ETHER_TYPE_1588 as RTE_ETHER_TYPE_1588.
- rename ETHER_TYPE_SLOW as RTE_ETHER_TYPE_SLOW.
- rename ETHER_TYPE_TEB as RTE_ETHER_TYPE_TEB.
- rename ETHER_TYPE_LLDP as RTE_ETHER_TYPE_LLDP.
- rename ETHER_TYPE_MPLS as RTE_ETHER_TYPE_MPLS.
- rename ETHER_TYPE_MPLSM as RTE_ETHER_TYPE_MPLSM.
- rename ETHER_VXLAN_HLEN as RTE_ETHER_VXLAN_HLEN.
- rename ETHER_ADDR_FMT_SIZE as RTE_ETHER_ADDR_FMT_SIZE.
- rename VXLAN_GPE_TYPE_IPV4 as RTE_VXLAN_GPE_TYPE_IPV4.
- rename VXLAN_GPE_TYPE_IPV6 as RTE_VXLAN_GPE_TYPE_IPV6.
- rename VXLAN_GPE_TYPE_ETH as RTE_VXLAN_GPE_TYPE_ETH.
- rename VXLAN_GPE_TYPE_NSH as RTE_VXLAN_GPE_TYPE_NSH.
- rename VXLAN_GPE_TYPE_MPLS as RTE_VXLAN_GPE_TYPE_MPLS.
- rename VXLAN_GPE_TYPE_GBP as RTE_VXLAN_GPE_TYPE_GBP.
- rename VXLAN_GPE_TYPE_VBNG as RTE_VXLAN_GPE_TYPE_VBNG.
- rename ETHER_VXLAN_GPE_HLEN as RTE_ETHER_VXLAN_GPE_HLEN.

Do not update the command line library to avoid adding a dependency to
librte_net.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

show more ...


# 538da7a1 21-May-2019 Olivier Matz <olivier.matz@6wind.com>

net: add rte prefix to ether functions

Add 'rte_' prefix to functions:
- rename is_same_ether_addr() as rte_is_same_ether_addr().
- rename is_zero_ether_addr() as rte_is_zero_ether_addr().
- rename

net: add rte prefix to ether functions

Add 'rte_' prefix to functions:
- rename is_same_ether_addr() as rte_is_same_ether_addr().
- rename is_zero_ether_addr() as rte_is_zero_ether_addr().
- rename is_unicast_ether_addr() as rte_is_unicast_ether_addr().
- rename is_multicast_ether_addr() as rte_is_multicast_ether_addr().
- rename is_broadcast_ether_addr() as rte_is_broadcast_ether_addr().
- rename is_universal_ether_addr() as rte_is_universal_ether_addr().
- rename is_local_admin_ether_addr() as rte_is_local_admin_ether_addr().
- rename is_valid_assigned_ether_addr() as rte_is_valid_assigned_ether_addr().
- rename eth_random_addr() as rte_eth_random_addr().
- rename ether_addr_copy() as rte_ether_addr_copy().
- rename ether_format_addr() as rte_ether_format_addr().

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

show more ...


# b74fd6b8 28-Oct-2018 Ferruh Yigit <ferruh.yigit@intel.com>

add missing static keyword to globals

Some global variables can indeed be static, add static keyword to them.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Jerin Jacob <jerin.jacob

add missing static keyword to globals

Some global variables can indeed be static, add static keyword to them.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>

show more ...


# ed8132e7 18-Oct-2018 Raslan Darawsheh <rasland@mellanox.com>

net/tap: move fds of queues to be in process private

fd's cannot be shared between processes, and each process need to have
it's own fd's pointer.

Signed-off-by: Raslan Darawsheh <rasland@mellanox.

net/tap: move fds of queues to be in process private

fd's cannot be shared between processes, and each process need to have
it's own fd's pointer.

Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

show more ...


# 4278f8df 06-Aug-2018 Matan Azrad <matan@mellanox.com>

net/tap: fix zeroed flow mask configurations

The rte_flow meaning of zero flow mask configuration is to match all
the range of the item value.
For example, the flow eth / ipv4 dst spec 1.2.3.4 dst m

net/tap: fix zeroed flow mask configurations

The rte_flow meaning of zero flow mask configuration is to match all
the range of the item value.
For example, the flow eth / ipv4 dst spec 1.2.3.4 dst mask 0.0.0.0
should much all the ipv4 traffic from the rte_flow API perspective.

>From some kernel perspectives the above rule means to ignore all the
ipv4 traffic (e.g. Ubuntu 16.04, 4.15.10).

Due to the fact that the tap PMD should provide the rte_flow meaning,
it is necessary to ignore the spec in case the mask is zero when it
forwards such like flows to the kernel.
So, the above rule should be translated to eth / ipv4 to get the
correct meaning.

Ignore spec configurations when the mask is zero.

Fixes: de96fe68ae95 ("net/tap: add basic flow API patterns and actions")
Cc: stable@dpdk.org

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

show more ...


123