#
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 ...
|