github.com/fleitner/dpdk/commit/a034eda95497fcd21d9321cdd3259183d3afd00e#diff-15c7e05c889b2a7513f72da68b277986R1521
I am a little bit curious, why such a decision? It's impossible to do that in
OvS?
Regards,
Michal Obrembski
-Original Message-
From: Flavio Leitner [mailto:f...@sysc
From: Mark Kavanagh
Currently, jumbo frame support for OvS-DPDK is implemented by
increasing the size of mbufs within a mempool, such that each mbuf
within the pool is large enough to contain an entire jumbo frame of
a user-defined size. Typically, for each user-defined MTU,
'requested_mtu', a ne
From: Mark Kavanagh
Currently, packets are only copied to a single segment in the function
dpdk_do_tx_copy(). This could be an issue in the case of jumbo frames,
particularly when multi-segment mbufs are involved.
This patch calculates the number of segments needed by a packet and
copies the dat
From: Tiago Lam
Previous commits have added support to the dp_packet API to handle
multi-segmented packets, where data is not stored contiguously in
memory. However, in some cases, it is inevitable and data must be
provided contiguously. Examples of such cases are when performing csums
over the e
From: Artur Twardowski
Signed-off-by: Artur Twardowski
---
lib/netdev-native-tnl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c
index d0ea3d5..f542858 100644
--- a/lib/netdev-native-tnl.c
+++ b/lib/netdev-native-tnl.c
@@
From: Artur Twardowski
Replaced variable names "hlen", "ulen", "gnh" with longer ones to make
the code analysis easier. Additionally, UDP header len is no longer
accumulated into GENEVE header length, additions are used in the places
where the sum of both headers is used.
Signed-off-by: Artur Tw
An unnecessary offset has been added while introducing dp_packet_may_pull in
netdev-native-tnl.c
Signed-off-by: Michal Obrembski
---
lib/netdev-native-tnl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c
index 145ae46
s to check if the tunneling headers (VXLAN,
GRE, ...) fit on the first mbuf. Otherwise return an error.
Signed-off-by: Tiago Lam
Signed-off-by: Michal Obrembski
---
lib/dp-packet.h | 18 +--
lib/flow.c | 81 -
lib/
-vsctl set Open_vSwitch . other_config:dpdk-multi-seg-mbufs=true
Co-authored-by: Mark Kavanagh
Signed-off-by: Mark Kavanagh
Signed-off-by: Tiago Lam
Signed-off-by: Michal Obrembski
---
Documentation/automake.mk | 1 +
Documentation/topics/dpdk/index.rst | 1 +
Documentation/topics
From: Tiago Lam
Previously, TSO was being explicity disabled on vhost interfaces,
meaning the guests wouldn't have TSO support negotiated in. With TSO
negotiated and enabled, packets are now marked for TSO, through the
PKT_TX_TCP_SEG flag.
In order to deal with this type of packets, a new functi
From: Tiago Lam
Given that multi-segment mbufs might be sent between interfaces that
support different capabilities, and may even support different layouts
of mbufs, outgoing packets should be validated before sent on the egress
interface. Thus, netdev_dpdk_eth_tx_burst() now calls DPDK's
rte_eth
(3/3, Ian Stokes).
Artur Twardowski (2):
Give the variables more meaningful names
Too long line split into two
Michal Obrembski (1):
Fix OVN failing tests.
Tiago Lam (4):
netdev-dpdk: Validate packets burst before Tx.
netdev-dpdk: Consider packets marked for TSO.
netdev-dpdk: Enable TSO w
Signed-off-by: Michal Obrembski
---
tests/test-dpdk-mbufs.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tests/test-dpdk-mbufs.c b/tests/test-dpdk-mbufs.c
index 0c152bf..c8dd155 100644
--- a/tests/test-dpdk-mbufs.c
+++ b/tests/test-dpdk-mbufs.c
@@ -601,9
From: Artur Twardowski
Signed-off-by: Artur Twardowski
Signed-off-by: Michal Obrembski
---
lib/flow.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/lib/flow.c b/lib/flow.c
index 94cfd62..e6019bf 100644
--- a/lib/flow.c
+++ b/lib/flow.c
@@ -1105,8 +1105,7
Signed-off-by: Michal Obrembski
---
tests/system-dpdk.at | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
index ca66135..abfe6e6 100644
--- a/tests/system-dpdk.at
+++ b/tests/system-dpdk.at
@@ -42,6 +42,7 @@ OVS_VSWITCHD_STOP
random packet out and check that `ofctl
dump-flows` shows the correct amount of packets and bytes sent.
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Signed-off-by: Michal Obrembski
---
tests/system-dpdk.at | 65
1 file changed, 65
From: Tiago Lam
In order to create a minimal environment that allows the tests to get
mbufs from an existing mempool, the following approach is taken:
- EAL is initialised (by using the main dpdk_init()) and a (very) small
mempool is instantiated (mimicking the logic in dpdk_mp_create()).
Thi
o support other options, OVS_DPDK_START() has been modified to accept
extra configs in the form "$config_name=$config_value". It then uses
ovs-vsctl to set the configs.
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Acked-by: Flavio Leitner
Signed-off-by: Michal Obrembski
---
tests/
en_vSwitch . other_config:dpdk-socket-mem=4096,0
==> ovs-vsctl set Open_vSwitch . other_config:dpdk-multi-seg-mbufs=true
Co-authored-by: Tiago Lam
Signed-off-by: Mark Kavanagh
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Signed-off-by: Michal Obrembski
---
Documentation/
niflow_extract() function has been modified to check
if the respective packet headers don't span across multiple mbufs. This
requirement is needed to guarantee that callers can assume headers are
always in contiguous memory.
Signed-off-by: Tiago Lam
Signed-off-by: Michal Obrembsk
: Tiago Lam
Acked-by: Eelco Chaudron
Signed-off-by: Michal Obrembski
---
lib/netdev-dpdk.c | 89 +--
1 file changed, 80 insertions(+), 9 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 6fef910..6b66fc3 100644
--- a/lib
From: Michael Qiu
When doing packet clone, if packet source is from DPDK driver,
multi-segment must be considered, and copy the segment's data one by
one.
Also, lots of DPDK mbuf's info is missed during a copy, like packet
type, ol_flags, etc. That information is very important for DPDK to do
p
From: Tiago Lam
In its current implementation dp_packet_shift() is also unaware of
multi-seg mbufs (that holds data in memory non-contiguously) and assumes
that data exists contiguously in memory, memmove'ing data to perform the
shift.
To add support for multi-seg mbufs a new set of functions wa
From: Tiago Lam
Most helper functions in dp-packet assume that the data held by a
dp_packet is contiguous, and perform operations such as pointer
arithmetic under that assumption. However, with the introduction of
multi-segment mbufs, where data is non-contiguous, such assumptions are
no longer p
From: Tiago Lam
When a dp_packet is from a DPDK source, and it contains multi-segment
mbufs, the data_len is not equal to the packet size, pkt_len. Instead,
the data_len of each mbuf in the chain should be considered while
distributing the new (provided) size.
To account for the above dp_packet_
From: Tiago Lam
A new mutex, 'nonpmd_mp_mutex', has been introduced to serialise
allocation and free operations by non-pmd threads on a given mempool.
free_dpdk_buf() has been modified to make use of the introduced mutex.
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Acked-by: Flavio Leit
eadroom() now has split functions for
handling DPDK sourced packets and non-DPDK packets;
- Modified various functions in dp-packet.h to account for multi-seg
mbufs - dp_packet_put_uninit(), dp_packet_tail(), dp_packet_tail()
and dp_packet_at();
- Added supp
From: Artur Twardowski
Replaced variable names "hlen", "ulen", "gnh" with longer ones to make
the code analysis easier. Additionally, UDP header len is no longer
accumulated into GENEVE header length, additions are used in the places
where the sum of both headers is used.
Signed-off-by: Artur Tw
From: Artur Twardowski
Signed-off-by: Artur Twardowski
---
lib/netdev-native-tnl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c
index d0ea3d5..f542858 100644
--- a/lib/netdev-native-tnl.c
+++ b/lib/netdev-native-tnl.c
@@
From: Michal Obrembski
An unnecessary offset has been added while introducing dp_packet_may_pull in
netdev-native-tnl.c
Signed-off-by: Michal Obrembski
---
lib/netdev-native-tnl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native
s to check if the tunneling headers (VXLAN,
GRE, ...) fit on the first mbuf. Otherwise return an error.
Signed-off-by: Tiago Lam
Signed-off-by: Michal Obrembski
---
lib/dp-packet.h | 18 +--
lib/flow.c | 81 -
lib/
-vsctl set Open_vSwitch . other_config:dpdk-multi-seg-mbufs=true
Co-authored-by: Mark Kavanagh
Signed-off-by: Mark Kavanagh
Signed-off-by: Tiago Lam
Signed-off-by: Michal Obrembski
---
Documentation/automake.mk | 1 +
Documentation/topics/dpdk/index.rst | 1 +
Documentation/topics
k Kavanagh
Signed-off-by: Tiago Lam
Signed-off-by: Michal Obrembski
---
lib/dp-packet.h| 16 +++
lib/netdev-bsd.c | 11 -
lib/netdev-dpdk.c | 122 ++---
lib/netdev-dummy.c | 11 -
lib/netdev-linux.c | 15 +++
5 files ch
From: Michal Obrembski
Enabling TSO offload allows a host stack to delegate the segmentation of
oversized TCP packets to the underlying physical NIC, if supported. In the case
of a VM this means that the segmentation of the packets is not performed by the
guest kernel, but by the host NIC itself
ional requirements when debug is enabled.
- Update and/or reset required checksums when tx offload is set for
packet.
Signed-off-by: Tiago Lam
Signed-off-by: Michal Obrembski
---
lib/netdev-dpdk.c | 21 +++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/lib/netdev-dpd
From: Michal Obrembski
Signed-off-by: Michal Obrembski
---
tests/test-dpdk-mbufs.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tests/test-dpdk-mbufs.c b/tests/test-dpdk-mbufs.c
index 0c152bf..c8dd155 100644
--- a/tests/test-dpdk-mbufs.c
+++ b/tests/test
From: Artur Twardowski
Signed-off-by: Artur Twardowski
Signed-off-by: Michal Obrembski
---
lib/flow.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/lib/flow.c b/lib/flow.c
index 94cfd62..e6019bf 100644
--- a/lib/flow.c
+++ b/lib/flow.c
@@ -1105,8 +1105,7
From: Michal Obrembski
Signed-off-by: Michal Obrembski
---
tests/system-dpdk.at | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
index ca66135..abfe6e6 100644
--- a/tests/system-dpdk.at
+++ b/tests/system-dpdk.at
@@ -42,6 +42,7
From: Michal Obrembski
It looks like in dp_packet_clone_with_headroom() was used a DPDK functions when
DPDK was not enabled.
Signed-off-by: Michal Obrembski
---
lib/dp-packet.c | 19 +++
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/lib/dp-packet.c b/lib/dp
random packet out and check that `ofctl
dump-flows` shows the correct amount of packets and bytes sent.
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Signed-off-by: Michal Obrembski
---
tests/system-dpdk.at | 65
1 file changed, 65
o support other options, OVS_DPDK_START() has been modified to accept
extra configs in the form "$config_name=$config_value". It then uses
ovs-vsctl to set the configs.
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Acked-by: Flavio Leitner
Signed-off-by: Michal Obrembski
---
tests/
().
Finally, this has also been integrated with the new DPDK testsuite.
Thus, when running `$sudo make check-dpdk` one will also be running
these tests.
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Acked-by: Flavio Leitner
Signed-off-by: Michal Obrembski
---
tests/automake.mk
en_vSwitch . other_config:dpdk-socket-mem=4096,0
==> ovs-vsctl set Open_vSwitch . other_config:dpdk-multi-seg-mbufs=true
Co-authored-by: Tiago Lam
Signed-off-by: Mark Kavanagh
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Signed-off-by: Michal Obrembski
---
Documentation/
niflow_extract() function has been modified to check
if the respective packet headers don't span across multiple mbufs. This
requirement is needed to guarantee that callers can assume headers are
always in contiguous memory.
Signed-off-by: Tiago Lam
Signed-off-by: Michal Obrembsk
: Tiago Lam
Acked-by: Eelco Chaudron
Signed-off-by: Michal Obrembski
---
lib/netdev-dpdk.c | 89 +--
1 file changed, 80 insertions(+), 9 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 6fef910..6b66fc3 100644
--- a/lib
DPDK to do
packets processing.
Co-authored-by: Mark Kavanagh
Co-authored-by: Tiago Lam
Signed-off-by: Michael Qiu
Signed-off-by: Mark Kavanagh
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Signed-off-by: Michal Obrembski
---
lib/dp-packe
tions was
introduced, dp_packet_mbuf_shift() and dp_packet_mbuf_write(). These
functions are used by dp_packet_shift(), when handling multi-seg mbufs,
to shift and write data within a chain of mbufs.
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Signed-off-by: Michal Obrembski
---
lib/dp-pac
Mark Kavanagh
Signed-off-by: Przemyslaw Lal
Signed-off-by: Marcin Ksiadz
Signed-off-by: Yuanhan Liu
Signed-off-by: Tiago Lam
Acked-by: Eelco Chaudron
Signed-off-by: Michal Obrembski
---
lib/dp-packet.h | 101 +---
1 file changed, 89 insertions(+
Lam
Acked-by: Eelco Chaudron
Acked-by: Flavio Leitner
Signed-off-by: Michal Obrembski
---
lib/dp-packet.c | 4 +-
lib/dp-packet.h | 171
2 files changed, 151 insertions(+), 24 deletions(-)
diff --git a/lib/dp-packet.c b/lib/dp-packet.c
by: Flavio Leitner
Signed-off-by: Michal Obrembski
---
lib/netdev-dpdk.c | 31 +--
1 file changed, 29 insertions(+), 2 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index bc20d68..09fd72d 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -289
From: Michal Obrembski
Overview
This patchset introduces support for multi-segment mbufs to OvS-DPDK.
Multi-segment mbufs are typically used when the size of an mbuf is
insufficient to contain the entirety of a packet's data. Instead, the
data is split across numerous mbufs,
51 matches
Mail list logo