For readability purposes dpdk_mp_put is renamed as dpdk_mp_free.
CC: Mark B Kavanagh
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/lib
Reported-by: Róbert Mulik
Fixes: d555d9bded5f ("netdev-dpdk: Create separate memory pool for each port.")
Signed-off-by: Antonio Fischetti
---
I've tested this patch by
- changing at run-time the number of Rx queues:
ovs-vsctl set Interface dpdk0 type=dpdk options:n_rxq=4
Kavanagh
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 20 ++--
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 6fc6e1b..bf143e0 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -308,7 +308,7 @@ struct
ned-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 7 +++
1 file changed, 7 insertions(+)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index dc1e9c3..6fc6e1b 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -502,6 +502,9 @@ dpdk_mp_name(struct dpdk_mp *dmp)
int ret
Fixes: d555d9bded5f ("netdev-dpdk: Create separate memory pool for each port.")
Signed-off-by: Antonio Fischetti
---
Mempool names now contains the requested socket id and become like:
"ovs_4adb057e_1_2030_20512".
Tested with DPDK 17.05.2 (from dpdk-stable branch).
NUMA-aware
Skip initialization of mempool packet areas if this was already
done in a previous call to dpdk_mp_create.
CC: Darrell Ball
CC: Ciara Loftus
CC: Aaron Conole
Acked-by: Kevin Traynor
Acked-by: Mark Kavanagh
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 10 +-
1 file
Patch #1, #2 and #4 contain the fixes.
All other patches in this series are a clean up for code readability or small
improvements.
List of versions:
- v8:
- Debug message rephrased in patch #2.
- Reworked patch #4 for snprintf error code.
- Comments in patch #6 moved into patch #1.
- v
For readability purposes dpdk_mp_put is renamed as dpdk_mp_free.
Some other comments are also added to mempool functions.
CC: Mark B Kavanagh
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 16 +++-
1
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 20 ++--
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index a3b4638..0057e6b 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -308,7 +308,7 @@ struct dpdk_mp
In case a mempool name could not be generated log a message
and return a null mempool pointer to the caller.
CC: Mark B Kavanagh
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 7 +++
1 file changed, 7
Skip initialization of mempool packet areas if this was already
done in a previous call to dpdk_mp_create.
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Acked-by: Mark Kavanagh
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 10 +-
1 file changed, 5
: d555d9bded5f ("netdev-dpdk: Create separate memory pool for each port.")
Signed-off-by: Antonio Fischetti
---
Mempool names now contains the requested socket id and become like:
"ovs_4adb057e_1_2030_20512".
Tested with DPDK 17.05.2 (from dpdk-stable branch).
NUMA-awareness f
Reported-by: Róbert Mulik
Fixes: d555d9bded5f ("netdev-dpdk: Create separate memory pool for each port.")
Signed-off-by: Antonio Fischetti
---
I've tested this patch by
- changing at run-time the number of Rx queues:
ovs-vsctl set Interface dpdk0 type=dpdk options:n_rxq=4
- redu
Patch #1 and #2 contain the fixes.
All other patches in this series are a clean up for code readability or small
improvements.
List of versions:
- v7:
- Restored 2 separate patches for the 2 fixes.
- patch #1: detect when previous mempools must be released.
- patch #2: mempool na
For readability purposes dpdk_mp_put is renamed as dpdk_mp_free.
Some other comments are also added to mempool functions.
CC: Mark B Kavanagh
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 15 ++-
1
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 20 ++--
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index dd5759b..5cf1392 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -308,7 +308,7 @@ struct dpdk_mp
In case a mempool name could not be generated log a message
and return a null mempool pointer to the caller.
CC: Mark B Kavanagh
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 7 +++
1 file changed, 7
Patch #1 contains the fix.
All other patches in this series are a clean up for code readability or small
improvements.
List of versions:
- v6: patches #1 and #2 squashed into one.
- Reworked to consider the latest comments.
- tested the release of pre-existing mempools (reported by
Skip initialization of mempool packet areas if this was already
done in a previous call to dpdk_mp_create.
CC: Mark B Kavanagh
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 10 +-
1 file changed, 5
is needed for the NUMA-awareness feature.
CC: Mark B Kavanagh
CC: Kevin Traynor
CC: Aaron Conole
CC: Darrell Ball
Reported-by: Ciara Loftus
Tested-by: Ciara Loftus
Reported-by: Róbert Mulik
Fixes: d555d9bded5f ("netdev-dpdk: Create separate memory pool for each port.")
Signed-off-b
Update documentation with the new commands to Read/Write
ConnTracker configuration parameters.
CC: Kevin Traynor
CC: Darrell Ball
Signed-off-by: Antonio Fischetti
---
Documentation/intro/install/dpdk.rst | 25 +
lib/dpctl.man| 10 ++
2
Example:
ovs-appctl dpctl/ct-get-glbl-cfg totconn
CC: Darrell Ball
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c | 10 ++
1 file changed, 10 insertions(+)
diff --git a/lib/conntrack.c b/lib/conntrack.c
index 68d9030..ed2675b 100644
--- a/lib/conntrack.c
+++ b/lib/conntrack.c
Read/Write the upper limit value for connections.
Example:
# set a new upper limit
ovs-appctl dpctl/ct-set-glbl-cfg maxconn=100
# display cur upper limit
ovs-appctl dpctl/ct-get-glbl-cfg maxconn
CC: Darrell Ball
CC: Kevin Traynor
Signed-off-by: Antonio Fischetti
---
lib
Add a comment to functions retrieving the datapath name.
CC: Darrell Ball
Signed-off-by: Antonio Fischetti
---
lib/dpctl.c | 28 +++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/lib/dpctl.c b/lib/dpctl.c
index 8951d6e..b6eecf0 100644
--- a/lib/dpctl.c
Add infrastructure to implement:
- dpctl/ct-get-glbl-cfg to read a current value of available
conntrack parameters.
- dpctl/ct-set-glbl-cfg to set a value to the available conntrack
parameters.
CC: Darrell Ball
CC: Kevin Traynor
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c
This change comes from the consideration that when the CT is enabled
the overall performance can be deeply affected, even with simple
firewall rules and with stateless protocols like UDP.
This implementation adds a basic infrastructure that allows the user
to adjust the CT configuration parameters
Rename dpdk_mp_put as dpdk_mp_free, add other comments
to mempool functions.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 15 ++-
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib
Rename mp_size as n_mbufs in dpdk_mp structure.
This parameter is passed to rte mempool creation functions
and is meant to contain the number of elements inside
the requested mempool.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c
Replace if statement with an assert.
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 2aa4a55
etdev-dpdk: Create separate memory pool for each port.")
Signed-off-by: Antonio Fischetti
---
Mempool names now contains the requested socket id and become like:
"ovs_4adb057e_1_2030_20512".
Tested with DPDK 17.05.2 (from dpdk-stable branch).
NUMA-awareness feature enabled (DPD
Skip initialization of mempool packet areas if this was already
done in a previous call to dpdk_mp_create.
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 10 +-
1 file changed, 5 insertions(+), 5
Fixes: d555d9bded5f ("netdev-dpdk: Create separate memory pool for each port.")
Signed-off-by: Antonio Fischetti
---
I've tested this patch by
- changing at run-time the number of Rx queues:
ovs-vsctl set Interface dpdk0 type=dpdk options:n_rxq=4
- reducing the MTU of the
List of versions:
- v5: manage new MTU value when a pre-existing mempool is returned.
- v4: fix NUMA awareness usecase
- v3: avoid deletion of pre-existing mempools
- v2: rework to accomodate code changes for dpdk ports too
- v1: 1st implementation.
Fischetti, Antonio (6):
netdev-dpdk: fix
Rename dpdk_mp_put as dpdk_mp_free, add other comments
to mempool functions.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 15 ++-
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib
Rename mp_size as n_mbufs in dpdk_mp structure.
This parameter is passed to rte mempool creation functions
and is meant to contain the number of elements inside
the requested mempool.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c
Replace if statement with an assert.
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 00335f2
Skip initialization of mempool packet areas if this was already
done in a previous call to dpdk_mp_create.
CC: Darrell Ball
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 10 +-
1 file changed, 5 insertions(+), 5
arate memory pool for each port.")
Signed-off-by: Antonio Fischetti
---
Mempool names now contains the requested socket id and become like:
"ovs_4adb057e_1_2030_20512".
Tested with DPDK 17.05.2 (from dpdk-stable branch).
NUMA-awareness feature enabled (DPDK/config/common_base
etdev-dpdk: Create separate memory pool for each port.")
Signed-off-by: Antonio Fischetti
---
I've tested this patch by
- changing at run-time the number of Rx queues:
ovs-vsctl set Interface dpdk0 type=dpdk options:n_rxq=4
- reducing the MTU of the dpdk ports of 1 byte t
Rename dpdk_mp_put as dpdk_mp_free, add other comments
to mempool functions.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 15 ++-
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib
Rename mp_size as n_mbufs in dpdk_mp structure.
This parameter is passed to rte mempool creation functions
and is meant to contain the number of elements inside
the requested mempool.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c
Replace if statement with an assert.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 6a7cae4..46bd201 100644
--- a/lib
Skip initialization of mempool packet areas if this was already
done in a previous call to dpdk_mp_create.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a
etdev-dpdk: Create separate memory pool for each port.")
Signed-off-by: Antonio Fischetti
---
I've tested this patch by
- changing at run-time the number of Rx queues:
ovs-vsctl set Interface dpdk0 type=dpdk options:n_rxq=4
- reducing the MTU of the dpdk ports of 1 byte to
From: Antonio Fischetti
Rename mp_size as n_mbufs in dpdk_mp structure.
This parameter is passed to rte mempool creation functions
and is meant to contain the number of elements inside
the requested mempool.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
From: Antonio Fischetti
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 25fb9a8..dded37f 100644
--- a/lib/netdev
From: Antonio Fischetti
Skip initialization of mempool objects if this was already
done in a previous call to dpdk_mp_create.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 10 +-
1 file changed, 5 insertions(+), 5
From: Antonio Fischetti
In a PVP test where vhostuser ports are configured as
clients, OvS crashes when QEMU is launched.
This patch avoids the repeated calls to netdev_change_seq_changed
after the requested mempool is already acquired.
CC: Kevin Traynor
CC: Aaron Conole
Reported-by: Ciara
The mp_size parameter to be passed to rte mempool creation
functions is meant to contain the number of elements inside
the requested mempool. So it is renamed as n_mbufs.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
DPDK doc for
Log an error message when the creation of a name for a
new mempool fails.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index f3f42ee
Skip initialization of mempool objects if this was already
done in a previous call to dpdk_mp_create.
CC: Ciara Loftus
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Antonio Fischetti
---
lib/netdev-dpdk.c | 15 +--
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a
etdev-dpdk: Create separate memory pool for each port.")
Signed-off-by: Antonio Fischetti
---
To replicate the bug scenario:
PVP test setup
--
CLIENT_SOCK_DIR=/tmp
SOCK0=dpdkvhostuser0
SOCK1=dpdkvhostuser1
1 PMD
Add 2 dpdk ports, n_rxq=1
Add 2 vhu ports both of type dpdkvhost
Example:
ovs-appctl dpctl/ct-get-glbl-cfg totconn
CC: Kevin Traynor
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c | 10 ++
1 file changed, 10 insertions(+)
diff --git a/lib/conntrack.c b/lib/conntrack.c
index 684e468..b04ffb9 100644
--- a/lib/conntrack.c
+++ b/lib/conntrack.c
Add infrastructure to implement:
- dpctl/ct-get-glbl-cfg to read a current value of available
conntrack parameters.
- dpctl/ct-set-glbl-cfg to set a value to the available conntrack
parameters.
CC: Kevin Traynor
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c | 60
Read/Write the upper limit value for connections.
Example:
# set a new upper limit
ovs-appctl dpctl/ct-set-glbl-cfg maxconn=100
# display cur upper limit
ovs-appctl dpctl/ct-get-glbl-cfg maxconn
CC: Kevin Traynor
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c | 22
Signed-off-by: Antonio Fischetti
---
lib/dpctl.c | 28 +++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/lib/dpctl.c b/lib/dpctl.c
index 8951d6e..b6eecf0 100644
--- a/lib/dpctl.c
+++ b/lib/dpctl.c
@@ -825,6 +825,9 @@ dpctl_dump_flows(int argc, const char
This series adds two new commands to allow read/write of
some of the CT configuration parameters. This could be
used for maintenance purposes or to find a better tuning
of the current setup.
V2: Reworked based on comments.
V1: First implementation.
Fischetti, Antonio (4):
dpctl: Add a comment t
Manage error value returned by ct_dpif_dump_next.
Signed-off-by: Antonio Fischetti
---
lib/dpctl.c | 27 ---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/lib/dpctl.c b/lib/dpctl.c
index 8951d6e..d229c97 100644
--- a/lib/dpctl.c
+++ b/lib/dpctl.c
Update manual and usage for R/W parameters commands.
Signed-off-by: Antonio Fischetti
---
lib/dpctl.man | 8
utilities/ovs-dpctl.c | 2 ++
2 files changed, 10 insertions(+)
diff --git a/lib/dpctl.man b/lib/dpctl.man
index 675fe5a..836cc08 100644
--- a/lib/dpctl.man
+++ b/lib
Read current number of connections managed by the
CT module.
Example:
ovs-appctl dpctl/ct-get totconn
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c | 10 ++
1 file changed, 10 insertions(+)
diff --git a/lib/conntrack.c b/lib/conntrack.c
index 60eb376..412665a 100644
--- a/lib
Read/Write conntrack clean-up interval used by
the clean_thread_main() thread.
Example:
ovs-appctl dpctl/ct-set cleanup=4000 # Set a new value
ovs-appctl dpctl/ct-get cleanup # Read
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c | 27 ---
lib
Read/Write the upper limit value for connections.
Example:
# set a new upper limit
ovs-appctl dpctl/ct-set maxconn=100
# display cur upper limit
ovs-appctl dpctl/ct-get maxconn
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c | 22 +-
1 file changed, 21
parameters.
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c | 67 +
lib/conntrack.h | 3 ++
lib/ct-dpif.c | 28 ++
lib/ct-dpif.h | 2 ++
lib/dpctl.c | 85
ct_dpif_entry_uninit could potentially be called even if
ct_dpif_dump_next failed. As ct_dpif_entry_uninit receives
a pointer to a CT entry - and just checks it is not null -
it's safer to init to zero any instantiated ct_dpif_entry
variable before its usage.
Signed-off-by: Antonio Fisc
Manage error value returned by ct_dpif_dump_next.
Signed-off-by: Antonio Fischetti
---
lib/dpctl.c | 28 +---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/lib/dpctl.c b/lib/dpctl.c
index 8951d6e..86d0f90 100644
--- a/lib/dpctl.c
+++ b/lib/dpctl.c
When EMC is disabled the reading of RSS hash is skipped.
Also, for packets that are not recirculated it retrieves
the hash value without considering the recirc id.
CC: Darrell Ball
CC: Billy O Mahony
Signed-off-by: Antonio Fischetti
---
V5
- Removed OVS_LIKELY when checking cur_min.
- I
C: Darrell Ball
CC: Joe Stringer
Signed-off-by: Antonio Fischetti
Co-authored-by: Bhanuprakash Bodireddy
Signed-off-by: Bhanuprakash Bodireddy
---
- No testing is done with S-NAT, D-NAT cases.
- The timeout value in CT_CONN_REFRESH_TIMEOUT_MS is an arbitrary value.
- A further step could b
When EMC is disabled the reading of RSS hash is skipped.
Also, for packets that are not recirculated it retrieves
the hash value without considering the recirc id.
Signed-off-by: Antonio Fischetti
---
V4
- reworked to remove dependencies from other patches in
patchset "Skip EM
Since it's possible to delete memory pool in DPDK
we can try to estimate better required memory size
when port is reconfigured, e.g. with different number
of rx queues.
CC: Kevin Traynor
CC: Aaron Conole
Signed-off-by: Robert Wojciechowicz
Co-authored-by: Antonio Fischetti
Signed-o
memcpy replaces the several single copies inside
dp_packet_clone_with_headroom().
Signed-off-by: Antonio Fischetti
---
I tested this change by comparing the CPU Time over a 60 sec analysis
with VTune.
In original ovs:
dp_packet_clone_with_headroom4.530s
+ this changes
Current time is passed to conntrack_execute so it doesn't have
to recompute it again.
Signed-off-by: Antonio Fischetti
Acked by: Sugesh Chandran
---
In a firewall testbench set up with
table=0, priority=1 actions=drop
table=0, priority=10,arp actions=NORMAL
table=0, priority=100,ct_
When EMC is disabled the reading of RSS hash is skipped.
Also, for packets that are not recirculated it retrieves the hash
value without considering the recirc id.
Signed-off-by: Antonio Fischetti
---
This patch depends on previous patch in this series.
Port-to-Port Test
re sent to the classifier.
This patch is based on patch
"dpif-netdev: add EMC entry count and %full figure to pmd-stats-show" at:
https://mail.openvswitch.org/pipermail/ovs-dev/2017-January/327570.html
CC: Jan Scheurich
Signed-off-by: Antonio Fischetti
Signed-off-by: Bhanuprakash Bodir
This patchset comes from an attempt to improve the ConnTracker
performance in OvS-DPDK when used as a firewall.
We focused on some aspects like the management of recirculated packets
and some function tuning.
Some of this changes may be a benefit also for cases other than the
connection tracker fir
Fix comments for emc_processing and dp_netdev_input__
regarding md_is_valid.
Signed-off-by: Antonio Fischetti
---
lib/dpif-netdev.c | 13 +++--
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index e2cd931..5c5c20e 100644
--- a/lib
With the command:
ovs-appctl dpctl/ct-bkts
shows the number of connections per bucket.
By using a threshold:
ovs-appctl dpctl/ct-bkts gt=N
for each bucket shows the number of connections when they
are greater than N.
Signed-off-by: Antonio Fischetti
Signed-off-by: Bhanuprakash Bodireddy
Co
o-dir stream will succesfully pass through the firewall.
This patch allows to send the 1st initiating packet, but blocks the
transmission of the next UDP packets as long as the created connection
is still unreplied.
Signed-off-by: Antonio Fischetti
---
lib/conntrack-other.c | 10 +-
1
With the command:
ovs-appctl dpctl/ct-bkts
shows the number of connections per bucket.
By using a threshold:
ovs-appctl dpctl/ct-bkts gt=N
for each bucket shows the number of connections when they
are greater than N.
Signed-off-by: Antonio Fischetti
Signed-off-by: Bhanuprakash Bodireddy
Co
memcpy replaces the several single copies inside
dp_packet_clone_with_headroom().
Signed-off-by: Antonio Fischetti
---
lib/dp-packet.c | 18 +-
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/lib/dp-packet.c b/lib/dp-packet.c
index 67aa406..f4dbcb7 100644
--- a/lib
Current time is passed to conntrack_execute so it doesn't have
to recompute it again.
Signed-off-by: Antonio Fischetti
Acked by: Sugesh Chandran
---
In a firewall testbench set up with
table=0, priority=1 actions=drop
table=0, priority=10,arp actions=NORMAL
table=0, priority=100,ct_
ent to the classifier.
This patch is based on patch
"dpif-netdev: add EMC entry count and %full figure to pmd-stats-show" at:
https://mail.openvswitch.org/pipermail/ovs-dev/2017-January/327570.html
Also, this patch depends on the previous one in this series.
Signed-off-by: Antonio Fisc
When EMC is disabled the reading of RSS hash is skipped.
For packets that are not recirculated it retrieves the hash
value without considering the recirc id.
This is mostly a preliminary change for the next patch in
this series.
Signed-off-by: Antonio Fischetti
---
lib/dpif-netdev.c | 42
Packet metadata initialization is moved into dp_netdev_input to improve
performance.
Signed-off-by: Antonio Fischetti
---
In my testbench with the following port to port flow setup:
in_port=1,action=output:2
in_port=2,action=output:1
I measured packet Rx rate (regardless of packet loss) in a
From: Antonio Fischetti
With the command:
ovs-appctl dpctl/ct-bkts
shows the number of connections per bucket.
By using a threshold:
ovs-appctl dpctl/ct-bkts gt=N
for each bucket shows the number of connections when they
are greater than N.
Signed-off-by: Antonio Fischetti
Signed-off-by
With the command:
ovs-appctl dpctl/ct-bkts
shows the number of connections per bucket.
By using a threshold:
ovs-appctl dpctl/ct-bkts gt=N
for each bucket shows the number of connections when they
are greater than N.
Signed-off-by: Antonio Fischetti
Signed-off-by: Bhanuprakash Bodireddy
Co
From: Antonio Fischetti
With the command:
ovs-appctl dpctl/ct-bkts
shows the number of connections per bucket.
By using a threshold:
ovs-appctl dpctl/ct-bkts gt=N
for each bucket shows the number of connections when they
are greater than N.
Signed-off-by: Antonio Fischetti
Signed-off-by
From: Antonio Fischetti
Adds CT stats to report number of connections grouped by
protocol.
By using
utilities/ovs-appctl dpctl/ct-stats-show
it can display something like:
Connections Stats:
Total: 1808
TCP: 1808
With the verbose options:
utilities/ovs-appctl dpctl/ct-stats-show
From: Antonio Fischetti
Fixes some lines exceeding 80 chars and a couple of typos.
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c | 2 +-
lib/dpctl.c | 6 --
lib/dpif-netdev.c | 2 +-
utilities/ovs-dpctl.c | 6 --
4 files changed, 10 insertions(+), 6
From: Antonio Fischetti
memcpy replaces the single copies inside dp_packet_clone_with_headroom().
Signed-off-by: Antonio Fischetti
---
lib/dp-packet.c | 17 +
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/lib/dp-packet.c b/lib/dp-packet.c
index 67aa406..5b1d416
From: Antonio Fischetti
When OVS is configured as a firewall, with thousands of active
concurrent connections, the EMC gets quicly saturated and may come under
heavy thrashing for the reason that original and recirculated packets
keep overwrite existing active EMC entries due to its limited size
From: Antonio Fischetti
Current time is passed to conntrack_execute so it doesn't have
to recompute it again.
Signed-off-by: Antonio Fischetti
---
lib/conntrack.c| 4 ++--
lib/conntrack.h| 3 ++-
lib/dpif-netdev.c | 2 +-
tests/test-conntrack.c | 8 +---
4
From: Antonio Fischetti
When EMC is disabled the reading of RSS hash is skipped.
For packets that are not recirculated it retrieves the hash
value without considering the recirc id.
This is mostly a preliminary change for the next patch in
this series.
Signed-off-by: Antonio Fischetti
---
In
From: Antonio Fischetti
With conntrack enabled, packets get recirculated and this impacts
the performance with thousands of active concurrent connections.
This patch is aimed at avoiding recirculation for packets belonging to
established connections in steady state. This is achieved by
From: Antonio Fischetti
With conntrack enabled, packets get recirculated and this impacts
the performance with thousands of active concurrent connections.
This patch is aimed at avoiding recirculation for packets belonging to
established connections in steady state. This is achieved by
nd() is at 0.55 and the overall
throughput improved significantly.
Signed-off-by: Antonio Fischetti
Signed-off-by: Bhanuprakash Bodireddy
Co-authored-by: Bhanuprakash Bodireddy
Signed-off-by: Markus Magnusson
Co-authored-by: Markus Magnusson
---
lib/dpif-netdev.
Fix comments about the DPDK buffer data to refer to dp_packet_init_dpdk()
function.
Signed-off-by: Antonio Fischetti
---
lib/dp-packet.c | 4 ++--
lib/dp-packet.h | 10 +-
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/lib/dp-packet.c b/lib/dp-packet.c
index 793b54f
After packet classification packets are queued in to batches depending
on the matching netdev flow. Thereafter each batch is processed to execute
the related actions. This becomes particularly inefficient if there
are few packets in each batch as rte_eth_tx_burst() incurs expensive MMIO
writes.
Th
Small fix on the comments about the DPDK buffer data to refer
to dp_packet_init_dpdk() function.
Signed-off-by: Antonio Fischetti
---
lib/dp-packet.c | 4 ++--
lib/dp-packet.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/dp-packet.c b/lib/dp-packet.c
index 793b54f
{dp_hash, in_port} portion of the
miniflow. This doesn't contribute effectively in spreading hash values
and avoiding collisions.
v2: Using ovs_assert.
v3: Fix for dumped flows missing the in_port match.
Signed-off-by: Antonio Fischetti
Signed-off-by: Bhanuprakash Bodireddy
Co-author
{dp_hash, in_port} portion of the
miniflow. This doesn't contribute effectively in spreading hash values
and avoiding collisions.
v2: Using ovs_assert
Signed-off-by: Antonio Fischetti
Signed-off-by: Bhanuprakash Bodireddy
Co-authored-by: Bhanuprakash Bodireddy
Signed-off-by: Jarno Rajahalm
1 - 100 of 102 matches
Mail list logo