* [PATCH v7 4/9] null: export eth_dev_null_create
@ 2015-10-30 13:56 Tomasz Kulasek
  0 siblings, 0 replies; 2+ messages in thread
From: Tomasz Kulasek @ 2015-10-30 13:56 UTC (permalink / raw)
  To: dev
Date: Fri, 30 Oct 2015 14:55:59 +0100
Message-Id: <1446213364-11856-5-git-send-email-tomaszx.kulasek@intel.com>
X-Mailer: git-send-email 2.1.4
In-Reply-To: <1446213364-11856-1-git-send-email-tomaszx.kulasek@intel.com>
References: <1444989651-6236-1-git-send-email-tomaszx.kulasek@intel.com>
 <1446213364-11856-1-git-send-email-tomaszx.kulasek@intel.com>
v6 changes:
 - reordered with patch 5/9
 - fixed forward dependency to patch patch 5/9
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Acked-by: Tetsuya Mukawa <mukawa@igel.co.jp>
---
 drivers/net/null/Makefile                 |    2 +-
 drivers/net/null/rte_eth_null.c           |    4 ++-
 drivers/net/null/rte_eth_null.h           |   40 +++++++++++++++++++++++++++++
 drivers/net/null/rte_pmd_null_version.map |    7 +++++
 4 files changed, 51 insertions(+), 2 deletions(-)
 create mode 100644 drivers/net/null/rte_eth_null.h
diff --git a/drivers/net/null/Makefile b/drivers/net/null/Makefile
index 96ba01c..2202389 100644
--- a/drivers/net/null/Makefile
+++ b/drivers/net/null/Makefile
@@ -51,7 +51,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += rte_eth_null.c
 #
 # Export include files
 #
-SYMLINK-y-include +=
+SYMLINK-y-include += rte_eth_null.h
 
 # this lib depends upon:
 DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += lib/librte_mbuf
diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c
index bf81b1b..236d998 100644
--- a/drivers/net/null/rte_eth_null.c
+++ b/drivers/net/null/rte_eth_null.c
@@ -38,6 +38,8 @@
 #include <rte_dev.h>
 #include <rte_kvargs.h>
 
+#include "rte_eth_null.h"
+
 #define ETH_NULL_PACKET_SIZE_ARG	"size"
 #define ETH_NULL_PACKET_COPY_ARG	"copy"
 
@@ -387,7 +389,7 @@ static const struct eth_dev_ops ops = {
 	.stats_reset = eth_stats_reset,
 };
 
-static int
+int
 eth_dev_null_create(const char *name,
 		const unsigned numa_node,
 		unsigned packet_size,
diff --git a/drivers/net/null/rte_eth_null.h b/drivers/net/null/rte_eth_null.h
new file mode 100644
index 0000000..abada8c
--- /dev/null
+++ b/drivers/net/null/rte_eth_null.h
@@ -0,0 +1,40 @@
+/*-
+ *   BSD LICENSE
+ *
+ *   Copyright(c) 2015 Intel Corporation. All rights reserved.
+ *   All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided with the
+ *       distribution.
+ *     * Neither the name of Intel Corporation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RTE_ETH_NULL_H_
+#define RTE_ETH_NULL_H_
+
+int eth_dev_null_create(const char *name, const unsigned numa_node,
+		unsigned packet_size, unsigned packet_copy);
+
+#endif /* RTE_ETH_NULL_H_ */
diff --git a/drivers/net/null/rte_pmd_null_version.map b/drivers/net/null/rte_pmd_null_version.map
index ef35398..84b1d0f 100644
--- a/drivers/net/null/rte_pmd_null_version.map
+++ b/drivers/net/null/rte_pmd_null_version.map
@@ -2,3 +2,10 @@ DPDK_2.0 {
 
 	local: *;
 };
+
+DPDK_2.2 {
+	global:
+
+	eth_dev_null_create;
+
+} DPDK_2.0;
-- 
1.7.9.5
^ permalink raw reply	[flat|nested] 2+ messages in thread* [PATCH v6 0/9] Dynamic RSS Configuration for Bonding
@ 2015-10-16 10:00 Tomasz Kulasek
  2015-10-30 14:25 ` [PATCH v7 " Tomasz Kulasek
  0 siblings, 1 reply; 2+ messages in thread
From: Tomasz Kulasek @ 2015-10-16 10:00 UTC (permalink / raw)
  To: dev
OVERVIEW
--------
1) Setting .rxmode.mq_mode for bonding device to ETH_MQ_RX_RSS makes bonding
device fully RSS-capable, so all slaves are synchronized with its configuration.
This mode is intended to provide RSS configuration as known from "dynamic RSS
configuration for one port" and made slaves transparent for client application
implementation.
2) If .rxmode.mq_mode for bonding device isn't ETH_MQ_RX_RSS, slaves are not
synchronized. That provides an ability to configure them manually. This mode may
be useful when application wants to manage RSS in an unusual way and the
consistency of RSS configuration for slaves isn't required.
Turning on/off RSS mode for slaves when bonding is started is not possible.
Other RSS configuration is propagated over slaves, when bonding device API is
used to do it.
v6 changes:
 - patchset reordered
 - fixed forward dependency between patch 4/9 and 5/9
v5 changes:
 - updated to DPDK 2.2
 - removed copyright change from null device source
 - removed queue_stats_mapping_set from eth_dev_ops of bonding device
 - null pmd cleanups (removed unnecessary malloc, replaced memcpy with
   rte_memcpy)
 - fixed queues number configuration in null pmd
v4 changes:
 - fixed copy-paste error,
 - removed example application as too complex and introducing a new
   dependency,
 - addapted null pmd to be used as testing device for dynamic RSS configuration,
 - addapted test units to use null pmd instead of ring pmd,
 - ring pmd is not used and changed in this patchset
v3 changes:
 - checkpatch cleanups
v2 changes:
 - added support for keys other than 40 bytes long,
 - now, if RSS key is not set for bonding, it is not set also for slaves,
 - fix - full initial RSS configuration before any slave is added was not
   possible due to the initially zeroed flow_type_rss_offloads for bonding,
 - fix - changed error to warning when slave is synchronizing due to the
   bonding's initial configuration (to allow use slaves' drivers not supporting
   dynamic RSS configuration in bonding),
 - some code cleanups,
 - updated documentation,
Tomasz Kulasek (9):
  bonding: rss dynamic configuration
  null: fix segfault when null_pmd added to bonding
  null: extend number of virtual queues
  null: export eth_dev_null_create
  null: virtual dynamic rss configuration
  test: dynamic rss configuration
  bonding: per queue stats
  doc: fixed spellings and typos
  doc: dynamic rss configuration for bonding
 app/test/Makefile                                  |    8 +
 app/test/test_link_bonding_rssconf.c               |  679 ++++++++++++++++++++
 .../prog_guide/link_bonding_poll_mode_drv_lib.rst  |   42 +-
 drivers/net/bonding/rte_eth_bond_api.c             |   28 +
 drivers/net/bonding/rte_eth_bond_pmd.c             |  216 ++++++-
 drivers/net/bonding/rte_eth_bond_private.h         |   12 +
 drivers/net/null/Makefile                          |    2 +-
 drivers/net/null/rte_eth_null.c                    |  149 ++++-
 drivers/net/null/rte_eth_null.h                    |   40 ++
 drivers/net/null/rte_pmd_null_version.map          |    7 +
 10 files changed, 1151 insertions(+), 32 deletions(-)
 create mode 100644 app/test/test_link_bonding_rssconf.c
 create mode 100644 drivers/net/null/rte_eth_null.h
-- 
1.7.9.5
^ permalink raw reply	[flat|nested] 2+ messages in thread
* [PATCH v7 0/9] Dynamic RSS Configuration for Bonding
  2015-10-16 10:00 [PATCH v6 0/9] Dynamic RSS Configuration for Bonding Tomasz Kulasek
@ 2015-10-30 14:25 ` Tomasz Kulasek
  2015-10-30 14:25   ` [PATCH v7 4/9] null: export eth_dev_null_create Tomasz Kulasek
  0 siblings, 1 reply; 2+ messages in thread
From: Tomasz Kulasek @ 2015-10-30 14:25 UTC (permalink / raw)
  To: dev
OVERVIEW
--------
1) Setting .rxmode.mq_mode for bonding device to ETH_MQ_RX_RSS makes bonding
device fully RSS-capable, so all slaves are synchronized with its configuration.
This mode is intended to provide RSS configuration as known from "dynamic RSS
configuration for one port" and made slaves transparent for client application
implementation.
2) If .rxmode.mq_mode for bonding device isn't ETH_MQ_RX_RSS, slaves are not
synchronized. That provides an ability to configure them manually. This mode may
be useful when application wants to manage RSS in an unusual way and the
consistency of RSS configuration for slaves isn't required.
Turning on/off RSS mode for slaves when bonding is started is not possible.
Other RSS configuration is propagated over slaves, when bonding device API is
used to do it.
v7 changes:
 - Makefile for test application changed to not fail when requirements for
   test units not met
v6 changes:
 - patchset reordered
 - fixed forward dependency between patch 4/9 and 5/9
v5 changes:
 - updated to DPDK 2.2
 - removed copyright change from null device source
 - removed queue_stats_mapping_set from eth_dev_ops of bonding device
 - null pmd cleanups (removed unnecessary malloc, replaced memcpy with
   rte_memcpy)
 - fixed queues number configuration in null pmd
v4 changes:
 - fixed copy-paste error,
 - removed example application as too complex and introducing a new
   dependency,
 - addapted null pmd to be used as testing device for dynamic RSS configuration,
 - addapted test units to use null pmd instead of ring pmd,
 - ring pmd is not used and changed in this patchset
v3 changes:
 - checkpatch cleanups
v2 changes:
 - added support for keys other than 40 bytes long,
 - now, if RSS key is not set for bonding, it is not set also for slaves,
 - fix - full initial RSS configuration before any slave is added was not
   possible due to the initially zeroed flow_type_rss_offloads for bonding,
 - fix - changed error to warning when slave is synchronizing due to the
   bonding's initial configuration (to allow use slaves' drivers not supporting
   dynamic RSS configuration in bonding),
 - some code cleanups,
 - updated documentation,
Tomasz Kulasek (9):
  bonding: rss dynamic configuration
  null: fix segfault when null_pmd added to bonding
  null: extend number of virtual queues
  null: export eth_dev_null_create
  null: virtual dynamic rss configuration
  test: dynamic rss configuration
  bonding: per queue stats
  doc: fixed spellings and typos
  doc: dynamic rss configuration for bonding
 app/test/Makefile                                  |    7 +
 app/test/test_link_bonding_rssconf.c               |  679 ++++++++++++++++++++
 .../prog_guide/link_bonding_poll_mode_drv_lib.rst  |   42 +-
 drivers/net/bonding/rte_eth_bond_api.c             |   28 +
 drivers/net/bonding/rte_eth_bond_pmd.c             |  216 ++++++-
 drivers/net/bonding/rte_eth_bond_private.h         |   12 +
 drivers/net/null/Makefile                          |    2 +-
 drivers/net/null/rte_eth_null.c                    |  149 ++++-
 drivers/net/null/rte_eth_null.h                    |   40 ++
 drivers/net/null/rte_pmd_null_version.map          |    7 +
 10 files changed, 1150 insertions(+), 32 deletions(-)
 create mode 100644 app/test/test_link_bonding_rssconf.c
 create mode 100644 drivers/net/null/rte_eth_null.h
-- 
1.7.9.5
^ permalink raw reply	[flat|nested] 2+ messages in thread
* [PATCH v7 4/9] null: export eth_dev_null_create
  2015-10-30 14:25 ` [PATCH v7 " Tomasz Kulasek
@ 2015-10-30 14:25   ` Tomasz Kulasek
  0 siblings, 0 replies; 2+ messages in thread
From: Tomasz Kulasek @ 2015-10-30 14:25 UTC (permalink / raw)
  To: dev
v6 changes:
 - reordered with patch 5/9
 - fixed forward dependency to patch patch 5/9
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Acked-by: Tetsuya Mukawa <mukawa@igel.co.jp>
---
 drivers/net/null/Makefile                 |    2 +-
 drivers/net/null/rte_eth_null.c           |    4 ++-
 drivers/net/null/rte_eth_null.h           |   40 +++++++++++++++++++++++++++++
 drivers/net/null/rte_pmd_null_version.map |    7 +++++
 4 files changed, 51 insertions(+), 2 deletions(-)
 create mode 100644 drivers/net/null/rte_eth_null.h
diff --git a/drivers/net/null/Makefile b/drivers/net/null/Makefile
index 96ba01c..2202389 100644
--- a/drivers/net/null/Makefile
+++ b/drivers/net/null/Makefile
@@ -51,7 +51,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += rte_eth_null.c
 #
 # Export include files
 #
-SYMLINK-y-include +=
+SYMLINK-y-include += rte_eth_null.h
 
 # this lib depends upon:
 DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += lib/librte_mbuf
diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c
index bf81b1b..236d998 100644
--- a/drivers/net/null/rte_eth_null.c
+++ b/drivers/net/null/rte_eth_null.c
@@ -38,6 +38,8 @@
 #include <rte_dev.h>
 #include <rte_kvargs.h>
 
+#include "rte_eth_null.h"
+
 #define ETH_NULL_PACKET_SIZE_ARG	"size"
 #define ETH_NULL_PACKET_COPY_ARG	"copy"
 
@@ -387,7 +389,7 @@ static const struct eth_dev_ops ops = {
 	.stats_reset = eth_stats_reset,
 };
 
-static int
+int
 eth_dev_null_create(const char *name,
 		const unsigned numa_node,
 		unsigned packet_size,
diff --git a/drivers/net/null/rte_eth_null.h b/drivers/net/null/rte_eth_null.h
new file mode 100644
index 0000000..abada8c
--- /dev/null
+++ b/drivers/net/null/rte_eth_null.h
@@ -0,0 +1,40 @@
+/*-
+ *   BSD LICENSE
+ *
+ *   Copyright(c) 2015 Intel Corporation. All rights reserved.
+ *   All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided with the
+ *       distribution.
+ *     * Neither the name of Intel Corporation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RTE_ETH_NULL_H_
+#define RTE_ETH_NULL_H_
+
+int eth_dev_null_create(const char *name, const unsigned numa_node,
+		unsigned packet_size, unsigned packet_copy);
+
+#endif /* RTE_ETH_NULL_H_ */
diff --git a/drivers/net/null/rte_pmd_null_version.map b/drivers/net/null/rte_pmd_null_version.map
index ef35398..84b1d0f 100644
--- a/drivers/net/null/rte_pmd_null_version.map
+++ b/drivers/net/null/rte_pmd_null_version.map
@@ -2,3 +2,10 @@ DPDK_2.0 {
 
 	local: *;
 };
+
+DPDK_2.2 {
+	global:
+
+	eth_dev_null_create;
+
+} DPDK_2.0;
-- 
1.7.9.5
^ permalink raw reply related	[flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-10-30 14:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-30 13:56 [PATCH v7 4/9] null: export eth_dev_null_create Tomasz Kulasek
  -- strict thread matches above, loose matches on Subject: below --
2015-10-16 10:00 [PATCH v6 0/9] Dynamic RSS Configuration for Bonding Tomasz Kulasek
2015-10-30 14:25 ` [PATCH v7 " Tomasz Kulasek
2015-10-30 14:25   ` [PATCH v7 4/9] null: export eth_dev_null_create Tomasz Kulasek
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).