DPDK patches and discussions
 help / color / mirror / Atom feed
From: Keith Wiles <keith.wiles@intel.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [RFC PATCH 0/4] Extending DPDK to have more devices supported
Date: Wed,  8 Apr 2015 15:58:36 -0500	[thread overview]
Message-ID: <1428526720-50221-1-git-send-email-keith.wiles@intel.com> (raw)

Hi All,

Here is a set of RFC patches to update DPDK to support a generic set of
devices. The patches that follow create two files eal_common_device.h
and rte_common_device.c and then a few items in rte_ethdev.[ch] were moved
to cleanup those files by moving the device generic values and functions
into a common set of device generic files.

In the rte_common_device.h file are a couple of macros to abstract a few
common items from rte_ethdev.h which are not ethernet specific. These
generic device specific structure members are place into macros to be
placed at the top of each new device type crypto, hardware offload, dpi,
compression and possible others to be defined later.
 Note: could have used nested structures, but required a larger change set.

I did not pull the Rx/Tx Routines into a common function, but it could be
done if everyone agrees. It does not mean every device will use a common
Rx/Tx routine. Without pulling Rx/Tx routines into a common file allows
the device writer to have similar or different set of routines.

These patches do not contain any new devices as these are being work on
today.

More cleanup of ethdev could be done to remove NIC specific features not
supported in all devices and someone needs to do that cleanup IMO.

The code is untested and I wanted to get something our for others to poke at
today and more could be pulled out of ethdev as well. I/We will be looking
at testing the code as we get more completed.

I have not finished up the crypto APIs yet, but I am planning to work on
those additions today. The crypto code we are using is the Quick Assist code
found on 01.org, but we need to update the code to be move DPDK friendly.

The QAT code does have a modified like API similar to Linux Kernel crypto API
and I want to review that code first.

Regards,
++Keith

Keith Wiles (4):
  Rename of device types to be generic device names.
  Add the new common device header and C file.
  Update files to build new device generic common files and headers.
  Update the rte_ethdev.[ch] files for the new device generic changes.

 app/test/test_link_bonding.c                      |  10 +-
 app/test/virtual_pmd.c                            |   4 +-
 examples/link_status_interrupt/main.c             |   6 +-
 lib/librte_eal/bsdapp/eal/Makefile                |   1 +
 lib/librte_eal/common/Makefile                    |   1 +
 lib/librte_eal/common/eal_common_device.c         | 185 +++++++
 lib/librte_eal/common/include/rte_common_device.h | 617 ++++++++++++++++++++++
 lib/librte_eal/common/include/rte_log.h           |   1 +
 lib/librte_eal/linuxapp/eal/Makefile              |   1 +
 lib/librte_ether/rte_ethdev.c                     | 290 ++--------
 lib/librte_ether/rte_ethdev.h                     | 225 +++-----
 lib/librte_pmd_af_packet/rte_eth_af_packet.c      |   2 +-
 lib/librte_pmd_bond/rte_eth_bond_api.c            |   6 +-
 lib/librte_pmd_bond/rte_eth_bond_pmd.c            |  12 +-
 lib/librte_pmd_bond/rte_eth_bond_private.h        |   2 +-
 lib/librte_pmd_e1000/em_ethdev.c                  |   8 +-
 lib/librte_pmd_e1000/em_rxtx.c                    |   4 +-
 lib/librte_pmd_e1000/igb_ethdev.c                 |   2 +-
 lib/librte_pmd_i40e/i40e_ethdev.c                 |   4 +-
 lib/librte_pmd_ixgbe/ixgbe_ethdev.c               |   2 +-
 lib/librte_pmd_mlx4/mlx4.c                        |   2 +-
 lib/librte_pmd_null/rte_eth_null.c                |   2 +-
 lib/librte_pmd_pcap/rte_eth_pcap.c                |   2 +-
 lib/librte_pmd_ring/rte_eth_ring.c                |   2 +-
 lib/librte_pmd_virtio/virtio_ethdev.c             |   2 +-
 lib/librte_pmd_xenvirt/rte_eth_xenvirt.c          |   2 +-
 26 files changed, 969 insertions(+), 426 deletions(-)
 create mode 100644 lib/librte_eal/common/eal_common_device.c
 create mode 100644 lib/librte_eal/common/include/rte_common_device.h

-- 
2.3.0

             reply	other threads:[~2015-04-08 20:58 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-08 20:58 Keith Wiles [this message]
2015-04-08 20:58 ` [dpdk-dev] [RFC PATCH 1/4] Rename of device types to be generic device names Keith Wiles
2015-04-08 20:58 ` [dpdk-dev] [RFC PATCH 2/4] Add the new common device header and C file Keith Wiles
2015-04-09 11:53   ` Neil Horman
2015-04-10 19:25     ` Wiles, Keith
2015-04-12 13:08       ` Neil Horman
2015-04-08 20:58 ` [dpdk-dev] [RFC PATCH 3/4] Update files to build new device generic common files and headers Keith Wiles
2015-04-08 20:58 ` [dpdk-dev] [RFC PATCH 4/4] Update the rte_ethdev.[ch] files for the new device generic changes Keith Wiles
2015-04-10 18:47 ` [dpdk-dev] [RFC PATCH 0/4] Extending DPDK to have more devices supported Wiles, Keith

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1428526720-50221-1-git-send-email-keith.wiles@intel.com \
    --to=keith.wiles@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).