[dpdk-dev] [PATCH v3 1/6] szedata2: add new poll mode driver

2015-11-21 Thread Thomas Monjalon
2015-11-20 20:25, Matej Vido:
> > As only 64-bit versions of the libraries are provided, I guess we
> > could mention it is currently supported only on x86-64.
> 
> I agree. Should I update the documentation and send a patch?

Yes please.

Another note: I use -rpath= in EXTRA_LDFLAGS to find the dependency of the 
dependency ;)


[dpdk-dev] [PATCH v3 1/6] szedata2: add new poll mode driver

2015-11-20 Thread Matej Vido
Hi,

2015-11-20 16:04 GMT+01:00 Thomas Monjalon :

> Hi,
>
> I'm doing some last checks before merging.
>
> The libsze2 depends on libcommlbr so it would be better to list it on
> https://www.liberouter.org/technologies/netcope/access-to-libsze2-library


Thank you for reminding, I will edit it.


>
>
> A patch is needed in mk/ to allow linking these dependencies from a
> non-standard directory: http://dpdk.org/dev/patchwork/patch/9023
>
> As only 64-bit versions of the libraries are provided, I guess we
> could mention it is currently supported only on x86-64.
>

I agree. Should I update the documentation and send a patch?


>
>
> 2015-11-10 15:18, Matej Vido:
> > +static void
> > +eth_stats_get(struct rte_eth_dev *dev,
> > + struct rte_eth_stats *igb_stats)
> > +{
>
> igb_stats is a name inherited from old times. It is related to the first
> DPDK driver (igb).
> I will rename it to "stats".
>
> [...]
> > +   long int value;
> > +
> > +   value = strtol(mask_str, , 0);
> > +   if (*endptr != '\0' || value > UINT32_MAX || value < 0)
>
> This check would not compile in 32-bit environment (which is not
> supported).
>
> [...]
> > +static int
> > +rte_eth_from_szedata2(const char *name,
> > +   struct rxtx_szedata2 *szedata2,
> > +   const unsigned numa_node)
> > +{
> > +   struct pmd_internals *internals = NULL;
> > +   struct rte_eth_dev *eth_dev = NULL;
> > +   struct rte_eth_dev_data *data = NULL;
>
> This data variable is not used before the patch 4/6.
> I will move it.
>

Thanks for handling these changes.


Regards,
Matej


[dpdk-dev] [PATCH v3 1/6] szedata2: add new poll mode driver

2015-11-20 Thread Thomas Monjalon
Hi,

I'm doing some last checks before merging.

The libsze2 depends on libcommlbr so it would be better to list it on
https://www.liberouter.org/technologies/netcope/access-to-libsze2-library

A patch is needed in mk/ to allow linking these dependencies from a
non-standard directory: http://dpdk.org/dev/patchwork/patch/9023

As only 64-bit versions of the libraries are provided, I guess we
could mention it is currently supported only on x86-64.


2015-11-10 15:18, Matej Vido:
> +static void
> +eth_stats_get(struct rte_eth_dev *dev,
> + struct rte_eth_stats *igb_stats)
> +{

igb_stats is a name inherited from old times. It is related to the first
DPDK driver (igb).
I will rename it to "stats".

[...]
> +   long int value;
> +
> +   value = strtol(mask_str, , 0);
> +   if (*endptr != '\0' || value > UINT32_MAX || value < 0)

This check would not compile in 32-bit environment (which is not supported).

[...]
> +static int
> +rte_eth_from_szedata2(const char *name,
> +   struct rxtx_szedata2 *szedata2,
> +   const unsigned numa_node)
> +{
> +   struct pmd_internals *internals = NULL;
> +   struct rte_eth_dev *eth_dev = NULL;
> +   struct rte_eth_dev_data *data = NULL;

This data variable is not used before the patch 4/6.
I will move it.


[dpdk-dev] [PATCH v3 1/6] szedata2: add new poll mode driver

2015-11-10 Thread Matej Vido
Add virtual PMD which communicates with COMBO cards through sze2
layer using libsze2 library.

Since link_speed is uint16_t, there can not be used number for 100G
speed, therefore link_speed is set to ETH_LINK_SPEED_10G until the
type of link_speed is solved.

v3:
Fix checkpatch.pl issues.
Move RX, TX functions to separate patches.

v2:
Code cleanup.
Fix error handling by initialization of rx, tx dma channels.
Add uninit function.

Signed-off-by: Matej Vido 
---
 config/common_bsdapp  |   5 +
 config/common_linuxapp|   5 +
 drivers/net/Makefile  |   1 +
 drivers/net/szedata2/Makefile |  62 ++
 drivers/net/szedata2/rte_eth_szedata2.c   | 830 ++
 drivers/net/szedata2/rte_eth_szedata2.h   | 102 +++
 drivers/net/szedata2/rte_pmd_szedata2_version.map |   3 +
 mk/rte.app.mk |   3 +
 8 files changed, 1011 insertions(+)
 create mode 100644 drivers/net/szedata2/Makefile
 create mode 100644 drivers/net/szedata2/rte_eth_szedata2.c
 create mode 100644 drivers/net/szedata2/rte_eth_szedata2.h
 create mode 100644 drivers/net/szedata2/rte_pmd_szedata2_version.map

diff --git a/config/common_bsdapp b/config/common_bsdapp
index fba29e5..cd856ad 100644
--- a/config/common_bsdapp
+++ b/config/common_bsdapp
@@ -284,6 +284,11 @@ CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16
 CONFIG_RTE_LIBRTE_PMD_PCAP=y

 #
+# Compile software PMD backed by SZEDATA2 device
+#
+CONFIG_RTE_LIBRTE_PMD_SZEDATA2=n
+
+#
 # Compile link bonding PMD library
 #
 CONFIG_RTE_LIBRTE_PMD_BOND=y
diff --git a/config/common_linuxapp b/config/common_linuxapp
index 7248262..fef5bde 100644
--- a/config/common_linuxapp
+++ b/config/common_linuxapp
@@ -282,6 +282,11 @@ CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16
 CONFIG_RTE_LIBRTE_PMD_PCAP=n

 #
+# Compile software PMD backed by SZEDATA2 device
+#
+CONFIG_RTE_LIBRTE_PMD_SZEDATA2=n
+
+#
 # Compile link bonding PMD library
 #
 CONFIG_RTE_LIBRTE_PMD_BOND=y
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index 6da1ce2..e05d2e5 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -49,6 +49,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_RING) += ring
 DIRS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio
 DIRS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3
 DIRS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += xenvirt
+DIRS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += szedata2

 include $(RTE_SDK)/mk/rte.sharelib.mk
 include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/drivers/net/szedata2/Makefile b/drivers/net/szedata2/Makefile
new file mode 100644
index 000..c3c42e5
--- /dev/null
+++ b/drivers/net/szedata2/Makefile
@@ -0,0 +1,62 @@
+#   BSD LICENSE
+#
+#   Copyright (c) 2015 CESNET
+#   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 CESNET 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.
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+#
+# library name
+#
+LIB = librte_pmd_szedata2.a
+
+CFLAGS += -O3
+CFLAGS += $(WERROR_FLAGS)
+
+EXPORT_MAP := rte_pmd_szedata2_version.map
+
+LIBABIVER := 1
+
+#
+# all source are stored in SRCS-y
+#
+SRCS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += rte_eth_szedata2.c
+
+#
+# Export include files
+#
+SYMLINK-y-include +=
+
+# this lib depends upon:
+DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += lib/librte_mbuf
+DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += lib/librte_ether
+DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += lib/librte_malloc
+DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += lib/librte_kvargs
+
+include