1. Revert the change of metadata macro definition for referring to headroom
space in mbuf;
2. Fix wrongly referring to RX queues number in TX queues start/stop function.
Signed-off-by: Ouyang Changchun
---
examples/vhost/main.c | 15 +--
lib/librte_ether/rte_ethdev.c | 8
This patch adds ability to route packets according to source, destination
ip/ports, L4 proto and pool to certain queue.
---
lib/librte_ether/rte_ethdev.c | 81 ++
lib/librte_ether/rte_ethdev.h | 96 ++
lib/librte_pmd_ixgbe/ixgbe/ix
This patch adds ability to route TCP packets according to SYN flag presence to
certain queue.
---
lib/librte_ether/rte_ethdev.c | 66 +
lib/librte_ether/rte_ethdev.h | 63 +++
lib/librte_pmd_ixgbe/ixgbe/ixgbe_type.h |
This patch adds ability to route packets according to ethertype, priority and
pool to certain queue specified in rx_queue field.
---
lib/librte_ether/rte_ethdev.c | 81 +
lib/librte_ether/rte_ethdev.h | 78
lib/librte_pmd_ixgb
This patchset adds in addition to the Flow Director filters L2 Ethertype, SYN
and Five tuple queue filters to route
packets according to ethertype, l4 proto, source/destination ip/ports pool and
presence of SYN flag in TCP packet.
Unlike http://dpdk.org/ml/archives/dev/2014-May/002512.html this
Support user space vhost zero copy. It removes packets copying between host and
guest in RX/TX packets.
It introduces an extra ring to store the detached mbufs. At initialization
stage all mbufs will put into
this ring; when one guest starts, vhost gets the available buffer address
allocated by
Implement mbuf metadata macros to facilitate refering to space in mbuf headroom;
Signed-off-by: Ouyang Changchun
---
lib/librte_mbuf/rte_mbuf.h | 17 +
1 file changed, 17 insertions(+)
diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index edffc2c..baf3ca4 10
1. Add API to support queue start and stop functionality for RX/TX, and
implement them in IXGBE PMD;
2. Enable hardware loopback functionality in VMDQ mode;
Signed-off-by: Ouyang Changchun
---
lib/librte_eal/linuxapp/eal/eal_memory.c | 2 +-
lib/librte_ether/rte_ethdev.c| 104
Short summary:
* Add API to support queue start and stop functionality for RX/TX, and
implement them in IXGBE PMD;
* Enable hardware loopback functionality in VMDQ mode;
* Implement mbuf metadata macros to facilitate refering to space in mbuf
headroom;
* Support user space vhost zero copy RX/TX,
2014-05-19 09:18, Neil Horman:
> On Mon, May 19, 2014 at 12:11:35PM +0200, Thomas Monjalon wrote:
> > My main concerns are about naming and extensions.
> > We must keep "dpdk-core" naming in order to distinguish it from PMD
> > extensions.
>
> I don't see why. We can name packages whatever we wan
Hi Changchun,
2014-05-19 23:09, Ouyang Changchun:
> 1. Revert the change of metadata macro definition for referring to headroom
> space in mbuf;
> 2. Fix wrongly referring to RX queues number in TX queues
> start/stop function.
>
> Signed-off-by: Ouyang Changchun
You are fixing commits which ar
Hi,
2014-05-18 17:07, Helmut Sim:
> wrote:
> > 2014-05-14 18:44, Helmut Sim:
> > > I made the required change in order to support the 82541GI chipset and I
> > > was able to bind it successfully to the igb_uio
> >
> > Don't hesitate to submit a patch after having validated that it's working
> > w
Support for loading/unloading VFIO drivers, binding/unbinding
devices to/from VFIO, also setting up correct userspace permissions.
Signed-off-by: Anatoly Burakov
---
tools/setup.sh | 168
1 files changed, 145 insertions(+), 23 deletions(-
Since igb_uio no longer has a PCI ID list, the script will no
longer distinguish between supported and unsupported NICs.
There's a weird behaviour of sysfs when a new device ID is added to
new_id. Subsequent writing to "bind" will result in IOError on
closing the file. This error is harmless but i
Renaming the igb_uio_bind script to dpdk_nic_bind to have a generic
name since we're now supporting two drivers.
Signed-off-by: Anatoly Burakov
---
tools/{igb_uio_bind.py => dpdk_nic_bind.py} |0
1 files changed, 0 insertions(+), 0 deletions(-)
rename tools/{igb_uio_bind.py => dpdk_nic_bind
Note that since igb_uio no longer has a PCI ID list, it can now be
bound to any device, not just those explicitly supported by DPDK. In
other words, it now behaves similar to PCI stub, VFIO and other generic
PCI drivers.
Therefore to bind a new device to igb_uio, the user will now have to
first wr
Adding unit tests for VFIO interrupt type command-line parameter.
We don't know if VFIO is compiled (eal_vfio.h header is internal
to Linuxapp EAL), so we check this flag regardless.
Signed-off-by: Anatoly Burakov
---
app/test/test_eal_flags.c | 24
1 files changed, 24
This makes it possible to run DPDK without hugepage memory when VFIO
is used, as VFIO uses virtual addresses to set up DMA mappings.
Signed-off-by: Anatoly Burakov
---
lib/librte_eal/linuxapp/eal/eal_memory.c |8 +++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/lib/lib
Unlike igb_uio, VFIO interrupt type is not set by kernel module
parameters but is set up via ioctl() calls at runtime. This warrants
a new EAL command-line parameter. It will have no effect if VFIO is
not compiled, but will set VFIO interrupt type to either "legacy" or
"msix" if VFIO support is com
Add support for binding VFIO devices if RTE_PCI_DRV_NEED_IGB_UIO
is set for this driver. Try VFIO first, if not mapped then try
IGB_UIO too.
Signed-off-by: Anatoly Burakov
---
lib/librte_eal/linuxapp/eal/eal_pci.c | 55 -
1 files changed, 54 insertions(+), 1 del
VFIO is kernel 3.6+ only, and so is only compiled when DPDK config
option CONFIG_RTE_EAL_VFIO is enabled, and kernel 3.6 or higher is
detected, thus preventing compile failures on older kernels if VFIO is
enabled in config (and it is, by default).
Since VFIO cannot be used to map the same device t
Creating code to handle VFIO interrupts in EAL interrupts, and also
adding a header eal_vfio.h.
This header checks two things:
* checks if CONFIG_RTE_EAL_VFIO was enabled during build time
* checks that kernel version is 3.6+ so that DPDK would still compile
on older kernels despite VFIO compila
Make VFIO compilation optional for all configs.
Signed-off-by: Anatoly Burakov
---
config/defconfig_i686-default-linuxapp-gcc |1 +
config/defconfig_i686-default-linuxapp-icc |1 +
config/defconfig_x86_64-default-linuxapp-gcc |1 +
config/defconfig_x86_64-default-linuxapp-icc |
Moving interrupt type enum out of igb_uio and renaming it to be more
generic. Such a strange header naming and separation is done mostly to
make coming virtio patches easier to port to dpdk.org tree.
Signed-off-by: Anatoly Burakov
---
lib/librte_eal/common/Makefile |1 +
Currently, igb_uio is always compiled. Some Linux distribution may
not want to include igb_uio by default, so we need to make sure that
igb_uio compilation can be optional.
Signed-off-by: Anatoly Burakov
---
config/defconfig_i686-default-linuxapp-gcc |1 +
config/defconfig_i686-default-lin
Rename the RTE_PCI_DRV_NEED_IGB_UIO to be more generic,
retain old macro for backwards compatibility. Probably should
be removed in one of the next releases.
Signed-off-by: Anatoly Burakov
---
app/test/test_pci.c |4 ++--
lib/librte_eal/bsdapp/eal/eal_pci.c |2 +-
Currently, EAL does not distinguish between actual failures and
expected initialization errors. E.g. sometimes the driver fails to
initialize because it was not supposed to be initialized in the
first place, such as device not being managed by said driver.
This patch makes EAL fail on actual initi
In order to make the code a bit more clean while using multiple
drivers, IGB_UIO mapping has been separated into its own file.
Signed-off-by: Anatoly Burakov
---
lib/librte_eal/linuxapp/eal/Makefile |1 +
lib/librte_eal/linuxapp/eal/eal_pci.c | 424 +--
This patchset adds support for using VFIO instead of IGB_UIO to
map the device BARs.
VFIO is a kernel 3.6+ driver allowing secure DMA from userspace
by means of using IOMMU instead of working directly with physical
memory like igb_uio does.
Short summary:
* Adding support for VFIO in EAL PCI code
The rte_mbuf structure is modified by the following commits in dpdk:
mbuf: rename vlan_macip_len in hw_offload and increase its size
mbuf: change ol_flags to 32 bits
mbuf: replace data pointer by an offset
mbuf: merge physaddr and buf_len in a bitfield
mbuf: remove the rte_pktmbuf structure
m
The rte_mbuf structure is modified by the following commits in dpdk:
mbuf: rename vlan_macip_len in hw_offload and increase its size
mbuf: change ol_flags to 32 bits
mbuf: replace data pointer by an offset
mbuf: merge physaddr and buf_len in a bitfield
mbuf: remove the rte_pktmbuf structure
m
It's a pain to support many versions of DPDK for external drivers.
Today, it's not required to keep this driver working on older DPDK
versions. If it's required in the future, as the DPDK API is not stable
enough, the correct approach will probably to have several maintenance
branches instead of tr
The rte_mbuf structure is modified by the following commits in dpdk:
mbuf: rename vlan_macip_len in hw_offload and increase its size
mbuf: change ol_flags to 32 bits
mbuf: replace data pointer by an offset
mbuf: merge physaddr and buf_len in a bitfield
mbuf: remove the rte_pktmbuf structure
m
Implement TSO (TCP segmentation offload) in ixgbe driver.
The driver is now able to use PKT_TX_TCP_SEG mbuf flag and m->hw_offload
to configure the hardware support of TCP segmentation.
In the patch, the tx_desc_cksum_flags_to_olinfo() and
tx_desc_ol_flags_to_cmdtype() functions have been reworked
Implement the generic part of TCP segmentation offload:
- rte_mbuf modifications
- testpmd for validation
To delegate the TCP segmentation to the hardware, the user has to:
- set the PKT_TX_TCP_SEG flag in mbuf->ol_flags (this flag implies
PKT_TX_IP_CKSUM and PKT_TX_TCP_CKSUM)
- fill the mbuf
Always modify the source address of the packet in order to validate
the calculation of the checksums (L3 or L4). This was already done
for IPv4 software checksum, add it for IPv4 hw checksum and IPv6.
Signed-off-by: Olivier Matz
---
app/test-pmd/csumonly.c | 2 ++
1 file changed, 2 insertions(+)
To implement the TCP segmentation offload, we will need to add
some more meta information in the mbuf, like the length of the
L4 header, the MSS, ...
To prepare this modification, this patch renames vlan_macip_len in
hw_offload and change its length from 32 bits to 64 bits.
Signed-off-by: Olivier
There is no room to add other offload flags in the current 16 bits
fields. Since we have more room in the mbuf structure, we can change
the ol_flags to 32 bits.
A next commit will add the support of TSO (TCP Segmentation Offload)
which require a new ol_flags, justifying this commit.
Thanks to th
In test-pmd (rxonly.c), the code is able to dump the list of ol_flags.
The issue is that the list of flags in the application has to be
synchronized with the flags defined in rte_mbuf.h.
This patch introduces 2 new functions rte_get_rx_ol_flag_name()
and rte_get_tx_ol_flag_name() that returns the
The mbuf structure already contains a pointer to the beginning of the
buffer (m->buf_addr). It is not needed to use 8 bytes again to store
another pointer to the beginning of the data.
Using a 16 bits unsigned integer is enough as we know that a mbuf is
never longer than 64KB. We gain 6 bytes in t
Fix indentation of comments: avoid to exceed 80 columns, and try to
start all comments at the same offset.
Signed-off-by: Olivier Matz
---
lib/librte_mbuf/rte_mbuf.h | 30 +++---
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/lib/librte_mbuf/rte_mbuf.h b/
The physical address is never greater than (1 << 48) = 256 TB.
We can win 2 bytes in the mbuf structure by merging the physical
address and the buffer length in the same bitfield.
Signed-off-by: Olivier Matz
---
lib/librte_mbuf/rte_mbuf.c | 3 ++-
lib/librte_mbuf/rte_mbuf.h | 7 ---
2 files
The rte_pktmbuf structure was initially included in the rte_mbuf
structure. This was needed when there was 2 types of mbuf (ctrl and
packet). As the control mbuf has been removed, we can merge the
rte_pktmbuf into the rte_mbuf structure.
Advantages of doing this:
- the access to mbuf fields is e
The initial role of rte_ctrlmbuf is to carry generic messages (data
pointer + data length) but it's not used by the DPDK or it applications.
Keeping it implies:
- loosing 1 byte in the rte_mbuf structure
- having some dead code rte_mbuf.[ch]
This patch removes this feature. Thanks to it, it is
It seems that RTE_MBUF_SCATTER_GATHER is not the proper name for the
feature it provides. "Scatter gather" means that data is stored using
several buffers. RTE_MBUF_REFCNT seems to be a better name for that
feature as it provides a reference counter for mbufs.
The macro RTE_MBUF_SCATTER_GATHER is
According to Intel? 82599 10 GbE Controller Datasheet (Table 7-38), both
L2 and L3 lengths are needed to offload the IP checksum.
Note that the e1000 driver does not need to be patched as it already
contains the fix.
Signed-off-by: Olivier Matz
Acked-by: Konstantin Ananyev
---
lib/librte_pmd_e
This series add TSO support in ixgbe DPDK driver. This is the second
version of the series. The first version (RFC) was posted 10 days ago
and discussed on the list [1]. The list of changes is provided at the
end of this cover letter.
Also, as discussed previously on the list [2], one problem is t
2014-05-19 14:36, Olivier Matz:
> Fix compilation error introduced by:
> 591a9d798 add FILE argument to debug functions
>
> The stdio.h include is missing due to the recent adding of FILE*
> argument of dump functions.
>
> Signed-off-by: Olivier Matz
Acked-by: Thomas Monjalon
Sorry, it seems
2014-05-09 16:50, Olivier Matz:
> This series add TSO support in ixgbe DPDK driver. As discussed
> previously on the list [1], one problem is that there is not enough room
> in rte_mbuf today to store the required information to implement this
> feature:
> - a new ol_flag
> - the MSS
> - the
Fix compilation error introduced by:
591a9d798 add FILE argument to debug functions
The stdio.h include is missing due to the recent adding of FILE*
argument of dump functions.
Signed-off-by: Olivier Matz
---
lib/librte_ivshmem/rte_ivshmem.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/l
Hi,
I'll try so sum it up this interesting discussion about checksum API for TSO.
We know at least 2 checksum methods:
- the standard one
- the special one for ixgbe TSO
In Linux ixgbe, checksum is redone in the driver for TSO case.
We want to compute checksum in the application/stack in order t
On Mon, May 19, 2014 at 06:28:47PM +0200, Thomas Monjalon wrote:
> 2014-05-19 09:18, Neil Horman:
> > On Mon, May 19, 2014 at 12:11:35PM +0200, Thomas Monjalon wrote:
> > > My main concerns are about naming and extensions.
> > > We must keep "dpdk-core" naming in order to distinguish it from PMD
>
Hi Jingjing,
2014-05-17 17:35, Jingjing Wu:
> A generic filter mechanism for handling special packet is required. It will
> allows filters to be set in HW when available for so that specific packets
> may be filtered by NICs to specific desriptor queues for processing.
> Currently only the Flow D
Hi Neil,
Thanks for sharing your progress.
My main concerns are about naming and extensions.
We must keep "dpdk-core" naming in order to distinguish it from PMD
extensions. And then, packaging of memnic and non-uio paravirtualization PMDs
(virtio/vmxnet3) are missing.
2014-05-13 15:08, Neil Ho
2014-05-16 09:55, Cyril Chemparathy:
> On 5/16/2014 7:22 AM, Thomas Monjalon wrote:
> > This is not the first time a new engine is added by copy/pasting the most
> > part of an existing engine. For instance, the "mac-retry" engine was
> > added by Intel as a copy/paste of the original "mac" one.
>
Hi Bruce,
> Can you perhaps also include the specific testpmd parameter you used in your
> tests, as they can have a large effect on performance. On my Sandy Bridge
> platform here are the testpmd flags I use for iofwd testing:
>
> "--rxd=128 --rxfreet=32 --rxpt=8 --rxht=8 --rxwt=0 --txd=512 --t
Hi Jijiang,
I feel there is a lot of important changes in these patches but I cannot
easily read them. Splitting in many small patches with nice commit logs would
help a lot.
Please refer to http://dpdk.org/dev#send in order to understand what must be a
good patch.
At least, you should make pa
> -Original Message-
> From: Neil Horman [mailto:nhorman at tuxdriver.com]
> Sent: Friday, May 16, 2014 7:54 PM
> To: Richardson, Bruce
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 0/3] ring: provide rte_ring_as_ethdev API
>
> On Fri, May 16, 2014 at 07:15:11PM +0100, Bruce Ric
Bruce,
On Wed, May 14, 2014 at 5:18 PM, Richardson, Bruce <
bruce.richardson at intel.com> wrote:
>
> This patch I'm not so sure about. For 64-bit, the term "default" is pretty
> much correct, as it should work for any 64-bit IA cpu AFAIK, since all
> 64-bit cpus should have the necessary SSE in
Hello Bruce,
I agree that we should merge those in the (near ?) future, all the more so
as bsd and linux implementations are getting closer.
Anyway, thanks.
--
David Marchand
On Wed, May 14, 2014 at 5:10 PM, Richardson, Bruce <
bruce.richardson at intel.com> wrote:
> > -Original Message-
> -Original Message-
> From: Olivier MATZ [mailto:olivier.matz at 6wind.com]
> Sent: Monday, May 19, 2014 10:31 AM
> To: Richardson, Bruce; Shaw, Jeffrey B; dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH RFC 05/11] mbuf: merge physaddr and buf_len in
> a bitfield
>
>
> By the way, I thi
On Mon, May 19, 2014 at 10:59:18AM +, Richardson, Bruce wrote:
>
>
> > -Original Message-
> > From: Neil Horman [mailto:nhorman at tuxdriver.com]
> > Sent: Friday, May 16, 2014 7:54 PM
> > To: Richardson, Bruce
> > Cc: dev at dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH 0/3] ring: prov
en
- modifications of external PMDs (memnic, virtio, vmxnet3)
Regards,
Olivier
-- next part --
A non-text attachment was scrubbed...
Name: iofwd_normalrxtx.png
Type: image/png
Size: 15340 bytes
Desc: not available
URL:
<http://dpdk.org/ml/archives/dev/attachments/20140519
On Mon, May 19, 2014 at 12:11:35PM +0200, Thomas Monjalon wrote:
> Hi Neil,
>
> Thanks for sharing your progress.
>
No worries.
> My main concerns are about naming and extensions.
> We must keep "dpdk-core" naming in order to distinguish it from PMD
> extensions.
I don't see why. We can name p
> -Original Message-
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Olivier MATZ
> Sent: Monday, May 19, 2014 8:27 AM
> To: Shaw, Jeffrey B; dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH RFC 05/11] mbuf: merge physaddr and buf_len in
> a bitfield
>
> Hi Jeff,
>
> On 05/09/
65 matches
Mail list logo