[PATCH 0/7] net/bonding: fixes and LACP short timeout

2021-12-15 Thread Robert Sanford
ation of mbuf pool and rx/tx rings. - Add support for enabling LACP short timeout, i.e., link partner can use fast periodic time interval between transmits. - Add LACP short timeout to tests. - Include bond_8023ad and bond_alb in doxygen. Robert Sanford (7): net/bonding: fix typos and white

[PATCH 1/7] net/bonding: fix typos and whitespace

2021-12-15 Thread Robert Sanford
- Clean up minor typos in comments, strings, and private names. - Fix whitespace in log messages and function formatting (open brace after a new line). - Move closing C++ wrapper to the end of rte_eth_bond_8023ad.h. Signed-off-by: Robert Sanford --- app/test-pmd/cmdline.c

[PATCH 2/7] net/bonding: fix bonded dev configuring slave dev

2021-12-15 Thread Robert Sanford
- Replace directly overwriting of slave port's private rte_eth_conf by copying it, and then updating it via rte_eth_dev_configure(). Signed-off-by: Robert Sanford --- drivers/net/bonding/rte_eth_bond_pmd.c | 30 -- 1 file changed, 16 insertions(+), 14 dele

[PATCH 3/7] net/bonding: change mbuf pool and ring allocation

2021-12-15 Thread Robert Sanford
- Turn off mbuf pool caching to avoid mbufs lingering in pool caches. At most, we transmit one LACPDU per second, per port. - Fix calculation of ring sizes, taking into account that a ring of size N holds up to N-1 items. Signed-off-by: Robert Sanford --- drivers/net/bonding

[PATCH 4/7] net/bonding: support enabling LACP short timeout

2021-12-15 Thread Robert Sanford
- Add support for enabling LACP short timeout, i.e., link partner can use fast periodic time interval between transmits. Signed-off-by: Robert Sanford --- drivers/net/bonding/eth_bond_8023ad_private.h | 3 ++- drivers/net/bonding/rte_eth_bond_8023ad.c | 28

[PATCH 5/7] net/bonding: add LACP short timeout to tests

2021-12-15 Thread Robert Sanford
- Add "set bonding lacp timeout_ctrl on|off" to testpmd. - Add "test_mode4_lacp_timeout_control" to app/test. Signed-off-by: Robert Sanford --- app/test-pmd/cmdline.c | 77 ++ app/test/test_link_

[PATCH 6/7] net/bonding: add bond_8023ad and bond_alb to doc

2021-12-15 Thread Robert Sanford
- Add bond_8023ad and bond_alb to API documentation. Signed-off-by: Robert Sanford --- doc/api/doxy-api-index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md index 4245b96..830235c 100644 --- a/doc/api/doxy-api-index.md +++ b/doc

[PATCH 7/7] Remove self from Timers maintainers.

2021-12-15 Thread Robert Sanford
Signed-off-by: Robert Sanford --- MAINTAINERS | 1 - 1 file changed, 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 18d9eda..32663b0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1613,7 +1613,6 @@ F: examples/vm_power_manager/ F: doc/guides/sample_app_ug/vm_power_management.rst

[PATCH v2 0/8] net/bonding: fixes and LACP short timeout

2021-12-21 Thread Robert Sanford
ut to tests. V2 changes: - Additional typo and whitespace corrections. - Minor changes to LACP private rings creation. - Add net/ring API stubs patch. - Insert extra "bond_handshake" to LACP short timeout autotest. Robert Sanford (8): net/bonding: fix typos and whitespace net/bond

[PATCH v2 1/8] net/bonding: fix typos and whitespace

2021-12-21 Thread Robert Sanford
- Clean up minor typos in comments, strings, and private names. - Fix whitespace in log messages and function formatting (new line before open brace). - Move closing C++ wrapper to the end of rte_eth_bond_8023ad.h. Signed-off-by: Robert Sanford --- app/test-pmd/cmdline.c

[PATCH v2 2/8] net/bonding: fix bonded dev configuring slave dev

2021-12-21 Thread Robert Sanford
- Replace directly overwriting of slave port's private rte_eth_conf by copying it, and then updating it via rte_eth_dev_configure(). Signed-off-by: Robert Sanford --- drivers/net/bonding/rte_eth_bond_pmd.c | 30 -- 1 file changed, 16 insertions(+), 14 dele

[PATCH v2 3/8] net/bonding: change mbuf pool and ring creation

2021-12-21 Thread Robert Sanford
ACPDU per second, on average. - Create rings with RING_F_EXACT_SZ flag, so that they are the desired size, and not one less than requested. Signed-off-by: Robert Sanford --- drivers/net/bonding/rte_eth_bond_8023ad.c | 8 +++- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a

[PATCH v2 4/8] net/bonding: support enabling LACP short timeout

2021-12-21 Thread Robert Sanford
- Add support for enabling LACP short timeout, i.e., link partner can use fast periodic time interval between transmits. Signed-off-by: Robert Sanford --- drivers/net/bonding/eth_bond_8023ad_private.h | 3 ++- drivers/net/bonding/rte_eth_bond_8023ad.c | 28

[PATCH v2 5/8] net/bonding: add bond_8023ad and bond_alb to doc

2021-12-21 Thread Robert Sanford
- Add bond_8023ad and bond_alb to API documentation. Signed-off-by: Robert Sanford --- doc/api/doxy-api-index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md index 4245b96..830235c 100644 --- a/doc/api/doxy-api-index.md +++ b/doc

[PATCH v2 6/8] remove self from timers maintainers

2021-12-21 Thread Robert Sanford
Remove self from Timers maintainers. Signed-off-by: Robert Sanford --- MAINTAINERS | 1 - 1 file changed, 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 18d9eda..32663b0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1613,7 +1613,6 @@ F: examples/vm_power_manager/ F: doc/guides

[PATCH v2 7/8] net/ring: add promisc and all-MC stubs

2021-12-21 Thread Robert Sanford
Add promiscuous_enable, promiscuous_disable, allmulticast_enable, and allmulticast_disable API stubs. This helps clean up errors in dpdk-test link_bonding_mode4_autotest. Signed-off-by: Robert Sanford --- drivers/net/ring/rte_eth_ring.c | 28 1 file changed, 28

[PATCH v2 8/8] net/bonding: add LACP short timeout tests

2021-12-21 Thread Robert Sanford
- Add "set bonding lacp timeout_ctrl on|off" to testpmd. - Add "test_mode4_lacp_timeout_control" to dpdk-test. - Remove call to rte_eth_dev_mac_addr_remove from add_slave, as it always fails and prints an error. Signed-off-by: Robert Sanford --- app/test-pmd/cmdlin

[PATCH] ring: update Doxygen comments re RING_F_EXACT_SZ

2021-12-22 Thread Robert Sanford
- Add RING_F_EXACT_SZ description to rte_ring_init and rte_ring_create param comments. - Fix ring size comments. Signed-off-by: Robert Sanford --- lib/ring/rte_ring.h | 24 lib/ring/rte_ring_elem.h | 2 +- 2 files changed, 21 insertions(+), 5 deletions(-) diff

[dpdk-dev] [PATCH v2] malloc: fix malloc and free linear complexity

2014-06-17 Thread Robert Sanford
Hi Pablo, > Overall patch looks OK, but malloc unit tests fail on the last test (test_multi_alloc_statistics). > Apparently, the biggest free chunk size changes as it allocates some memory, whereas in > the previous implementation, this size did not change. I wonder if unit test is wrong or if the

[dpdk-dev] [PATCH v3 0/2] malloc: fix malloc and free linear complexity

2014-06-23 Thread Robert Sanford
Comments on previous versions of this patch: http://dpdk.org/ml/archives/dev/2014-May/002297.html http://dpdk.org/ml/archives/dev/2014-June/003518.html Additional changes from original to v3: * Reduce the minimum-sized block that we put on a free list when splitting a larger block, from 192 to 6

[dpdk-dev] [PATCH v3 1/2] malloc: fix malloc and free linear complexity

2014-06-23 Thread Robert Sanford
LIST macros, as defined in sys/queue.h and the QUEUE(3) man page. 4. Change code to utilize small blocks of data size 64 and 128, when splitting larger blocks. Signed-off-by: Robert Sanford --- lib/librte_eal/common/include/rte_malloc_heap.h |6 +- lib/librte_malloc/malloc_e

[dpdk-dev] [PATCH v3 2/2] malloc: fix malloc and free linear complexity

2014-06-23 Thread Robert Sanford
Fix typos and false assumptions in malloc unit tests. Without enhancements to lib rte_malloc, malloc autotest fails every second (2nd) run. With enhancements, malloc autotest fails in function test_multi_alloc_statistics, because we compare the wrong sets of statistics. Signed-off-by: Robert

[dpdk-dev] [PATCH] mk: fix pcap build with empty LIBPCAP_CFLAGS

2013-12-06 Thread Robert Sanford
dif ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y) LIBPCAP_CFLAGS ?= $(shell pcap-config --cflags) -$(if $(LIBPCAP_CFLAGS),,$(error LIBPCAP_CFLAGS is undefined)) EXTERNAL_LIB_CFLAGS += $(LIBPCAP_CFLAGS) endif -- 1.7.1 Signed-off-by: Robert Sanford

[dpdk-dev] Question: Can't make pcap and refcnt to match

2013-11-26 Thread Robert Sanford
Hi Bruce, We also found buffer overflow problems with the pcap driver. 1) Frame may be longer than mbuf. 2) Caplen may be less than original packet. I've been meaning to submit a change, but I'm not familiar with the process. Here is a diff of the relevant code in rte_eth_pcap.c: if (un

[dpdk-dev] How to fight forwarding performance regression on large mempool sizes.

2013-09-19 Thread Robert Sanford
Hi Dmitry, The biggest drop-off seems to be from size 128K to 256K. Are you using 1GB huge pages already (rather than 2MB)? I would think that it would not use over 1GB until you ask for 512K mbufs or more. -- Regards, Robert On Thu, Sep 19, 2013 at 3:50 AM, Dmitry Vyal wrote: > Good day ev

[dpdk-dev] How to fight forwarding performance regression on large mempool sizes.

2013-09-20 Thread Robert Sanford
about this area, yet, but this looks like a good starting place: http://software.intel.com/en-us/articles/intel-performance-counter-monitor-a-better-way-to-measure-cpu-utilization -- Regards, Robert On Fri, Sep 20, 2013 at 2:48 AM, Dmitry Vyal wrote: > On 09/19/2013 11:39 PM, Robert

[dpdk-dev] How to fight forwarding performance regression on large mempool sizes.

2013-09-20 Thread Robert Sanford
> On 09/19/2013 11:39 PM, Robert Sanford wrote: > >> Hi Dmitry, >> >> The biggest drop-off seems to be from size 128K to 256K. Are you using >> 1GB huge pages already (rather than 2MB)? >> >> I would think that it would not use over 1GB until you ask for 512

[dpdk-dev] [PATCH 1/2] igb_uio: fix compability on old kernel

2014-08-22 Thread Robert Sanford
This is what we came up with. It works for us. In our kernel headers' linux/pci.h, pci_num_vf is enclosed within "#ifdef CONFIG_PCI_IOV/#endif"; pci_intx_mask_supported and pci_check_and_mask_intx are enclosed within "#ifdef HAVE_PCI_SET_MWI/#endif". What do you think? -- Thanks, Robert --- li

[dpdk-dev] Comments regarding Flow Director support in PMD IXGBE

2014-01-03 Thread Robert Sanford
Hi, We would like your opinions on the following observations, regarding the 82599 Flow Director support. Issue #1: Our reading of the 82599 data sheet leads us to believe that Flow Director can simultaneously handle *both* IPv4 and IPv6 filters, with separate filter rules, of course. Thus, at

[dpdk-dev] Comments regarding Flow Director support in PMD IXGBE

2014-01-10 Thread Robert Sanford
Hello Maxime, Thank you for taking the time to research these flow director issues and a more complete solution. On Fri, Jan 10, 2014 at 8:36 AM, Maxime Leroy wrote: > But it will be nice to have a small test with ipv6 traffic to be sure > about this point. > > Would you like to provide a patch

[dpdk-dev] Rx-errors with testpmd (only 75% line rate)

2014-01-22 Thread Robert Sanford
Hi Michael, > What can I do to trace down this problem? May I suggest that you try to be more selective in the core masks on the command line. The test app may choose some cores from "other" CPU sockets. Only enable cores of the one socket to which the NIC is attached. > It seems very similar t

[dpdk-dev] [PATCH v11 1/5] bond: new link bonding library

2014-06-30 Thread Robert Sanford
Hi Declan, On Sun, Jun 29, 2014 at 1:49 PM, Declan Doherty wrote: > Initial release with support for > Mode 0 - Round Robin > Mode 1 - Active Backup > Mode 2 - Balance -> Supports 3 transmit polices (layer 2, layer 2+3, > layer 3+4) > Mode 3 - Broadcast > > Signed-off-by: Declan Doherty > -

[dpdk-dev] [PATCH] eal/linux: fix rte_epoll_wait

2015-08-18 Thread Robert Sanford
Function rte_epoll_wait should return when underlying call to epoll_wait times out. Signed-off-by: Robert Sanford --- lib/librte_eal/linuxapp/eal/eal_interrupts.c |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib

[dpdk-dev] [RFC PATCH] rte_timer: Fix rte_timer_reset return value

2015-02-06 Thread Robert Sanford
Hi Olivier, Thanks for reviewing this patch. Please see my responses to your comments, below. I also have one request for you. You probably use git almost every day. For people who only use git maybe once per year, could you please show us the exact sequence of commands that you run to prepare a

[dpdk-dev] [PATCH v4 00/17] support multi-pthread per core

2015-02-06 Thread Robert Sanford
On Fri, Feb 6, 2015 at 10:47 AM, Olivier MATZ wrote: > Hi, > > On 02/02/2015 03:02 AM, Cunming Liang wrote: > > v4 changes: > > new patch fixing strnlen() invalid return in 32bit icc [03/17] > > update and add more comments on sched_yield() [16/17] > > > > v3 changes: > > new patch adding sc

[dpdk-dev] [PATCH v2 0/3] timer: fix rte_timer_reset

2015-02-24 Thread Robert Sanford
Changes in v2: - split into multiple patches - minor coding-style changes Robert Sanford (3): timer: fix return value of rte_timer_reset(), insert rte_pause() into rte_timer_reset_sync() wait-loop app/test: fix timer stress test to succeed on multiple runs, display number of times

[dpdk-dev] [PATCH v2 1/3] timer: pause in rte_timer_reset_sync

2015-02-24 Thread Robert Sanford
In rte_timer_reset_sync(), insert rte_pause() into loop that waits for rte_timer_reset() to succeed. Signed-off-by: Robert Sanford --- lib/librte_timer/rte_timer.c |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/lib/librte_timer/rte_timer.c b/lib/librte_timer

[dpdk-dev] [PATCH v2 2/3] timer: fix stress test on multiple runs

2015-02-24 Thread Robert Sanford
Fix timer stress test to succeed on multiple runs. Signed-off-by: Robert Sanford --- app/test/test_timer.c |7 +++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/app/test/test_timer.c b/app/test/test_timer.c index 4b4800b..070437a 100644 --- a/app/test/test_timer.c +++ b

[dpdk-dev] [PATCH v2 3/3] timer: fix rte_timer_reset return value

2015-02-24 Thread Robert Sanford
test 2 to report how many timer reset collisions occur, i.e., how many times rte_timer_reset() fails due to a timer being in the CONFIG state. Signed-off-by: Robert Sanford --- app/test/test_timer.c| 19 --- lib/librte_timer/rte_timer.c |4 +--- 2 files changed, 17

[dpdk-dev] [PATCH v2 0/3] timer: fix rte_timer_reset

2015-02-25 Thread Robert Sanford
AM, Thomas Monjalon wrote: > > > Changes in v2: > > > - split into multiple patches > > > - minor coding-style changes > > > > > > Robert Sanford (3): > > >timer: fix return value of rte_timer_reset(), > > > insert rte_pause() into

[dpdk-dev] [PATCH v2 0/3] timer: fix rte_timer_reset

2015-02-25 Thread Robert Sanford
On Wed, Feb 25, 2015 at 6:16 AM, Bruce Richardson < bruce.richardson at intel.com> wrote: > On Wed, Feb 25, 2015 at 06:02:24AM -0500, Robert Sanford wrote: > > > > > One question about lib rte_timer that's been troubling me for a while: > How > > are skip li

[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-17 Thread Robert Sanford
The implementation of rte_rand() returns only 62 bits of pseudo-randomness, because the underlying calls to lrand48() "return non-negative long integers uniformly distributed between 0 and 2^31." We have written a potential fix, but before we spend more time testing and refining it, I wanted to c

[dpdk-dev] [RFC PATCH] eal: rte_rand yields only 62 random bits

2015-03-30 Thread Robert Sanford
Yes, applications have many choices for PRNGs. But, we still need one internally for the following libs: PMDs (e1000, fm10k, i40e, ixgbe, virtio, xenvirt), sched, and timer. On Fri, Mar 27, 2015 at 8:03 PM, Stephen Hemminger < stephen at networkplumber.org> wrote: > I would argue remove rte_rand

[dpdk-dev] Enhance KNI DPDK-app-side to be Multi-Producer/Consumer

2014-11-19 Thread Robert Sanford
h an additional structure that is private to the application, and we borrow librte_ring's MP/MC enqueue/dequeue logic. Here is a patch for 1.8. We have only tested a 1.7.1 version. Please have a look and let us know whether you think something like this would be useful. -- Thanks, Robert

[dpdk-dev] [PATCH 0/4] port: fix and test bugs in tx_bulk ops

2016-03-28 Thread Robert Sanford
larger than specified max Robert Sanford (4): app/test: enhance test_port_ring_writer port: fix ring writer buffer overflow port: fix full burst checks in f_tx_bulk ops port: fix ethdev writer burst too big app/test/test_table_ports.c | 27 +-- lib

[dpdk-dev] [PATCH 1/4] app/test: enhance test_port_ring_writer

2016-03-28 Thread Robert Sanford
Add code to send two 60-packet bursts to a ring port_out. This tests a ring writer buffer overflow problem and fix (in patch 2/4). Signed-off-by: Robert Sanford --- app/test/test_table_ports.c | 27 +-- 1 files changed, 25 insertions(+), 2 deletions(-) diff --git a

[dpdk-dev] [PATCH 2/4] port: fix ring writer buffer overflow

2016-03-28 Thread Robert Sanford
Ring writer tx_bulk functions may write past the end of tx_buf[]. Solution is to double the size of tx_buf[]. Signed-off-by: Robert Sanford --- lib/librte_port/rte_port_ring.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_port/rte_port_ring.c b/lib

[dpdk-dev] [PATCH 3/4] port: fix full burst checks in f_tx_bulk ops

2016-03-28 Thread Robert Sanford
interface. We propose to effectively set bsz_mask = (1 << tx_burst_sz) - 1 (while avoiding truncation for tx_burst_sz=64), to cache the mask value of a full burst, and then do a simple compare with pkts_mask in each f_tx_bulk. Signed-off-by: Robert Sanford --- lib/librte_port/rte_port_et

[dpdk-dev] [PATCH 4/4] port: fix ethdev writer burst too big

2016-03-28 Thread Robert Sanford
this by moving the tx buffer flushing logic from *after* the loop that puts all packets into the tx buffer, to *inside* the loop, testing for a full burst when adding each packet. Signed-off-by: Robert Sanford --- lib/librte_port/rte_port_ethdev.c | 20 ++-- 1 files changed, 10

[dpdk-dev] [PATCH 0/4] net/bonding: bonding and LACP fixes

2016-08-01 Thread Robert Sanford
=0 --auto-start \ --coremask=0x0554 --rxd=512 --txd=256 \ --burst=32 --mbcache=64 \ --nb-cores=2 --rxq=1 --txq=1 Example testpmd commands to reconfigure into bonding mode 4: stop port stop all create bonded device 4 0 add bonding slave 2 4 add bonding slave 3 4 port st

[dpdk-dev] [PATCH 1/4] testpmd: fix LACP ports to work with idle links

2016-08-01 Thread Robert Sanford
forwarding loop, if port is an LACP master, in 1 out of N loops force an empty call to the tx burst API. Signed-off-by: Robert Sanford --- app/test-pmd/cmdline.c |9 + app/test-pmd/testpmd.c | 37 + app/test-pmd/testpmd.h |4 3 files ch

[dpdk-dev] [PATCH 2/4] mempool: make cache flush threshold macro public

2016-08-01 Thread Robert Sanford
Rename macros that calculate a mempool cache flush threshold, and move them from rte_mempool.c to rte_mempool.h, so that the bonding driver can accurately calculate its mbuf requirements. Signed-off-by: Robert Sanford --- lib/librte_mempool/rte_mempool.c |8 ++-- lib/librte_mempool

[dpdk-dev] [PATCH 3/4] net/bonding: another fix to LACP mempool size

2016-08-01 Thread Robert Sanford
rom a slave's private pool. It runs in the context of the interrupt thread, and thus it has no mempool cache of its own. Signed-off-by: Robert Sanford --- drivers/net/bonding/rte_eth_bond_8023ad.c | 10 +++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/n

[dpdk-dev] [PATCH 4/4] net/bonding: fix configuration of LACP slaves

2016-08-01 Thread Robert Sanford
eth_conf, adjust the LSC flag based on the slave, and then pass that rte_eth_conf to rte_eth_dev_configure(). Also, remove code that directly pokes RSS data into the slave's rte_eth_conf, as that is also contained in the proper rte_eth_conf that we will pass to rte_eth_dev_configure(). Sign