parent
100b66412b
commit
c36cf18f9d
@ -0,0 +1,43 @@
|
|||||||
|
From f596cb198e65ff6839d35763d824399eb407adab Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hyong Youb Kim <hyonkim@cisco.com>
|
||||||
|
Date: Wed, 10 Jan 2018 01:17:04 -0800
|
||||||
|
Subject: [PATCH] net/enic: fix L4 Rx ptype comparison
|
||||||
|
|
||||||
|
[ upstream commit 5dbff3af25a4a68980992f5040246e1d7f20b4cd ]
|
||||||
|
|
||||||
|
For non-UDP/TCP packets, enic may wrongly set PKT_RX_L4_CKSUM_BAD in
|
||||||
|
ol_flags. The comparison that checks if a packet is UDP or TCP assumes
|
||||||
|
that RTE_PTYPE_L4 values are bit flags, but they are not. For example,
|
||||||
|
the following evaluates to true because NONFRAG is 0x600 and UDP is
|
||||||
|
0x200, and causes the current code to think the packet is UDP.
|
||||||
|
|
||||||
|
!!(RTE_PTYPE_L4_NONFRAG & RTE_PTYPE_L4_UDP)
|
||||||
|
|
||||||
|
So, fix this by comparing the packet type against UDP and TCP
|
||||||
|
individually.
|
||||||
|
|
||||||
|
Fixes: 453d15059b58 ("net/enic: use new Rx checksum flags")
|
||||||
|
|
||||||
|
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
|
||||||
|
Reviewed-by: John Daley <johndale@cisco.com>
|
||||||
|
---
|
||||||
|
drivers/net/enic/enic_rxtx.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/drivers/net/enic/enic_rxtx.c b/dpdk-17.11/drivers/net/enic/enic_rxtx.c
|
||||||
|
index a3663d516..831c90a1c 100644
|
||||||
|
--- a/dpdk-17.11/drivers/net/enic/enic_rxtx.c
|
||||||
|
+++ b/dpdk-17.11/drivers/net/enic/enic_rxtx.c
|
||||||
|
@@ -285,7 +285,8 @@ enic_cq_rx_to_pkt_flags(struct cq_desc *cqd, struct rte_mbuf *mbuf)
|
||||||
|
else
|
||||||
|
pkt_flags |= PKT_RX_IP_CKSUM_BAD;
|
||||||
|
|
||||||
|
- if (l4_flags & (RTE_PTYPE_L4_UDP | RTE_PTYPE_L4_TCP)) {
|
||||||
|
+ if (l4_flags == RTE_PTYPE_L4_UDP ||
|
||||||
|
+ l4_flags == RTE_PTYPE_L4_TCP) {
|
||||||
|
if (enic_cq_rx_desc_tcp_udp_csum_ok(cqrd))
|
||||||
|
pkt_flags |= PKT_RX_L4_CKSUM_GOOD;
|
||||||
|
else
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -0,0 +1,194 @@
|
|||||||
|
From acc4c80cf3b5fb3c0f87bcb7c4eb68958f60ef15 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hyong Youb Kim <hyonkim@cisco.com>
|
||||||
|
Date: Mon, 22 Jan 2018 17:05:28 -0800
|
||||||
|
Subject: [PATCH] net/enic: fix crash due to static max number of queues
|
||||||
|
|
||||||
|
[ upstream commit 6c45c330589d334c4f7b729e61ae30a6acfcc119 ]
|
||||||
|
|
||||||
|
ENIC_CQ_MAX, ENIC_WQ_MAX and others are arbitrary values that
|
||||||
|
prevent the app from using more queues when they are available on
|
||||||
|
hardware. Remove them and dynamically allocate vnic_cq and such
|
||||||
|
arrays to accommodate all available hardware queues.
|
||||||
|
|
||||||
|
As a side effect of removing ENIC_CQ_MAX, this commit fixes a segfault
|
||||||
|
that would happen when the app requests more than 16 CQs, because
|
||||||
|
enic_set_vnic_res() does not consider ENIC_CQ_MAX. For example, the
|
||||||
|
following command causes a crash.
|
||||||
|
|
||||||
|
testpmd -- --rxq=16 --txq=16
|
||||||
|
|
||||||
|
Fixes: ce93d3c36db0 ("net/enic: fix resource check failures when bonding devices")
|
||||||
|
|
||||||
|
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
|
||||||
|
Reviewed-by: John Daley <johndale@cisco.com>
|
||||||
|
---
|
||||||
|
drivers/net/enic/enic.h | 25 +++++++++---------------
|
||||||
|
drivers/net/enic/enic_ethdev.c | 20 ++------------------
|
||||||
|
drivers/net/enic/enic_main.c | 43 ++++++++++++++++++++++++++++++++----------
|
||||||
|
3 files changed, 44 insertions(+), 44 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/drivers/net/enic/enic.h b/dpdk-17.11/drivers/net/enic/enic.h
|
||||||
|
index e36ec385c..a43fddc5f 100644
|
||||||
|
--- a/dpdk-17.11/drivers/net/enic/enic.h
|
||||||
|
+++ b/dpdk-17.11/drivers/net/enic/enic.h
|
||||||
|
@@ -53,13 +53,6 @@
|
||||||
|
#define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Poll-mode Driver"
|
||||||
|
#define DRV_COPYRIGHT "Copyright 2008-2015 Cisco Systems, Inc"
|
||||||
|
|
||||||
|
-#define ENIC_WQ_MAX 8
|
||||||
|
-/* With Rx scatter support, we use two RQs on VIC per RQ used by app. Both
|
||||||
|
- * RQs use the same CQ.
|
||||||
|
- */
|
||||||
|
-#define ENIC_RQ_MAX 16
|
||||||
|
-#define ENIC_CQ_MAX (ENIC_WQ_MAX + (ENIC_RQ_MAX / 2))
|
||||||
|
-#define ENIC_INTR_MAX (ENIC_CQ_MAX + 2)
|
||||||
|
#define ENIC_MAX_MAC_ADDR 64
|
||||||
|
|
||||||
|
#define VLAN_ETH_HLEN 18
|
||||||
|
@@ -150,17 +143,17 @@ struct enic {
|
||||||
|
unsigned int flags;
|
||||||
|
unsigned int priv_flags;
|
||||||
|
|
||||||
|
- /* work queue */
|
||||||
|
- struct vnic_wq wq[ENIC_WQ_MAX];
|
||||||
|
- unsigned int wq_count;
|
||||||
|
+ /* work queue (len = conf_wq_count) */
|
||||||
|
+ struct vnic_wq *wq;
|
||||||
|
+ unsigned int wq_count; /* equals eth_dev nb_tx_queues */
|
||||||
|
|
||||||
|
- /* receive queue */
|
||||||
|
- struct vnic_rq rq[ENIC_RQ_MAX];
|
||||||
|
- unsigned int rq_count;
|
||||||
|
+ /* receive queue (len = conf_rq_count) */
|
||||||
|
+ struct vnic_rq *rq;
|
||||||
|
+ unsigned int rq_count; /* equals eth_dev nb_rx_queues */
|
||||||
|
|
||||||
|
- /* completion queue */
|
||||||
|
- struct vnic_cq cq[ENIC_CQ_MAX];
|
||||||
|
- unsigned int cq_count;
|
||||||
|
+ /* completion queue (len = conf_cq_count) */
|
||||||
|
+ struct vnic_cq *cq;
|
||||||
|
+ unsigned int cq_count; /* equals rq_count + wq_count */
|
||||||
|
|
||||||
|
/* interrupt resource */
|
||||||
|
struct vnic_intr intr;
|
||||||
|
diff --git a/dpdk-17.11/drivers/net/enic/enic_ethdev.c b/dpdk-17.11/drivers/net/enic/enic_ethdev.c
|
||||||
|
index 669dbf336..98391b008 100644
|
||||||
|
--- a/dpdk-17.11/drivers/net/enic/enic_ethdev.c
|
||||||
|
+++ b/dpdk-17.11/drivers/net/enic/enic_ethdev.c
|
||||||
|
@@ -205,13 +205,7 @@ static int enicpmd_dev_tx_queue_setup(struct rte_eth_dev *eth_dev,
|
||||||
|
return -E_RTE_SECONDARY;
|
||||||
|
|
||||||
|
ENICPMD_FUNC_TRACE();
|
||||||
|
- if (queue_idx >= ENIC_WQ_MAX) {
|
||||||
|
- dev_err(enic,
|
||||||
|
- "Max number of TX queues exceeded. Max is %d\n",
|
||||||
|
- ENIC_WQ_MAX);
|
||||||
|
- return -EINVAL;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
+ RTE_ASSERT(queue_idx < enic->conf_wq_count);
|
||||||
|
eth_dev->data->tx_queues[queue_idx] = (void *)&enic->wq[queue_idx];
|
||||||
|
|
||||||
|
ret = enic_alloc_wq(enic, queue_idx, socket_id, nb_desc);
|
||||||
|
@@ -325,17 +319,7 @@ static int enicpmd_dev_rx_queue_setup(struct rte_eth_dev *eth_dev,
|
||||||
|
|
||||||
|
if (rte_eal_process_type() != RTE_PROC_PRIMARY)
|
||||||
|
return -E_RTE_SECONDARY;
|
||||||
|
-
|
||||||
|
- /* With Rx scatter support, two RQs are now used on VIC per RQ used
|
||||||
|
- * by the application.
|
||||||
|
- */
|
||||||
|
- if (queue_idx * 2 >= ENIC_RQ_MAX) {
|
||||||
|
- dev_err(enic,
|
||||||
|
- "Max number of RX queues exceeded. Max is %d. This PMD uses 2 RQs on VIC per RQ used by DPDK.\n",
|
||||||
|
- ENIC_RQ_MAX);
|
||||||
|
- return -EINVAL;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
+ RTE_ASSERT(enic_rte_rq_idx_to_sop_idx(queue_idx) < enic->conf_rq_count);
|
||||||
|
eth_dev->data->rx_queues[queue_idx] =
|
||||||
|
(void *)&enic->rq[enic_rte_rq_idx_to_sop_idx(queue_idx)];
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/drivers/net/enic/enic_main.c b/dpdk-17.11/drivers/net/enic/enic_main.c
|
||||||
|
index 8af0ccd3c..1694aed12 100644
|
||||||
|
--- a/dpdk-17.11/drivers/net/enic/enic_main.c
|
||||||
|
+++ b/dpdk-17.11/drivers/net/enic/enic_main.c
|
||||||
|
@@ -1075,6 +1075,9 @@ static void enic_dev_deinit(struct enic *enic)
|
||||||
|
vnic_dev_notify_unset(enic->vdev);
|
||||||
|
|
||||||
|
rte_free(eth_dev->data->mac_addrs);
|
||||||
|
+ rte_free(enic->cq);
|
||||||
|
+ rte_free(enic->rq);
|
||||||
|
+ rte_free(enic->wq);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1082,27 +1085,28 @@ int enic_set_vnic_res(struct enic *enic)
|
||||||
|
{
|
||||||
|
struct rte_eth_dev *eth_dev = enic->rte_dev;
|
||||||
|
int rc = 0;
|
||||||
|
+ unsigned int required_rq, required_wq, required_cq;
|
||||||
|
|
||||||
|
- /* With Rx scatter support, two RQs are now used per RQ used by
|
||||||
|
- * the application.
|
||||||
|
- */
|
||||||
|
- if (enic->conf_rq_count < eth_dev->data->nb_rx_queues) {
|
||||||
|
+ /* Always use two vNIC RQs per eth_dev RQ, regardless of Rx scatter. */
|
||||||
|
+ required_rq = eth_dev->data->nb_rx_queues * 2;
|
||||||
|
+ required_wq = eth_dev->data->nb_tx_queues;
|
||||||
|
+ required_cq = eth_dev->data->nb_rx_queues + eth_dev->data->nb_tx_queues;
|
||||||
|
+
|
||||||
|
+ if (enic->conf_rq_count < required_rq) {
|
||||||
|
dev_err(dev, "Not enough Receive queues. Requested:%u which uses %d RQs on VIC, Configured:%u\n",
|
||||||
|
eth_dev->data->nb_rx_queues,
|
||||||
|
- eth_dev->data->nb_rx_queues * 2, enic->conf_rq_count);
|
||||||
|
+ required_rq, enic->conf_rq_count);
|
||||||
|
rc = -EINVAL;
|
||||||
|
}
|
||||||
|
- if (enic->conf_wq_count < eth_dev->data->nb_tx_queues) {
|
||||||
|
+ if (enic->conf_wq_count < required_wq) {
|
||||||
|
dev_err(dev, "Not enough Transmit queues. Requested:%u, Configured:%u\n",
|
||||||
|
eth_dev->data->nb_tx_queues, enic->conf_wq_count);
|
||||||
|
rc = -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (enic->conf_cq_count < (eth_dev->data->nb_rx_queues +
|
||||||
|
- eth_dev->data->nb_tx_queues)) {
|
||||||
|
+ if (enic->conf_cq_count < required_cq) {
|
||||||
|
dev_err(dev, "Not enough Completion queues. Required:%u, Configured:%u\n",
|
||||||
|
- (eth_dev->data->nb_rx_queues +
|
||||||
|
- eth_dev->data->nb_tx_queues), enic->conf_cq_count);
|
||||||
|
+ required_cq, enic->conf_cq_count);
|
||||||
|
rc = -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1307,6 +1311,25 @@ static int enic_dev_init(struct enic *enic)
|
||||||
|
dev_err(enic, "See the ENIC PMD guide for more information.\n");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
+ /* Queue counts may be zeros. rte_zmalloc returns NULL in that case. */
|
||||||
|
+ enic->cq = rte_zmalloc("enic_vnic_cq", sizeof(struct vnic_cq) *
|
||||||
|
+ enic->conf_cq_count, 8);
|
||||||
|
+ enic->rq = rte_zmalloc("enic_vnic_rq", sizeof(struct vnic_rq) *
|
||||||
|
+ enic->conf_rq_count, 8);
|
||||||
|
+ enic->wq = rte_zmalloc("enic_vnic_wq", sizeof(struct vnic_wq) *
|
||||||
|
+ enic->conf_wq_count, 8);
|
||||||
|
+ if (enic->conf_cq_count > 0 && enic->cq == NULL) {
|
||||||
|
+ dev_err(enic, "failed to allocate vnic_cq, aborting.\n");
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ if (enic->conf_rq_count > 0 && enic->rq == NULL) {
|
||||||
|
+ dev_err(enic, "failed to allocate vnic_rq, aborting.\n");
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ if (enic->conf_wq_count > 0 && enic->wq == NULL) {
|
||||||
|
+ dev_err(enic, "failed to allocate vnic_wq, aborting.\n");
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* Get the supported filters */
|
||||||
|
enic_fdir_info(enic);
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -0,0 +1,50 @@
|
|||||||
|
From f6193c08c47bfb4bc2b10114bcdea7ae6581b144 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "juyan@redhat.com" <juyan@redhat.com>
|
||||||
|
Date: Wed, 25 Oct 2017 11:41:27 +0800
|
||||||
|
Subject: [PATCH] ofproto-dpif: Delete system tunnel interface when remove ovs
|
||||||
|
bridge
|
||||||
|
|
||||||
|
When a user adds the first tunnel of a given type (e.g. the first VXLAN
|
||||||
|
tunnel) to an OVS bridge, OVS adds a vport of the same type to the
|
||||||
|
kernel datapath that backs the bridge. There is the corresponding
|
||||||
|
expectation that, when the last tunnel of that type is removed from the
|
||||||
|
OVS bridges, OVS would remove the vport that represents it from the
|
||||||
|
backing kernel datapath, but OVS was not doing that. This commit fixes
|
||||||
|
the problem.
|
||||||
|
|
||||||
|
There is not any major concern about the lingering tunnel interface, but
|
||||||
|
it's cleaner to delete it.
|
||||||
|
|
||||||
|
Fixes: 921c370a9df5 ("dpif-netlink: Probe for out-of-tree tunnels, decides used interface")
|
||||||
|
Signed-off-by: JunhanYan <juyan@redhat.com>
|
||||||
|
Signed-off-by: Ben Pfaff <blp@ovn.org>
|
||||||
|
---
|
||||||
|
ofproto/ofproto-dpif.c | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
|
||||||
|
index 3365d4185..1a648c33f 100644
|
||||||
|
--- a/ofproto/ofproto-dpif.c
|
||||||
|
+++ b/ofproto/ofproto-dpif.c
|
||||||
|
@@ -661,6 +661,8 @@ dealloc(struct ofproto *ofproto_)
|
||||||
|
static void
|
||||||
|
close_dpif_backer(struct dpif_backer *backer, bool del)
|
||||||
|
{
|
||||||
|
+ struct simap_node *node;
|
||||||
|
+
|
||||||
|
ovs_assert(backer->refcount > 0);
|
||||||
|
|
||||||
|
if (--backer->refcount) {
|
||||||
|
@@ -669,6 +671,9 @@ close_dpif_backer(struct dpif_backer *backer, bool del)
|
||||||
|
|
||||||
|
udpif_destroy(backer->udpif);
|
||||||
|
|
||||||
|
+ SIMAP_FOR_EACH (node, &backer->tnl_backers) {
|
||||||
|
+ dpif_port_del(backer->dpif, u32_to_odp(node->data), false);
|
||||||
|
+ }
|
||||||
|
simap_destroy(&backer->tnl_backers);
|
||||||
|
ovs_rwlock_destroy(&backer->odp_to_ofport_lock);
|
||||||
|
hmap_destroy(&backer->odp_to_ofport_map);
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -0,0 +1,59 @@
|
|||||||
|
From fec618a3fdcc88fa50089edb5748a6554ac49070 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
Date: Wed, 13 Dec 2017 09:51:06 +0100
|
||||||
|
Subject: [PATCH 1/6] vhost: prevent features to be changed while device is
|
||||||
|
running
|
||||||
|
|
||||||
|
As section 2.2 of the Virtio spec states about features
|
||||||
|
negotiation:
|
||||||
|
"During device initialization, the driver reads this and tells
|
||||||
|
the device the subset that it accepts. The only way to
|
||||||
|
renegotiate is to reset the device."
|
||||||
|
|
||||||
|
This patch implements a check to prevent illegal features change
|
||||||
|
while the device is running.
|
||||||
|
|
||||||
|
One exception is the VHOST_F_LOG_ALL feature bit, which is enabled
|
||||||
|
when live-migration is initiated. But this feature is not negotiated
|
||||||
|
with the Virtio driver, but directly with the Vhost master.
|
||||||
|
|
||||||
|
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
|
||||||
|
(cherry picked from commit 07f8db29b8833378dd506f3e197319f8b669aed9)
|
||||||
|
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
---
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost_user.c | 17 ++++++++++++++++-
|
||||||
|
1 file changed, 16 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost_user.c b/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
index f4c7ce462..545dbcb2b 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
@@ -183,7 +183,22 @@ vhost_user_set_features(struct virtio_net *dev, uint64_t features)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if ((dev->flags & VIRTIO_DEV_RUNNING) && dev->features != features) {
|
||||||
|
+ if (dev->flags & VIRTIO_DEV_RUNNING) {
|
||||||
|
+ if (dev->features == features)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * Error out if master tries to change features while device is
|
||||||
|
+ * in running state. The exception being VHOST_F_LOG_ALL, which
|
||||||
|
+ * is enabled when the live-migration starts.
|
||||||
|
+ */
|
||||||
|
+ if ((dev->features ^ features) & ~(1ULL << VHOST_F_LOG_ALL)) {
|
||||||
|
+ RTE_LOG(ERR, VHOST_CONFIG,
|
||||||
|
+ "(%d) features changed while device is running.\n",
|
||||||
|
+ dev->vid);
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (dev->notify_ops->features_changed)
|
||||||
|
dev->notify_ops->features_changed(dev->vid, features);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -0,0 +1,310 @@
|
|||||||
|
From patchwork Wed Jan 17 13:49:25 2018
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
Subject: [dpdk-dev,
|
||||||
|
v5] vhost_user: protect active rings from async ring changes
|
||||||
|
From: Victor Kaplansky <victork@redhat.com>
|
||||||
|
X-Patchwork-Id: 33921
|
||||||
|
X-Patchwork-Delegate: yuanhan.liu@linux.intel.com
|
||||||
|
List-Id: dev.dpdk.org
|
||||||
|
To: dev@dpdk.org
|
||||||
|
Cc: stable@dpdk.org, Jens Freimann <jfreiman@redhat.com>,
|
||||||
|
Maxime Coquelin <maxime.coquelin@redhat.com>,
|
||||||
|
Yuanhan Liu <yliu@fridaylinux.org>, Tiwei Bie <tiwei.bie@intel.com>,
|
||||||
|
"Tan, Jianfeng" <jianfeng.tan@intel.com>,
|
||||||
|
Stephen Hemminger <stephen@networkplumber.org>,
|
||||||
|
Victor Kaplansky <victork@redhat.com>
|
||||||
|
Date: Wed, 17 Jan 2018 15:49:25 +0200
|
||||||
|
|
||||||
|
When performing live migration or memory hot-plugging,
|
||||||
|
the changes to the device and vrings made by message handler
|
||||||
|
done independently from vring usage by PMD threads.
|
||||||
|
|
||||||
|
This causes for example segfaults during live-migration
|
||||||
|
with MQ enable, but in general virtually any request
|
||||||
|
sent by qemu changing the state of device can cause
|
||||||
|
problems.
|
||||||
|
|
||||||
|
These patches fixes all above issues by adding a spinlock
|
||||||
|
to every vring and requiring message handler to start operation
|
||||||
|
only after ensuring that all PMD threads related to the device
|
||||||
|
are out of critical section accessing the vring data.
|
||||||
|
|
||||||
|
Each vring has its own lock in order to not create contention
|
||||||
|
between PMD threads of different vrings and to prevent
|
||||||
|
performance degradation by scaling queue pair number.
|
||||||
|
|
||||||
|
See https://bugzilla.redhat.com/show_bug.cgi?id=1450680
|
||||||
|
|
||||||
|
Signed-off-by: Victor Kaplansky <victork@redhat.com>
|
||||||
|
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
---
|
||||||
|
v5:
|
||||||
|
o get rid of spinlock wrapping functions in vhost.h
|
||||||
|
|
||||||
|
v4:
|
||||||
|
|
||||||
|
o moved access_unlock before accessing enable flag and
|
||||||
|
access_unlock after iommu_unlock consistently.
|
||||||
|
o cosmetics: removed blank line.
|
||||||
|
o the access_lock variable moved to be in the same
|
||||||
|
cache line with enable and access_ok flags.
|
||||||
|
o dequeue path is now guarded with trylock and returning
|
||||||
|
zero if unsuccessful.
|
||||||
|
o GET_VRING_BASE operation is not guarded by access lock
|
||||||
|
to avoid deadlock with device_destroy. See the comment
|
||||||
|
in the code.
|
||||||
|
o Fixed error path exit from enqueue and dequeue carefully
|
||||||
|
unlocking access and iommu locks as appropriate.
|
||||||
|
|
||||||
|
v3:
|
||||||
|
o Added locking to enqueue flow.
|
||||||
|
o Enqueue path guarded as well as dequeue path.
|
||||||
|
o Changed name of active_lock.
|
||||||
|
o Added initialization of guarding spinlock.
|
||||||
|
o Reworked functions skimming over all virt-queues.
|
||||||
|
o Performance measurements done by Maxime Coquelin shows
|
||||||
|
no degradation in bandwidth and throughput.
|
||||||
|
o Spelling.
|
||||||
|
o Taking lock only on set operations.
|
||||||
|
o IOMMU messages are not guarded by access lock.
|
||||||
|
|
||||||
|
v2:
|
||||||
|
o Fixed checkpatch complains.
|
||||||
|
o Added Signed-off-by.
|
||||||
|
o Refined placement of guard to exclude IOMMU messages.
|
||||||
|
o TODO: performance degradation measurement.
|
||||||
|
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost.h | 6 ++--
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost.c | 1 +
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost_user.c | 70 ++++++++++++++++++++++++++++++++
|
||||||
|
dpdk-17.11/lib/librte_vhost/virtio_net.c | 28 ++++++++++++++---
|
||||||
|
4 files changed, 99 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost.h b/dpdk-17.11/lib/librte_vhost/vhost.h
|
||||||
|
index 1cc81c17..c8f2a817 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost.h
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost.h
|
||||||
|
@@ -108,12 +108,14 @@ struct vhost_virtqueue {
|
||||||
|
|
||||||
|
/* Backend value to determine if device should started/stopped */
|
||||||
|
int backend;
|
||||||
|
+ int enabled;
|
||||||
|
+ int access_ok;
|
||||||
|
+ rte_spinlock_t access_lock;
|
||||||
|
+
|
||||||
|
/* Used to notify the guest (trigger interrupt) */
|
||||||
|
int callfd;
|
||||||
|
/* Currently unused as polling mode is enabled */
|
||||||
|
int kickfd;
|
||||||
|
- int enabled;
|
||||||
|
- int access_ok;
|
||||||
|
|
||||||
|
/* Physical address of used ring, for logging */
|
||||||
|
uint64_t log_guest_addr;
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost.c b/dpdk-17.11/lib/librte_vhost/vhost.c
|
||||||
|
index 4f8b73a0..dcc42fc7 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost.c
|
||||||
|
@@ -259,6 +259,7 @@ alloc_vring_queue(struct virtio_net *dev, uint32_t vring_idx)
|
||||||
|
|
||||||
|
dev->virtqueue[vring_idx] = vq;
|
||||||
|
init_vring_queue(dev, vring_idx);
|
||||||
|
+ rte_spinlock_init(&vq->access_lock);
|
||||||
|
|
||||||
|
dev->nr_vring += 1;
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost_user.c b/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
index f4c7ce46..0685d4e7 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
@@ -1190,12 +1190,47 @@ vhost_user_check_and_alloc_queue_pair(struct virtio_net *dev, VhostUserMsg *msg)
|
||||||
|
return alloc_vring_queue(dev, vring_idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+vhost_user_lock_all_queue_pairs(struct virtio_net *dev)
|
||||||
|
+{
|
||||||
|
+ unsigned int i = 0;
|
||||||
|
+ unsigned int vq_num = 0;
|
||||||
|
+
|
||||||
|
+ while (vq_num < dev->nr_vring) {
|
||||||
|
+ struct vhost_virtqueue *vq = dev->virtqueue[i];
|
||||||
|
+
|
||||||
|
+ if (vq) {
|
||||||
|
+ rte_spinlock_lock(&vq->access_lock);
|
||||||
|
+ vq_num++;
|
||||||
|
+ }
|
||||||
|
+ i++;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+vhost_user_unlock_all_queue_pairs(struct virtio_net *dev)
|
||||||
|
+{
|
||||||
|
+ unsigned int i = 0;
|
||||||
|
+ unsigned int vq_num = 0;
|
||||||
|
+
|
||||||
|
+ while (vq_num < dev->nr_vring) {
|
||||||
|
+ struct vhost_virtqueue *vq = dev->virtqueue[i];
|
||||||
|
+
|
||||||
|
+ if (vq) {
|
||||||
|
+ rte_spinlock_unlock(&vq->access_lock);
|
||||||
|
+ vq_num++;
|
||||||
|
+ }
|
||||||
|
+ i++;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int
|
||||||
|
vhost_user_msg_handler(int vid, int fd)
|
||||||
|
{
|
||||||
|
struct virtio_net *dev;
|
||||||
|
struct VhostUserMsg msg;
|
||||||
|
int ret;
|
||||||
|
+ int unlock_required = 0;
|
||||||
|
|
||||||
|
dev = get_device(vid);
|
||||||
|
if (dev == NULL)
|
||||||
|
@@ -1241,6 +1276,38 @@ vhost_user_msg_handler(int vid, int fd)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * Note: we don't lock all queues on VHOST_USER_GET_VRING_BASE,
|
||||||
|
+ * since it is sent when virtio stops and device is destroyed.
|
||||||
|
+ * destroy_device waits for queues to be inactive, so it is safe.
|
||||||
|
+ * Otherwise taking the access_lock would cause a dead lock.
|
||||||
|
+ */
|
||||||
|
+ switch (msg.request.master) {
|
||||||
|
+ case VHOST_USER_SET_FEATURES:
|
||||||
|
+ case VHOST_USER_SET_PROTOCOL_FEATURES:
|
||||||
|
+ case VHOST_USER_SET_OWNER:
|
||||||
|
+ case VHOST_USER_RESET_OWNER:
|
||||||
|
+ case VHOST_USER_SET_MEM_TABLE:
|
||||||
|
+ case VHOST_USER_SET_LOG_BASE:
|
||||||
|
+ case VHOST_USER_SET_LOG_FD:
|
||||||
|
+ case VHOST_USER_SET_VRING_NUM:
|
||||||
|
+ case VHOST_USER_SET_VRING_ADDR:
|
||||||
|
+ case VHOST_USER_SET_VRING_BASE:
|
||||||
|
+ case VHOST_USER_SET_VRING_KICK:
|
||||||
|
+ case VHOST_USER_SET_VRING_CALL:
|
||||||
|
+ case VHOST_USER_SET_VRING_ERR:
|
||||||
|
+ case VHOST_USER_SET_VRING_ENABLE:
|
||||||
|
+ case VHOST_USER_SEND_RARP:
|
||||||
|
+ case VHOST_USER_NET_SET_MTU:
|
||||||
|
+ case VHOST_USER_SET_SLAVE_REQ_FD:
|
||||||
|
+ vhost_user_lock_all_queue_pairs(dev);
|
||||||
|
+ unlock_required = 1;
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
switch (msg.request.master) {
|
||||||
|
case VHOST_USER_GET_FEATURES:
|
||||||
|
msg.payload.u64 = vhost_user_get_features(dev);
|
||||||
|
@@ -1342,6 +1409,9 @@ vhost_user_msg_handler(int vid, int fd)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (unlock_required)
|
||||||
|
+ vhost_user_unlock_all_queue_pairs(dev);
|
||||||
|
+
|
||||||
|
if (msg.flags & VHOST_USER_NEED_REPLY) {
|
||||||
|
msg.payload.u64 = !!ret;
|
||||||
|
msg.size = sizeof(msg.payload.u64);
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/virtio_net.c b/dpdk-17.11/lib/librte_vhost/virtio_net.c
|
||||||
|
index 6fee16e5..e09a927d 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/virtio_net.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/virtio_net.c
|
||||||
|
@@ -44,6 +44,7 @@
|
||||||
|
#include <rte_udp.h>
|
||||||
|
#include <rte_sctp.h>
|
||||||
|
#include <rte_arp.h>
|
||||||
|
+#include <rte_spinlock.h>
|
||||||
|
|
||||||
|
#include "iotlb.h"
|
||||||
|
#include "vhost.h"
|
||||||
|
@@ -326,8 +327,11 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
|
||||||
|
}
|
||||||
|
|
||||||
|
vq = dev->virtqueue[queue_id];
|
||||||
|
+
|
||||||
|
+ rte_spinlock_lock(&vq->access_lock);
|
||||||
|
+
|
||||||
|
if (unlikely(vq->enabled == 0))
|
||||||
|
- return 0;
|
||||||
|
+ goto out_access_unlock;
|
||||||
|
|
||||||
|
if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))
|
||||||
|
vhost_user_iotlb_rd_lock(vq);
|
||||||
|
@@ -419,6 +423,9 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
|
||||||
|
if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))
|
||||||
|
vhost_user_iotlb_rd_unlock(vq);
|
||||||
|
|
||||||
|
+out_access_unlock:
|
||||||
|
+ rte_spinlock_unlock(&vq->access_lock);
|
||||||
|
+
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -651,8 +658,11 @@ virtio_dev_merge_rx(struct virtio_net *dev, uint16_t queue_id,
|
||||||
|
}
|
||||||
|
|
||||||
|
vq = dev->virtqueue[queue_id];
|
||||||
|
+
|
||||||
|
+ rte_spinlock_lock(&vq->access_lock);
|
||||||
|
+
|
||||||
|
if (unlikely(vq->enabled == 0))
|
||||||
|
- return 0;
|
||||||
|
+ goto out_access_unlock;
|
||||||
|
|
||||||
|
if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))
|
||||||
|
vhost_user_iotlb_rd_lock(vq);
|
||||||
|
@@ -715,6 +725,9 @@ virtio_dev_merge_rx(struct virtio_net *dev, uint16_t queue_id,
|
||||||
|
if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))
|
||||||
|
vhost_user_iotlb_rd_unlock(vq);
|
||||||
|
|
||||||
|
+out_access_unlock:
|
||||||
|
+ rte_spinlock_unlock(&vq->access_lock);
|
||||||
|
+
|
||||||
|
return pkt_idx;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1180,9 +1193,13 @@ rte_vhost_dequeue_burst(int vid, uint16_t queue_id,
|
||||||
|
}
|
||||||
|
|
||||||
|
vq = dev->virtqueue[queue_id];
|
||||||
|
- if (unlikely(vq->enabled == 0))
|
||||||
|
+
|
||||||
|
+ if (unlikely(rte_spinlock_trylock(&vq->access_lock) == 0))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
+ if (unlikely(vq->enabled == 0))
|
||||||
|
+ goto out_access_unlock;
|
||||||
|
+
|
||||||
|
vq->batch_copy_nb_elems = 0;
|
||||||
|
|
||||||
|
if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))
|
||||||
|
@@ -1240,7 +1257,7 @@ rte_vhost_dequeue_burst(int vid, uint16_t queue_id,
|
||||||
|
if (rarp_mbuf == NULL) {
|
||||||
|
RTE_LOG(ERR, VHOST_DATA,
|
||||||
|
"Failed to allocate memory for mbuf.\n");
|
||||||
|
- return 0;
|
||||||
|
+ goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (make_rarp_packet(rarp_mbuf, &dev->mac)) {
|
||||||
|
@@ -1356,6 +1373,9 @@ rte_vhost_dequeue_burst(int vid, uint16_t queue_id,
|
||||||
|
if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))
|
||||||
|
vhost_user_iotlb_rd_unlock(vq);
|
||||||
|
|
||||||
|
+out_access_unlock:
|
||||||
|
+ rte_spinlock_unlock(&vq->access_lock);
|
||||||
|
+
|
||||||
|
if (unlikely(rarp_mbuf != NULL)) {
|
||||||
|
/*
|
||||||
|
* Inject it to the head of "pkts" array, so that switch's mac
|
@ -0,0 +1,40 @@
|
|||||||
|
From d7f0078e3a3d838b4ec6a87dca62771246e53db6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
Date: Wed, 13 Dec 2017 09:51:07 +0100
|
||||||
|
Subject: [PATCH 2/6] vhost: propagate set features handling error
|
||||||
|
|
||||||
|
Not propagating VHOST_USER_SET_FEATURES request handling
|
||||||
|
error may result in unpredictable behavior, as host and
|
||||||
|
guests features may no more be synchronized.
|
||||||
|
|
||||||
|
This patch fixes this by reporting the error to the upper
|
||||||
|
layer, which would result in the device being destroyed
|
||||||
|
and the connection with the master to be closed.
|
||||||
|
|
||||||
|
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
|
||||||
|
(cherry picked from commit 59fe5e17d9308b008ffa22ea250ddd363c84c3b5)
|
||||||
|
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
---
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost_user.c | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost_user.c b/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
index 545dbcb2b..471b1612c 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
@@ -1263,7 +1263,9 @@ vhost_user_msg_handler(int vid, int fd)
|
||||||
|
send_vhost_reply(fd, &msg);
|
||||||
|
break;
|
||||||
|
case VHOST_USER_SET_FEATURES:
|
||||||
|
- vhost_user_set_features(dev, msg.payload.u64);
|
||||||
|
+ ret = vhost_user_set_features(dev, msg.payload.u64);
|
||||||
|
+ if (ret)
|
||||||
|
+ return -1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VHOST_USER_GET_PROTOCOL_FEATURES:
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -0,0 +1,83 @@
|
|||||||
|
From 297fcc013877e57c387e444bf7323fbfd77e4b3f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
Date: Wed, 13 Dec 2017 09:51:08 +0100
|
||||||
|
Subject: [PATCH 3/6] vhost: extract virtqueue cleaning and freeing functions
|
||||||
|
|
||||||
|
This patch extracts needed code for vhost_user.c to be able
|
||||||
|
to clean and free virtqueues unitary.
|
||||||
|
|
||||||
|
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
|
||||||
|
(cherry picked from commit 467fe22df94b85d2df67b9be3ccbfb3dd72cdd6d)
|
||||||
|
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
---
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost.c | 22 ++++++++++++----------
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost.h | 3 +++
|
||||||
|
2 files changed, 15 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost.c b/dpdk-17.11/lib/librte_vhost/vhost.c
|
||||||
|
index 4f8b73a09..df528a4ea 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost.c
|
||||||
|
@@ -103,7 +103,7 @@ get_device(int vid)
|
||||||
|
return dev;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void
|
||||||
|
+void
|
||||||
|
cleanup_vq(struct vhost_virtqueue *vq, int destroy)
|
||||||
|
{
|
||||||
|
if ((vq->callfd >= 0) && (destroy != 0))
|
||||||
|
@@ -127,6 +127,15 @@ cleanup_device(struct virtio_net *dev, int destroy)
|
||||||
|
cleanup_vq(dev->virtqueue[i], destroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
+void
|
||||||
|
+free_vq(struct vhost_virtqueue *vq)
|
||||||
|
+{
|
||||||
|
+ rte_free(vq->shadow_used_ring);
|
||||||
|
+ rte_free(vq->batch_copy_elems);
|
||||||
|
+ rte_mempool_free(vq->iotlb_pool);
|
||||||
|
+ rte_free(vq);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Release virtqueues and device memory.
|
||||||
|
*/
|
||||||
|
@@ -134,16 +143,9 @@ static void
|
||||||
|
free_device(struct virtio_net *dev)
|
||||||
|
{
|
||||||
|
uint32_t i;
|
||||||
|
- struct vhost_virtqueue *vq;
|
||||||
|
-
|
||||||
|
- for (i = 0; i < dev->nr_vring; i++) {
|
||||||
|
- vq = dev->virtqueue[i];
|
||||||
|
|
||||||
|
- rte_free(vq->shadow_used_ring);
|
||||||
|
- rte_free(vq->batch_copy_elems);
|
||||||
|
- rte_mempool_free(vq->iotlb_pool);
|
||||||
|
- rte_free(vq);
|
||||||
|
- }
|
||||||
|
+ for (i = 0; i < dev->nr_vring; i++)
|
||||||
|
+ free_vq(dev->virtqueue[i]);
|
||||||
|
|
||||||
|
rte_free(dev);
|
||||||
|
}
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost.h b/dpdk-17.11/lib/librte_vhost/vhost.h
|
||||||
|
index 1cc81c17c..9cad1bb3c 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost.h
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost.h
|
||||||
|
@@ -364,6 +364,9 @@ void cleanup_device(struct virtio_net *dev, int destroy);
|
||||||
|
void reset_device(struct virtio_net *dev);
|
||||||
|
void vhost_destroy_device(int);
|
||||||
|
|
||||||
|
+void cleanup_vq(struct vhost_virtqueue *vq, int destroy);
|
||||||
|
+void free_vq(struct vhost_virtqueue *vq);
|
||||||
|
+
|
||||||
|
int alloc_vring_queue(struct virtio_net *dev, uint32_t vring_idx);
|
||||||
|
|
||||||
|
void vhost_set_ifname(int, const char *if_name, unsigned int if_len);
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -0,0 +1,63 @@
|
|||||||
|
From eb2b3b18edc3af42f52ca5b3f30aa8bfbd08206a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
Date: Wed, 13 Dec 2017 09:51:09 +0100
|
||||||
|
Subject: [PATCH 4/6] vhost: destroy unused virtqueues when multiqueue not
|
||||||
|
negotiated
|
||||||
|
|
||||||
|
QEMU sends VHOST_USER_SET_VRING_CALL requests for all queues
|
||||||
|
declared in QEMU command line before the guest is started.
|
||||||
|
It has the effect in DPDK vhost-user backend to allocate vrings
|
||||||
|
for all queues declared by QEMU.
|
||||||
|
|
||||||
|
If the first driver being used does not support multiqueue,
|
||||||
|
the device never changes to VIRTIO_DEV_RUNNING state as only
|
||||||
|
the first queue pair is initialized. One driver impacted by
|
||||||
|
this bug is virtio-net's iPXE driver which does not support
|
||||||
|
VIRTIO_NET_F_MQ feature.
|
||||||
|
|
||||||
|
It is safe to destroy unused virtqueues in SET_FEATURES request
|
||||||
|
handler, as it is ensured the device is not in running state
|
||||||
|
at this stage, so virtqueues aren't being processed.
|
||||||
|
|
||||||
|
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
|
||||||
|
(cherry picked from commit e29109323595beb3884da58126ebb3b878cb66f5)
|
||||||
|
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
---
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost_user.c | 19 +++++++++++++++++++
|
||||||
|
1 file changed, 19 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost_user.c b/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
index 471b1612c..1848c8de9 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
@@ -216,6 +216,25 @@ vhost_user_set_features(struct virtio_net *dev, uint64_t features)
|
||||||
|
(dev->features & (1 << VIRTIO_NET_F_MRG_RXBUF)) ? "on" : "off",
|
||||||
|
(dev->features & (1ULL << VIRTIO_F_VERSION_1)) ? "on" : "off");
|
||||||
|
|
||||||
|
+ if (!(dev->features & (1ULL << VIRTIO_NET_F_MQ))) {
|
||||||
|
+ /*
|
||||||
|
+ * Remove all but first queue pair if MQ hasn't been
|
||||||
|
+ * negotiated. This is safe because the device is not
|
||||||
|
+ * running at this stage.
|
||||||
|
+ */
|
||||||
|
+ while (dev->nr_vring > 2) {
|
||||||
|
+ struct vhost_virtqueue *vq;
|
||||||
|
+
|
||||||
|
+ vq = dev->virtqueue[--dev->nr_vring];
|
||||||
|
+ if (!vq)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ dev->virtqueue[dev->nr_vring] = NULL;
|
||||||
|
+ cleanup_vq(vq, 1);
|
||||||
|
+ free_vq(vq);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -0,0 +1,188 @@
|
|||||||
|
From 8db980965f3d8cde1abbdb89eaecbc829460133e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Date: Wed, 31 Jan 2018 17:46:50 +0000
|
||||||
|
Subject: [PATCH 5/6] vhost: add flag for built-in virtio driver
|
||||||
|
|
||||||
|
The librte_vhost API is used in two ways:
|
||||||
|
1. As a vhost net device backend via rte_vhost_enqueue/dequeue_burst().
|
||||||
|
2. As a library for implementing vhost device backends.
|
||||||
|
|
||||||
|
There is no distinction between the two at the API level or in the
|
||||||
|
librte_vhost implementation. For example, device state is kept in
|
||||||
|
"struct virtio_net" regardless of whether this is actually a net device
|
||||||
|
backend or whether the built-in virtio_net.c driver is in use.
|
||||||
|
|
||||||
|
The virtio_net.c driver should be a librte_vhost API client just like
|
||||||
|
the vhost-scsi code and have no special access to vhost.h internals.
|
||||||
|
Unfortunately, fixing this requires significant librte_vhost API
|
||||||
|
changes.
|
||||||
|
|
||||||
|
This patch takes a different approach: keep the librte_vhost API
|
||||||
|
unchanged but track whether the built-in virtio_net.c driver is in use.
|
||||||
|
See the next patch for a bug fix that requires knowledge of whether
|
||||||
|
virtio_net.c is in use.
|
||||||
|
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
|
||||||
|
(cherry picked from commit 1c717af4c699e60081feb1d645f86189551f9a9c)
|
||||||
|
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
---
|
||||||
|
dpdk-17.11/lib/librte_vhost/socket.c | 15 +++++++++++++++
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost.c | 17 ++++++++++++++++-
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost.h | 3 +++
|
||||||
|
dpdk-17.11/lib/librte_vhost/virtio_net.c | 14 ++++++++++++++
|
||||||
|
4 files changed, 48 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/socket.c b/dpdk-17.11/lib/librte_vhost/socket.c
|
||||||
|
index 422da002f..ceecc6149 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/socket.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/socket.c
|
||||||
|
@@ -69,6 +69,7 @@ struct vhost_user_socket {
|
||||||
|
bool reconnect;
|
||||||
|
bool dequeue_zero_copy;
|
||||||
|
bool iommu_support;
|
||||||
|
+ bool use_builtin_virtio_net;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The "supported_features" indicates the feature bits the
|
||||||
|
@@ -224,6 +225,8 @@ vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
|
||||||
|
size = strnlen(vsocket->path, PATH_MAX);
|
||||||
|
vhost_set_ifname(vid, vsocket->path, size);
|
||||||
|
|
||||||
|
+ vhost_set_builtin_virtio_net(vid, vsocket->use_builtin_virtio_net);
|
||||||
|
+
|
||||||
|
if (vsocket->dequeue_zero_copy)
|
||||||
|
vhost_enable_dequeue_zero_copy(vid);
|
||||||
|
|
||||||
|
@@ -547,6 +550,12 @@ rte_vhost_driver_disable_features(const char *path, uint64_t features)
|
||||||
|
|
||||||
|
pthread_mutex_lock(&vhost_user.mutex);
|
||||||
|
vsocket = find_vhost_user_socket(path);
|
||||||
|
+
|
||||||
|
+ /* Note that use_builtin_virtio_net is not affected by this function
|
||||||
|
+ * since callers may want to selectively disable features of the
|
||||||
|
+ * built-in vhost net device backend.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
if (vsocket)
|
||||||
|
vsocket->features &= ~features;
|
||||||
|
pthread_mutex_unlock(&vhost_user.mutex);
|
||||||
|
@@ -587,6 +596,11 @@ rte_vhost_driver_set_features(const char *path, uint64_t features)
|
||||||
|
if (vsocket) {
|
||||||
|
vsocket->supported_features = features;
|
||||||
|
vsocket->features = features;
|
||||||
|
+
|
||||||
|
+ /* Anyone setting feature bits is implementing their own vhost
|
||||||
|
+ * device backend.
|
||||||
|
+ */
|
||||||
|
+ vsocket->use_builtin_virtio_net = false;
|
||||||
|
}
|
||||||
|
pthread_mutex_unlock(&vhost_user.mutex);
|
||||||
|
|
||||||
|
@@ -667,6 +681,7 @@ rte_vhost_driver_register(const char *path, uint64_t flags)
|
||||||
|
* rte_vhost_driver_set_features(), which will overwrite following
|
||||||
|
* two values.
|
||||||
|
*/
|
||||||
|
+ vsocket->use_builtin_virtio_net = true;
|
||||||
|
vsocket->supported_features = VIRTIO_NET_SUPPORTED_FEATURES;
|
||||||
|
vsocket->features = VIRTIO_NET_SUPPORTED_FEATURES;
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost.c b/dpdk-17.11/lib/librte_vhost/vhost.c
|
||||||
|
index df528a4ea..75deaa877 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost.c
|
||||||
|
@@ -279,7 +279,7 @@ reset_device(struct virtio_net *dev)
|
||||||
|
|
||||||
|
dev->features = 0;
|
||||||
|
dev->protocol_features = 0;
|
||||||
|
- dev->flags = 0;
|
||||||
|
+ dev->flags &= VIRTIO_DEV_BUILTIN_VIRTIO_NET;
|
||||||
|
|
||||||
|
for (i = 0; i < dev->nr_vring; i++)
|
||||||
|
reset_vring_queue(dev, i);
|
||||||
|
@@ -315,6 +315,7 @@ vhost_new_device(void)
|
||||||
|
|
||||||
|
vhost_devices[i] = dev;
|
||||||
|
dev->vid = i;
|
||||||
|
+ dev->flags = VIRTIO_DEV_BUILTIN_VIRTIO_NET;
|
||||||
|
dev->slave_req_fd = -1;
|
||||||
|
|
||||||
|
return i;
|
||||||
|
@@ -371,6 +372,20 @@ vhost_enable_dequeue_zero_copy(int vid)
|
||||||
|
dev->dequeue_zero_copy = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+void
|
||||||
|
+vhost_set_builtin_virtio_net(int vid, bool enable)
|
||||||
|
+{
|
||||||
|
+ struct virtio_net *dev = get_device(vid);
|
||||||
|
+
|
||||||
|
+ if (dev == NULL)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ if (enable)
|
||||||
|
+ dev->flags |= VIRTIO_DEV_BUILTIN_VIRTIO_NET;
|
||||||
|
+ else
|
||||||
|
+ dev->flags &= ~VIRTIO_DEV_BUILTIN_VIRTIO_NET;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int
|
||||||
|
rte_vhost_get_mtu(int vid, uint16_t *mtu)
|
||||||
|
{
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost.h b/dpdk-17.11/lib/librte_vhost/vhost.h
|
||||||
|
index 9cad1bb3c..e06531e6b 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost.h
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost.h
|
||||||
|
@@ -53,6 +53,8 @@
|
||||||
|
#define VIRTIO_DEV_RUNNING 1
|
||||||
|
/* Used to indicate that the device is ready to operate */
|
||||||
|
#define VIRTIO_DEV_READY 2
|
||||||
|
+/* Used to indicate that the built-in vhost net device backend is enabled */
|
||||||
|
+#define VIRTIO_DEV_BUILTIN_VIRTIO_NET 4
|
||||||
|
|
||||||
|
/* Backend value set by guest. */
|
||||||
|
#define VIRTIO_DEV_STOPPED -1
|
||||||
|
@@ -371,6 +373,7 @@ int alloc_vring_queue(struct virtio_net *dev, uint32_t vring_idx);
|
||||||
|
|
||||||
|
void vhost_set_ifname(int, const char *if_name, unsigned int if_len);
|
||||||
|
void vhost_enable_dequeue_zero_copy(int vid);
|
||||||
|
+void vhost_set_builtin_virtio_net(int vid, bool enable);
|
||||||
|
|
||||||
|
struct vhost_device_ops const *vhost_driver_callback_get(const char *path);
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/virtio_net.c b/dpdk-17.11/lib/librte_vhost/virtio_net.c
|
||||||
|
index 6fee16e55..3bfd71945 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/virtio_net.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/virtio_net.c
|
||||||
|
@@ -727,6 +727,13 @@ rte_vhost_enqueue_burst(int vid, uint16_t queue_id,
|
||||||
|
if (!dev)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
+ if (unlikely(!(dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET))) {
|
||||||
|
+ RTE_LOG(ERR, VHOST_DATA,
|
||||||
|
+ "(%d) %s: built-in vhost net backend is disabled.\n",
|
||||||
|
+ dev->vid, __func__);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (dev->features & (1 << VIRTIO_NET_F_MRG_RXBUF))
|
||||||
|
return virtio_dev_merge_rx(dev, queue_id, pkts, count);
|
||||||
|
else
|
||||||
|
@@ -1173,6 +1180,13 @@ rte_vhost_dequeue_burst(int vid, uint16_t queue_id,
|
||||||
|
if (!dev)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
+ if (unlikely(!(dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET))) {
|
||||||
|
+ RTE_LOG(ERR, VHOST_DATA,
|
||||||
|
+ "(%d) %s: built-in vhost net backend is disabled.\n",
|
||||||
|
+ dev->vid, __func__);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (unlikely(!is_valid_virt_queue_idx(queue_id, 1, dev->nr_vring))) {
|
||||||
|
RTE_LOG(ERR, VHOST_DATA, "(%d) %s: invalid virtqueue idx %d.\n",
|
||||||
|
dev->vid, __func__, queue_id);
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -0,0 +1,42 @@
|
|||||||
|
From c18b2f65e0a3be55e30fc3df6062e00353dfdb26 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Date: Wed, 31 Jan 2018 17:46:51 +0000
|
||||||
|
Subject: [PATCH 6/6] vhost: drop virtqueues only with built-in virtio driver
|
||||||
|
|
||||||
|
Commit e29109323595beb3884da58126ebb3b878cb66f5 ("vhost: destroy unused
|
||||||
|
virtqueues when multiqueue not negotiated") broke vhost-scsi by removing
|
||||||
|
virtqueues when the virtio-net-specific VIRTIO_NET_F_MQ feature bit is
|
||||||
|
missing.
|
||||||
|
|
||||||
|
The vhost_user.c code shouldn't assume all devices are vhost net device
|
||||||
|
backends. Use the new VIRTIO_DEV_BUILTIN_VIRTIO_NET flag to check
|
||||||
|
whether virtio_net.c is being used.
|
||||||
|
|
||||||
|
This fixes examples/vhost_scsi.
|
||||||
|
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
|
||||||
|
(cherry picked from commit 33adfbc805651f455dbf19f1e4b4b0878717a5e5)
|
||||||
|
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
|
||||||
|
---
|
||||||
|
dpdk-17.11/lib/librte_vhost/vhost_user.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dpdk-17.11/lib/librte_vhost/vhost_user.c b/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
index 1848c8de9..f334497d4 100644
|
||||||
|
--- a/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
+++ b/dpdk-17.11/lib/librte_vhost/vhost_user.c
|
||||||
|
@@ -216,7 +216,8 @@ vhost_user_set_features(struct virtio_net *dev, uint64_t features)
|
||||||
|
(dev->features & (1 << VIRTIO_NET_F_MRG_RXBUF)) ? "on" : "off",
|
||||||
|
(dev->features & (1ULL << VIRTIO_F_VERSION_1)) ? "on" : "off");
|
||||||
|
|
||||||
|
- if (!(dev->features & (1ULL << VIRTIO_NET_F_MQ))) {
|
||||||
|
+ if ((dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET) &&
|
||||||
|
+ !(dev->features & (1ULL << VIRTIO_NET_F_MQ))) {
|
||||||
|
/*
|
||||||
|
* Remove all but first queue pair if MQ hasn't been
|
||||||
|
* negotiated. This is safe because the device is not
|
||||||
|
--
|
||||||
|
2.14.3
|
||||||
|
|
@ -0,0 +1,86 @@
|
|||||||
|
The RH DPDK Configuration System
|
||||||
|
================================
|
||||||
|
|
||||||
|
Overview
|
||||||
|
--------
|
||||||
|
|
||||||
|
As we're aware, the DPDK configuration is an important thing to manage
|
||||||
|
well. We have a number of concerns that must be addressed in any
|
||||||
|
configuration management system.
|
||||||
|
|
||||||
|
1. We want to make sure that we have 'conscious' configurations made up
|
||||||
|
for each platform, and for each DPDK-enabled package
|
||||||
|
2. We want to make sure that when DPDK project adds a new configuration,
|
||||||
|
we make a conscious decision about whether we enable that
|
||||||
|
configuration.
|
||||||
|
3. We need to make sure that we can accommodate the wacky new
|
||||||
|
configuration management system coming down the pipe for
|
||||||
|
DPDK (meson+ninja).
|
||||||
|
|
||||||
|
|
||||||
|
Procedure (High level)
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Taking some inspiration from the kernel config DPDK packages will use
|
||||||
|
the following procedure:
|
||||||
|
|
||||||
|
1. We generate the DPDK configuration from source (as we do today with
|
||||||
|
'make T=TEMPLATE config'). This creates a base configuration file.
|
||||||
|
In this case TEMPLATE is the combination of $arch and $release that
|
||||||
|
can vary for the package.
|
||||||
|
2. We generate a sha256 sum from that file (based on a rules engine
|
||||||
|
described later).
|
||||||
|
3. We take a hand-built checked-in configuration (dpdk.TEMPLATE.config)
|
||||||
|
which has a special tag inside containing the required base sha256
|
||||||
|
sum and compare with the generated sha256 sum.
|
||||||
|
4. If the comparison succeeds, we overwrite the generated config with
|
||||||
|
the hand-built config. Proceed building as normal.
|
||||||
|
5. If the comparison fails, we halt the build. Clearly a new
|
||||||
|
configuration was introduced which was not considered and needs to be
|
||||||
|
addressed.
|
||||||
|
|
||||||
|
It's important to note that if the default configuration changes, that
|
||||||
|
will also cause the shasum to change. Even if the default for a
|
||||||
|
parameter that we override changes, this will trip up this simplistic
|
||||||
|
version.
|
||||||
|
|
||||||
|
|
||||||
|
SHA Sum
|
||||||
|
-------
|
||||||
|
|
||||||
|
To generate the sha256 sum:
|
||||||
|
* remove all 'comment' and empty lines
|
||||||
|
* sort the remaining lines
|
||||||
|
* calculate the sha sum
|
||||||
|
|
||||||
|
This is expressed in bash as a one-liner:
|
||||||
|
|
||||||
|
egrep -v ^"$cmnt" $1 | egrep -v ^$ | sort -u | sha256sum | cut -d" " -f1
|
||||||
|
|
||||||
|
The new DPDK configuration will be generating into a header file
|
||||||
|
(rte_config.h), and so some 'forward' consideration was given to making
|
||||||
|
the comment line as configurable (instead of using straight '#') - hence the
|
||||||
|
'$cmnt' variable.
|
||||||
|
|
||||||
|
The SHA sum will be identified in the 'new' header by the standard ascii
|
||||||
|
tag format:
|
||||||
|
|
||||||
|
# -*- cfg-sha: [a-z0-9]+
|
||||||
|
|
||||||
|
Or in the case of a .c file:
|
||||||
|
/* -*- cfg-sha: [a-z0-9]+ */
|
||||||
|
|
||||||
|
|
||||||
|
Helper scripts
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Included are a set of scripts for DPDK configuration, which replaces
|
||||||
|
the original setconf functions in the old spec file.
|
||||||
|
|
||||||
|
* set_config.sh - A script which copies the new DPDK configuration over the
|
||||||
|
old one. This validates the sha sum.
|
||||||
|
* gen_config_group.sh - A script which reads the .spec file for all of the
|
||||||
|
architectures and generates starting configurations.
|
||||||
|
Use this script to get a baseline configuration for
|
||||||
|
modifying.
|
||||||
|
* configlib.sh - A library for generating and reading SHA sums.
|
@ -0,0 +1,559 @@
|
|||||||
|
# -*- cfg-sha: 2543d3fdeee262a6a7fdcdd19e5c36cde5ae450d4cdf35a4a4af438710180e98
|
||||||
|
# BSD LICENSE
|
||||||
|
# Copyright (C) Cavium, Inc 2015. 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 Cavium, Inc 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.
|
||||||
|
# BSD LICENSE
|
||||||
|
# Copyright (C) Cavium, Inc 2017. 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 Cavium, Inc 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.
|
||||||
|
# BSD LICENSE
|
||||||
|
# Copyright(c) 2010-2016 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.
|
||||||
|
# BSD LICENSE
|
||||||
|
# Copyright(c) 2010-2017 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.
|
||||||
|
# RTE_EXEC_ENV values are the directories in mk/exec-env/
|
||||||
|
CONFIG_RTE_EXEC_ENV="linuxapp"
|
||||||
|
# RTE_ARCH values are architecture we compile for. directories in mk/arch/
|
||||||
|
CONFIG_RTE_ARCH="arm64"
|
||||||
|
# machine can define specific variables or action for a specific board
|
||||||
|
# RTE_MACHINE values are architecture we compile for. directories in mk/machine/
|
||||||
|
CONFIG_RTE_MACHINE="armv8a"
|
||||||
|
# The compiler we use.
|
||||||
|
# RTE_TOOLCHAIN values are architecture we compile for. directories in mk/toolchain/
|
||||||
|
CONFIG_RTE_TOOLCHAIN="gcc"
|
||||||
|
# Use intrinsics or assembly code for key routines
|
||||||
|
CONFIG_RTE_FORCE_INTRINSICS=y
|
||||||
|
# Machine forces strict alignment constraints.
|
||||||
|
CONFIG_RTE_ARCH_STRICT_ALIGN=n
|
||||||
|
# Compile to share library
|
||||||
|
CONFIG_RTE_BUILD_SHARED_LIB=n
|
||||||
|
# Use newest code breaking previous ABI
|
||||||
|
CONFIG_RTE_NEXT_ABI=n
|
||||||
|
# Major ABI to overwrite library specific LIBABIVER
|
||||||
|
CONFIG_RTE_MAJOR_ABI=
|
||||||
|
# Machine's cache line size
|
||||||
|
CONFIG_RTE_CACHE_LINE_SIZE=128
|
||||||
|
# Compile Environment Abstraction Layer
|
||||||
|
CONFIG_RTE_LIBRTE_EAL=y
|
||||||
|
CONFIG_RTE_MAX_LCORE=128
|
||||||
|
CONFIG_RTE_MAX_NUMA_NODES=8
|
||||||
|
CONFIG_RTE_MAX_MEMSEG=256
|
||||||
|
CONFIG_RTE_MAX_MEMZONE=2560
|
||||||
|
CONFIG_RTE_MAX_TAILQ=32
|
||||||
|
CONFIG_RTE_ENABLE_ASSERT=n
|
||||||
|
CONFIG_RTE_LOG_LEVEL=RTE_LOG_INFO
|
||||||
|
CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO
|
||||||
|
CONFIG_RTE_LOG_HISTORY=256
|
||||||
|
CONFIG_RTE_BACKTRACE=y
|
||||||
|
CONFIG_RTE_LIBEAL_USE_HPET=n
|
||||||
|
CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n
|
||||||
|
CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n
|
||||||
|
CONFIG_RTE_EAL_IGB_UIO=n
|
||||||
|
CONFIG_RTE_EAL_VFIO=y
|
||||||
|
CONFIG_RTE_MALLOC_DEBUG=n
|
||||||
|
CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=y
|
||||||
|
# Recognize/ignore architecture we compile for. AVX/AVX512 CPU flags for performance/power testing.
|
||||||
|
# AVX512 is marked as experimental for now, will enable it after enough
|
||||||
|
# field test and possible optimization.
|
||||||
|
CONFIG_RTE_ENABLE_AVX=y
|
||||||
|
CONFIG_RTE_ENABLE_AVX512=n
|
||||||
|
# Default driver path (or "" to disable)
|
||||||
|
CONFIG_RTE_EAL_PMD_PATH=""
|
||||||
|
# Compile Environment Abstraction Layer to support Vmware TSC map
|
||||||
|
CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=y
|
||||||
|
# Compile architecture we compile for. PCI library
|
||||||
|
CONFIG_RTE_LIBRTE_PCI=y
|
||||||
|
# Compile architecture we compile for. argument parser library
|
||||||
|
CONFIG_RTE_LIBRTE_KVARGS=y
|
||||||
|
# Compile generic ethernet library
|
||||||
|
CONFIG_RTE_LIBRTE_ETHER=y
|
||||||
|
CONFIG_RTE_LIBRTE_ETHDEV_DEBUG=n
|
||||||
|
CONFIG_RTE_MAX_ETHPORTS=32
|
||||||
|
CONFIG_RTE_MAX_QUEUES_PER_PORT=1024
|
||||||
|
CONFIG_RTE_LIBRTE_IEEE1588=n
|
||||||
|
CONFIG_RTE_ETHDEV_QUEUE_STAT_CNTRS=16
|
||||||
|
CONFIG_RTE_ETHDEV_RXTX_CALLBACKS=y
|
||||||
|
CONFIG_RTE_ETHDEV_PROFILE_ITT_WASTED_RX_ITERATIONS=n
|
||||||
|
# Turn off Tx preparation stage
|
||||||
|
# Warning: rte_eth_tx_prepare() can be safely disabled only if using a
|
||||||
|
# driver which do not implement any Tx preparation.
|
||||||
|
CONFIG_RTE_ETHDEV_TX_PREPARE_NOOP=n
|
||||||
|
# Compile PCI bus driver
|
||||||
|
CONFIG_RTE_LIBRTE_PCI_BUS=y
|
||||||
|
# Compile architecture we compile for. vdev bus
|
||||||
|
CONFIG_RTE_LIBRTE_VDEV_BUS=y
|
||||||
|
# Compile burst-oriented Amazon ENA PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_COM_DEBUG=n
|
||||||
|
# Compile burst-oriented IGB & EM PMD drivers
|
||||||
|
CONFIG_RTE_LIBRTE_EM_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_IGB_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_PF_DISABLE_STRIP_CRC=n
|
||||||
|
# Compile burst-oriented IXGBE PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n
|
||||||
|
CONFIG_RTE_IXGBE_INC_VECTOR=y
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_BYPASS=n
|
||||||
|
# Compile burst-oriented I40E PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VF=4
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=4
|
||||||
|
# interval up to 8160 us, aligned to 2 (or default value)
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_ITR_INTERVAL=-1
|
||||||
|
# Compile burst-oriented FM10K PMD
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_RX_OLFLAGS_ENABLE=y
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_INC_VECTOR=y
|
||||||
|
# Compile burst-oriented Mellanox ConnectX-3 (MLX4) PMD
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_DEBUG_BROKEN_VERBS=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE=8
|
||||||
|
# Compile burst-oriented Mellanox ConnectX-4 & ConnectX-5 (MLX5) PMD
|
||||||
|
CONFIG_RTE_LIBRTE_MLX5_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX5_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX5_TX_MP_CACHE=8
|
||||||
|
# Compile burst-oriented Broadcom PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC=n
|
||||||
|
# Compile burst-oriented Chelsio Terminator (CXGBE) PMD
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_REG=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_MBOX=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_TPUT=y
|
||||||
|
# Compile burst-oriented Cisco ENIC PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_ENIC_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENIC_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENIC_DEBUG_FLOW=n
|
||||||
|
# Compile burst-oriented Netronome NFP PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_NFP_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_NFP_DEBUG=n
|
||||||
|
# Compile Marvell PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_MRVL_PMD=n
|
||||||
|
# Compile burst-oriented Broadcom BNXT PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_BNXT_PMD=n
|
||||||
|
# Compile burst-oriented Solarflare libefx-based PMD
|
||||||
|
CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_SFC_EFX_DEBUG=n
|
||||||
|
# Compile SOFTNIC PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SOFTNIC=y
|
||||||
|
# Compile software PMD backed by SZEDATA2 device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SZEDATA2=n
|
||||||
|
# Defines firmware type address space.
|
||||||
|
# See documentation for supported values.
|
||||||
|
# Other values raise compile time error.
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SZEDATA2_AS=0
|
||||||
|
# Compile burst-oriented Cavium Thunderx NICVF PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_MBOX=n
|
||||||
|
# Compile burst-oriented Cavium LiquidIO PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_MBOX=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_REGS=n
|
||||||
|
# NXP DPAA Bus
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_BUS=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_PMD=n
|
||||||
|
# Compile burst-oriented Cavium OCTEONTX network PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_MBOX=n
|
||||||
|
# Compile NXP DPAA2 FSL-MC Bus
|
||||||
|
CONFIG_RTE_LIBRTE_FSLMC_BUS=n
|
||||||
|
# Compile Support Libraries for NXP DPAA2
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_USE_PHYS_IOVA=y
|
||||||
|
# Compile burst-oriented NXP DPAA2 PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX_FREE=n
|
||||||
|
# Compile burst-oriented VIRTIO PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DUMP=n
|
||||||
|
# Compile virtio device emulation inside virtio PMD driver
|
||||||
|
CONFIG_RTE_VIRTIO_USER=n
|
||||||
|
# Compile burst-oriented VMXNET3 PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_DRIVER=n
|
||||||
|
# Compile example software rings based PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_RING=y
|
||||||
|
CONFIG_RTE_PMD_RING_MAX_RX_RINGS=16
|
||||||
|
CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16
|
||||||
|
# Compile software PMD backed by PCAP files
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_PCAP=n
|
||||||
|
# Compile link bonding PMD library
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_BOND=n
|
||||||
|
CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB=n
|
||||||
|
CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB_L1=n
|
||||||
|
# QLogic 10G/25G/40G/50G/100G PMD
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_INFO=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_VF_TX_SWITCH=y
|
||||||
|
#Provides abs path/name of architecture we compile for. firmware file.
|
||||||
|
#Empty string denotes driver will use default firmware
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_FW=""
|
||||||
|
# Compile software PMD backed by AF_PACKET sockets (Linux only)
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AF_PACKET=n
|
||||||
|
# Compile ARK PMD
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_PAD_TX=y
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_STATS=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_TRACE=n
|
||||||
|
# Compile WRS accelerated virtual port (AVP) guest PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_DRIVER=y
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_BUFFERS=n
|
||||||
|
# Compile architecture we compile for. TAP PMD
|
||||||
|
# It is enabled by default for Linux only.
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_TAP=n
|
||||||
|
# Compile null PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_NULL=n
|
||||||
|
# Compile fail-safe PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_FAILSAFE=y
|
||||||
|
# Do prefetch of packet data within PMD driver receive function
|
||||||
|
CONFIG_RTE_PMD_PACKET_PREFETCH=y
|
||||||
|
# Compile generic crypto device library
|
||||||
|
CONFIG_RTE_LIBRTE_CRYPTODEV=n
|
||||||
|
CONFIG_RTE_LIBRTE_CRYPTODEV_DEBUG=n
|
||||||
|
CONFIG_RTE_CRYPTO_MAX_DEVS=64
|
||||||
|
CONFIG_RTE_CRYPTODEV_NAME_LEN=64
|
||||||
|
# Compile PMD for ARMv8 Crypto device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO_DEBUG=n
|
||||||
|
# Compile NXP DPAA2 crypto sec driver for CAAM HW
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_RX=n
|
||||||
|
# NXP DPAA caam - crypto driver
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_SEC_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_SEC_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_SEC_DEBUG_RX=n
|
||||||
|
# Compile PMD for QuickAssist based devices
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_DRIVER=n
|
||||||
|
# Number of sessions to create in architecture we compile for. session memory pool
|
||||||
|
# on a single QuickAssist device.
|
||||||
|
CONFIG_RTE_QAT_PMD_MAX_NB_SESSIONS=2048
|
||||||
|
# Compile PMD for AESNI backed device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_MB_DEBUG=n
|
||||||
|
# Compile PMD for Software backed device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OPENSSL=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OPENSSL_DEBUG=n
|
||||||
|
# Compile PMD for AESNI GCM device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_GCM_DEBUG=n
|
||||||
|
# Compile PMD for SNOW 3G device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SNOW3G=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SNOW3G_DEBUG=n
|
||||||
|
# Compile PMD for KASUMI device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_KASUMI=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_KASUMI_DEBUG=n
|
||||||
|
# Compile PMD for ZUC device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ZUC=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ZUC_DEBUG=n
|
||||||
|
# Compile PMD for Crypto Scheduler device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER_DEBUG=n
|
||||||
|
# Compile PMD for NULL Crypto device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO=n
|
||||||
|
# Compile PMD for Marvell Crypto device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO_DEBUG=n
|
||||||
|
# Compile generic security library
|
||||||
|
CONFIG_RTE_LIBRTE_SECURITY=n
|
||||||
|
# Compile generic event device library
|
||||||
|
CONFIG_RTE_LIBRTE_EVENTDEV=y
|
||||||
|
CONFIG_RTE_LIBRTE_EVENTDEV_DEBUG=n
|
||||||
|
CONFIG_RTE_EVENT_MAX_DEVS=16
|
||||||
|
CONFIG_RTE_EVENT_MAX_QUEUES_PER_DEV=64
|
||||||
|
# Compile PMD for skeleton event device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV_DEBUG=n
|
||||||
|
# Compile PMD for software event device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV_DEBUG=n
|
||||||
|
# Compile PMD for octeontx sso event device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF_DEBUG=n
|
||||||
|
# Compile librte_ring
|
||||||
|
CONFIG_RTE_LIBRTE_RING=y
|
||||||
|
# Compile librte_mempool
|
||||||
|
CONFIG_RTE_LIBRTE_MEMPOOL=y
|
||||||
|
CONFIG_RTE_MEMPOOL_CACHE_MAX_SIZE=512
|
||||||
|
CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=n
|
||||||
|
# Compile Mempool drivers
|
||||||
|
CONFIG_RTE_DRIVER_MEMPOOL_RING=y
|
||||||
|
CONFIG_RTE_DRIVER_MEMPOOL_STACK=y
|
||||||
|
# Compile PMD for octeontx fpa mempool device
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL=y
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL_DEBUG=n
|
||||||
|
# Compile librte_mbuf
|
||||||
|
CONFIG_RTE_LIBRTE_MBUF=y
|
||||||
|
CONFIG_RTE_LIBRTE_MBUF_DEBUG=n
|
||||||
|
CONFIG_RTE_MBUF_DEFAULT_MEMPOOL_OPS="ring_mp_mc"
|
||||||
|
CONFIG_RTE_MBUF_REFCNT_ATOMIC=y
|
||||||
|
CONFIG_RTE_PKTMBUF_HEADROOM=128
|
||||||
|
# Compile librte_timer
|
||||||
|
CONFIG_RTE_LIBRTE_TIMER=n
|
||||||
|
CONFIG_RTE_LIBRTE_TIMER_DEBUG=n
|
||||||
|
# Compile librte_cfgfile
|
||||||
|
CONFIG_RTE_LIBRTE_CFGFILE=n
|
||||||
|
# Compile librte_cmdline
|
||||||
|
CONFIG_RTE_LIBRTE_CMDLINE=y
|
||||||
|
CONFIG_RTE_LIBRTE_CMDLINE_DEBUG=n
|
||||||
|
# Compile librte_hash
|
||||||
|
CONFIG_RTE_LIBRTE_HASH=y
|
||||||
|
CONFIG_RTE_LIBRTE_HASH_DEBUG=n
|
||||||
|
# Compile librte_efd
|
||||||
|
CONFIG_RTE_LIBRTE_EFD=y
|
||||||
|
# Compile librte_member
|
||||||
|
CONFIG_RTE_LIBRTE_MEMBER=y
|
||||||
|
# Compile librte_jobstats
|
||||||
|
CONFIG_RTE_LIBRTE_JOBSTATS=n
|
||||||
|
# Compile architecture we compile for. device metrics library
|
||||||
|
CONFIG_RTE_LIBRTE_METRICS=y
|
||||||
|
# Compile architecture we compile for. bitrate statistics library
|
||||||
|
CONFIG_RTE_LIBRTE_BITRATE=y
|
||||||
|
# Compile architecture we compile for. latency statistics library
|
||||||
|
CONFIG_RTE_LIBRTE_LATENCY_STATS=y
|
||||||
|
# Compile librte_lpm
|
||||||
|
CONFIG_RTE_LIBRTE_LPM=n
|
||||||
|
CONFIG_RTE_LIBRTE_LPM_DEBUG=n
|
||||||
|
# Compile librte_acl
|
||||||
|
CONFIG_RTE_LIBRTE_ACL=n
|
||||||
|
CONFIG_RTE_LIBRTE_ACL_DEBUG=n
|
||||||
|
# Compile librte_power
|
||||||
|
CONFIG_RTE_LIBRTE_POWER=n
|
||||||
|
CONFIG_RTE_LIBRTE_POWER_DEBUG=n
|
||||||
|
CONFIG_RTE_MAX_LCORE_FREQS=64
|
||||||
|
# Compile librte_net
|
||||||
|
CONFIG_RTE_LIBRTE_NET=y
|
||||||
|
# Compile librte_ip_frag
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG=y
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG_MAX_FRAG=4
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG_TBL_STAT=n
|
||||||
|
# Compile GRO library
|
||||||
|
CONFIG_RTE_LIBRTE_GRO=y
|
||||||
|
# Compile GSO library
|
||||||
|
CONFIG_RTE_LIBRTE_GSO=y
|
||||||
|
# Compile librte_meter
|
||||||
|
CONFIG_RTE_LIBRTE_METER=y
|
||||||
|
# Compile librte_classify
|
||||||
|
CONFIG_RTE_LIBRTE_FLOW_CLASSIFY=n
|
||||||
|
# Compile librte_sched
|
||||||
|
CONFIG_RTE_LIBRTE_SCHED=y
|
||||||
|
CONFIG_RTE_SCHED_DEBUG=n
|
||||||
|
CONFIG_RTE_SCHED_RED=n
|
||||||
|
CONFIG_RTE_SCHED_COLLECT_STATS=n
|
||||||
|
CONFIG_RTE_SCHED_SUBPORT_TC_OV=n
|
||||||
|
CONFIG_RTE_SCHED_PORT_N_GRINDERS=8
|
||||||
|
CONFIG_RTE_SCHED_VECTOR=n
|
||||||
|
# Compile architecture we compile for. distributor library
|
||||||
|
CONFIG_RTE_LIBRTE_DISTRIBUTOR=n
|
||||||
|
# Compile architecture we compile for. reorder library
|
||||||
|
CONFIG_RTE_LIBRTE_REORDER=n
|
||||||
|
# Compile librte_port
|
||||||
|
CONFIG_RTE_LIBRTE_PORT=n
|
||||||
|
CONFIG_RTE_PORT_STATS_COLLECT=n
|
||||||
|
CONFIG_RTE_PORT_PCAP=n
|
||||||
|
# Compile librte_table
|
||||||
|
CONFIG_RTE_LIBRTE_TABLE=n
|
||||||
|
CONFIG_RTE_TABLE_STATS_COLLECT=n
|
||||||
|
# Compile librte_pipeline
|
||||||
|
CONFIG_RTE_LIBRTE_PIPELINE=n
|
||||||
|
CONFIG_RTE_PIPELINE_STATS_COLLECT=n
|
||||||
|
# Compile librte_kni
|
||||||
|
CONFIG_RTE_LIBRTE_KNI=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_KNI=n
|
||||||
|
CONFIG_RTE_KNI_KMOD=n
|
||||||
|
CONFIG_RTE_KNI_KMOD_ETHTOOL=n
|
||||||
|
CONFIG_RTE_KNI_PREEMPT_DEFAULT=y
|
||||||
|
# Compile architecture we compile for. pdump library
|
||||||
|
CONFIG_RTE_LIBRTE_PDUMP=y
|
||||||
|
# Compile vhost user library
|
||||||
|
CONFIG_RTE_LIBRTE_VHOST=y
|
||||||
|
CONFIG_RTE_LIBRTE_VHOST_NUMA=y
|
||||||
|
CONFIG_RTE_LIBRTE_VHOST_DEBUG=n
|
||||||
|
# Compile vhost PMD
|
||||||
|
# To compile, CONFIG_RTE_LIBRTE_VHOST should be enabled.
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_VHOST=n
|
||||||
|
# Compile architecture we compile for. test application
|
||||||
|
CONFIG_RTE_APP_TEST=y
|
||||||
|
CONFIG_RTE_APP_TEST_RESOURCE_TAR=n
|
||||||
|
# Compile architecture we compile for. PMD test application
|
||||||
|
CONFIG_RTE_TEST_PMD=n
|
||||||
|
CONFIG_RTE_TEST_PMD_RECORD_CORE_CYCLES=n
|
||||||
|
CONFIG_RTE_TEST_PMD_RECORD_BURST_STATS=n
|
||||||
|
# Compile architecture we compile for. crypto performance application
|
||||||
|
CONFIG_RTE_APP_CRYPTO_PERF=y
|
||||||
|
# Compile architecture we compile for. eventdev application
|
||||||
|
CONFIG_RTE_APP_EVENTDEV=y
|
||||||
|
CONFIG_RTE_EXEC_ENV_LINUXAPP=y
|
||||||
|
CONFIG_RTE_ARCH_ARM64=y
|
||||||
|
CONFIG_RTE_ARCH_64=y
|
||||||
|
# Maximum available cache line size in arm64 implementations.
|
||||||
|
# Setting to maximum available cache line size in generic config
|
||||||
|
# to address minimum DMA alignment across all arm64 implementations.
|
||||||
|
CONFIG_RTE_TOOLCHAIN_GCC=y
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_XENVIRT=n
|
@ -0,0 +1,105 @@
|
|||||||
|
# Copyright (C) 2017, Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# Core configuration file library.
|
||||||
|
|
||||||
|
# Configurations are determined by sha values. The way to determine is by
|
||||||
|
# the special text:
|
||||||
|
# $FILE_COMMENT_TYPE -*- cfg-sha: $SHA256 -*-
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
# check required binaries
|
||||||
|
__check_reqd_binaries() {
|
||||||
|
local BIN __binaries=("egrep" "sort" "sha256sum" "sed")
|
||||||
|
for BIN in $__binaries; do
|
||||||
|
if ! type -P $BIN >/dev/null 2>&1; then
|
||||||
|
echo "Binary $BIN not found. Please install."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Calculates a sha from a file
|
||||||
|
# The algorithm for generating a sha from a config is thus:
|
||||||
|
#
|
||||||
|
# 1. Remove all comment lines and blank lines
|
||||||
|
# 2. Sort the content
|
||||||
|
# 3. generate the sha-256 sum
|
||||||
|
#
|
||||||
|
# From a script perspective, this means:
|
||||||
|
# egrep -v ^\# %file% | egrep -v ^$ | sort -u | sha256sum
|
||||||
|
#
|
||||||
|
# Params:
|
||||||
|
# $1 = output variable
|
||||||
|
# $2 = file to use to calculate the shasum
|
||||||
|
# $3 = file comment type (defaults to # if unspecified)
|
||||||
|
calc_sha() {
|
||||||
|
__check_reqd_binaries
|
||||||
|
|
||||||
|
if [ "$1" == "" ]; then
|
||||||
|
echo "Please pass in a storage variable."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local __resultvar=$1
|
||||||
|
__retval=1
|
||||||
|
shift
|
||||||
|
|
||||||
|
local __file=$1
|
||||||
|
local cmnt=${2:-#}
|
||||||
|
|
||||||
|
if [ -f "$__file" ]; then
|
||||||
|
local __shasum=$(egrep -v ^"$cmnt" "$__file" | egrep -v ^$ | sort -u | sha256sum -t | cut -d" " -f1)
|
||||||
|
eval $__resultvar="'$__shasum'"
|
||||||
|
__retval=0
|
||||||
|
fi
|
||||||
|
return $__retval
|
||||||
|
}
|
||||||
|
|
||||||
|
# Retrieves a sha stored in a file
|
||||||
|
# Param:
|
||||||
|
# $1 = output variable
|
||||||
|
# $2 = file to use to calculate the shasum
|
||||||
|
# $3 = file comment type (defaults to # if unspecified)
|
||||||
|
retr_sha() {
|
||||||
|
__check_reqd_binaries
|
||||||
|
|
||||||
|
if [ "$1" == "" ]; then
|
||||||
|
echo "Please pass in a storage variable."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local __resultvar=$1
|
||||||
|
__retval=1
|
||||||
|
shift
|
||||||
|
|
||||||
|
local __file=$1
|
||||||
|
local cmnt=${2:-#}
|
||||||
|
|
||||||
|
if [ -f "$__file" ]; then
|
||||||
|
if grep -q "$cmnt -\*- cfg-sha:" "$__file"; then
|
||||||
|
local __shasum=$(grep "$cmnt -\*- cfg-sha:" "$__file" | sed -e "s@$cmnt -\*- cfg-sha: @@" | cut -d" " -f1)
|
||||||
|
eval $__resultvar="'$__shasum'"
|
||||||
|
__retval=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
return $__retval
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Set a config value
|
||||||
|
# set_conf dpdk_build_tree parameter value
|
||||||
|
# dpdk_build_tree is the directory where the .config lives
|
||||||
|
# parameter is the config parameter
|
||||||
|
# value is the value to set for the config parameter
|
||||||
|
set_conf() {
|
||||||
|
c="$1/.config"
|
||||||
|
shift
|
||||||
|
|
||||||
|
if grep -q "$1" "$c"; then
|
||||||
|
sed -i "s:^$1=.*$:$1=$2:g" $c
|
||||||
|
else
|
||||||
|
echo $1=$2 >> "$c"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,151 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source configlib.sh
|
||||||
|
|
||||||
|
# Generates arch configurations in the current directory based on
|
||||||
|
# 1. an openvswitch.spec file
|
||||||
|
# 2. an expanded dpdk tree
|
||||||
|
|
||||||
|
if (( $# != 2 )); then
|
||||||
|
echo "$0: openvswitch.spec dpdk_tree" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
OVSSPEC="$1"
|
||||||
|
DPDKDIR="$2"
|
||||||
|
|
||||||
|
# accumulate all arch + name triples
|
||||||
|
OVS_DPDK_CONF_MACH_ARCH=()
|
||||||
|
for arch in $(grep %define\ dpdk_mach_arch "$OVSSPEC" | sed 's@%define dpdk_mach_arch @@')
|
||||||
|
do
|
||||||
|
OVS_DPDK_CONF_MACH_ARCH+=($arch)
|
||||||
|
done
|
||||||
|
|
||||||
|
OVS_DPDK_CONF_MACH_TMPL=()
|
||||||
|
for tmpl in $(grep %define\ dpdk_mach_tmpl "$OVSSPEC" | sed 's@%define dpdk_mach_tmpl @@')
|
||||||
|
do
|
||||||
|
OVS_DPDK_CONF_MACH_TMPL+=($tmpl)
|
||||||
|
done
|
||||||
|
|
||||||
|
OVS_DPDK_CONF_MACH=()
|
||||||
|
for mach in $(grep %define\ dpdk_mach\ "$OVSSPEC" | sed 's@%define dpdk_mach @@')
|
||||||
|
do
|
||||||
|
OVS_DPDK_CONF_MACH+=($mach)
|
||||||
|
done
|
||||||
|
|
||||||
|
OVS_DPDK_TARGETS=()
|
||||||
|
for ((i=0; i < ${#OVS_DPDK_CONF_MACH[@]}; i++));
|
||||||
|
do
|
||||||
|
OVS_DPDK_TARGETS+=("${OVS_DPDK_CONF_MACH_ARCH[$i]}-${OVS_DPDK_CONF_MACH_TMPL[$i]}-linuxapp-gcc")
|
||||||
|
echo "DPDK-target: ${OVS_DPDK_TARGETS[$i]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
OUTPUT_DIR=$(pwd)
|
||||||
|
pushd "$DPDKDIR"
|
||||||
|
for ((i=0; i < ${#OVS_DPDK_TARGETS[@]}; i++));
|
||||||
|
do
|
||||||
|
echo "For ${OVS_DPDK_TARGETS[$i]}:"
|
||||||
|
|
||||||
|
echo " a. Generating initial config"
|
||||||
|
echo " make V=1 T=${OVS_DPDK_TARGETS[$i]} O=${OVS_DPDK_TARGETS[$i]}"
|
||||||
|
make V=1 T=${OVS_DPDK_TARGETS[$i]} O=${OVS_DPDK_TARGETS[$i]} -j8 config
|
||||||
|
ORIG_SHA=""
|
||||||
|
OUTDIR="${OVS_DPDK_TARGETS[$i]}"
|
||||||
|
|
||||||
|
echo " b. calculating and applying sha"
|
||||||
|
calc_sha ORIG_SHA "${OUTDIR}/.config"
|
||||||
|
if [ "$ORIG_SHA" == "" ]; then
|
||||||
|
echo "ERROR: Unable to get sha for arch ${OVS_DPDK_TARGETS[$i]}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "# -*- cfg-sha: ${ORIG_SHA}" > ${OUTDIR}/.config.new
|
||||||
|
cat "${OUTDIR}/.config" >> "${OUTDIR}/.config.new"
|
||||||
|
cp "${OUTDIR}/.config" "${OUTDIR}/.config.orig"
|
||||||
|
mv -f "${OUTDIR}/.config.new" "${OUTDIR}/.config"
|
||||||
|
|
||||||
|
echo " c. setting initial configurations"
|
||||||
|
# these are the original setconf values from openvswitch.spec
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_MACHINE "\\\"${OVS_DPDK_CONF_MACH[$i]}\\\""
|
||||||
|
|
||||||
|
# Disable DPDK libraries not needed by OVS
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_TIMER n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_CFGFILE n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_JOBSTATS n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_LPM n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_ACL n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_POWER n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_DISTRIBUTOR n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_REORDER n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PORT n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_TABLE n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PIPELINE n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_KNI n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_CRYPTODEV n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_SECURITY n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_FLOW_CLASSIFY n
|
||||||
|
|
||||||
|
# Disable virtio user as not used by OVS
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_VIRTIO_USER n
|
||||||
|
|
||||||
|
# Enable DPDK libraries needed by OVS
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_VHOST_NUMA y
|
||||||
|
|
||||||
|
# start by disabling ALL PMDs
|
||||||
|
for pmd in $(grep _PMD= "${OUTDIR}/.config" | sed 's@=\(y\|n\)@@g')
|
||||||
|
do
|
||||||
|
set_conf "${OUTDIR}" $pmd n
|
||||||
|
done
|
||||||
|
|
||||||
|
# PMDs which have their own naming scheme
|
||||||
|
# the default for this was 'n' at one point. Make sure we keep it
|
||||||
|
# as such
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_QAT n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_VHOST n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_KNI n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_XENVIRT n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_NULL n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_TAP n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_PCAP n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_BOND n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_AF_PACKET n
|
||||||
|
|
||||||
|
# whitelist of enabled PMDs
|
||||||
|
# Soft PMDs to enable
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_PMD_RING y
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_VIRTIO_PMD y
|
||||||
|
|
||||||
|
# HW PMDs
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_I40E_PMD y
|
||||||
|
case "${OVS_DPDK_CONF_MACH_ARCH[i]}" in
|
||||||
|
x86_64)
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_ENIC_PMD y
|
||||||
|
;&
|
||||||
|
arm64)
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_IXGBE_PMD y
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_LIBRTE_IGB_PMD y
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Disable kernel modules
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_EAL_IGB_UIO n
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_KNI_KMOD n
|
||||||
|
|
||||||
|
# Disable experimental stuff
|
||||||
|
set_conf "${OUTDIR}" CONFIG_RTE_NEXT_ABI n
|
||||||
|
|
||||||
|
cp "${OUTDIR}/.config" "${OUTPUT_DIR}/${OVS_DPDK_TARGETS[$i]}-config"
|
||||||
|
done
|
||||||
|
popd >/dev/null
|
||||||
|
|
||||||
|
echo -n "For each arch ( "
|
||||||
|
for ((i=0; i < ${#OVS_DPDK_CONF_MACH_ARCH[@]}; i++));
|
||||||
|
do
|
||||||
|
echo -n "${OVS_DPDK_CONF_MACH_ARCH[i]} "
|
||||||
|
done
|
||||||
|
echo "):"
|
||||||
|
echo "1. ensure you enable the requisite hw"
|
@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# This script is only used to create snapshot tarball from the git tree.
|
|
||||||
#
|
|
||||||
|
|
||||||
echo "Warning: for unreleased code, the original version might be
|
|
||||||
the unreleased next one. In that case, downgrade to the previous
|
|
||||||
released version so that we have: stable + fixes."
|
|
||||||
basever="2.4.0"
|
|
||||||
|
|
||||||
echo "Using version ${basever} while the code has"
|
|
||||||
grep "bugs@openvswitch.org" configure.ac
|
|
||||||
|
|
||||||
snap_gitsha=`git log --pretty=oneline -n1|cut -c1-8`
|
|
||||||
prefix=openvswitch-${basever}-git${snap_gitsha}
|
|
||||||
archive=${prefix}.tar.gz
|
|
||||||
|
|
||||||
echo "Creating ${archive}"
|
|
||||||
git archive --prefix=${prefix}/ HEAD | gzip -9 > ${archive}
|
|
@ -0,0 +1,534 @@
|
|||||||
|
# -*- cfg-sha: 4d1578565c23e449d8e5c1c18e88181f05769b5132b7f22dcbed6bce900e9d0c
|
||||||
|
# BSD LICENSE
|
||||||
|
# Copyright (C) IBM Corporation 2014.
|
||||||
|
# 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 IBM 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.
|
||||||
|
# BSD LICENSE
|
||||||
|
# Copyright(c) 2010-2016 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.
|
||||||
|
# BSD LICENSE
|
||||||
|
# Copyright(c) 2010-2017 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.
|
||||||
|
# RTE_EXEC_ENV values are the directories in mk/exec-env/
|
||||||
|
CONFIG_RTE_EXEC_ENV="linuxapp"
|
||||||
|
# RTE_ARCH values are architecture we compile for. directories in mk/arch/
|
||||||
|
CONFIG_RTE_ARCH="ppc_64"
|
||||||
|
# machine can define specific variables or action for a specific board
|
||||||
|
# RTE_MACHINE values are architecture we compile for. directories in mk/machine/
|
||||||
|
CONFIG_RTE_MACHINE="power8"
|
||||||
|
# The compiler we use.
|
||||||
|
# RTE_TOOLCHAIN values are architecture we compile for. directories in mk/toolchain/
|
||||||
|
CONFIG_RTE_TOOLCHAIN="gcc"
|
||||||
|
# Use intrinsics or assembly code for key routines
|
||||||
|
CONFIG_RTE_FORCE_INTRINSICS=n
|
||||||
|
# Machine forces strict alignment constraints.
|
||||||
|
CONFIG_RTE_ARCH_STRICT_ALIGN=n
|
||||||
|
# Compile to share library
|
||||||
|
CONFIG_RTE_BUILD_SHARED_LIB=n
|
||||||
|
# Use newest code breaking previous ABI
|
||||||
|
CONFIG_RTE_NEXT_ABI=n
|
||||||
|
# Major ABI to overwrite library specific LIBABIVER
|
||||||
|
CONFIG_RTE_MAJOR_ABI=
|
||||||
|
# Machine's cache line size
|
||||||
|
CONFIG_RTE_CACHE_LINE_SIZE=128
|
||||||
|
# Compile Environment Abstraction Layer
|
||||||
|
CONFIG_RTE_LIBRTE_EAL=y
|
||||||
|
CONFIG_RTE_MAX_LCORE=256
|
||||||
|
CONFIG_RTE_MAX_NUMA_NODES=32
|
||||||
|
CONFIG_RTE_MAX_MEMSEG=256
|
||||||
|
CONFIG_RTE_MAX_MEMZONE=2560
|
||||||
|
CONFIG_RTE_MAX_TAILQ=32
|
||||||
|
CONFIG_RTE_ENABLE_ASSERT=n
|
||||||
|
CONFIG_RTE_LOG_LEVEL=RTE_LOG_INFO
|
||||||
|
CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO
|
||||||
|
CONFIG_RTE_LOG_HISTORY=256
|
||||||
|
CONFIG_RTE_BACKTRACE=y
|
||||||
|
CONFIG_RTE_LIBEAL_USE_HPET=n
|
||||||
|
CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n
|
||||||
|
CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n
|
||||||
|
CONFIG_RTE_EAL_IGB_UIO=n
|
||||||
|
CONFIG_RTE_EAL_VFIO=y
|
||||||
|
CONFIG_RTE_MALLOC_DEBUG=n
|
||||||
|
CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=y
|
||||||
|
# Recognize/ignore architecture we compile for. AVX/AVX512 CPU flags for performance/power testing.
|
||||||
|
# AVX512 is marked as experimental for now, will enable it after enough
|
||||||
|
# field test and possible optimization.
|
||||||
|
CONFIG_RTE_ENABLE_AVX=y
|
||||||
|
CONFIG_RTE_ENABLE_AVX512=n
|
||||||
|
# Default driver path (or "" to disable)
|
||||||
|
CONFIG_RTE_EAL_PMD_PATH=""
|
||||||
|
# Compile Environment Abstraction Layer to support Vmware TSC map
|
||||||
|
CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=n
|
||||||
|
# Compile architecture we compile for. PCI library
|
||||||
|
CONFIG_RTE_LIBRTE_PCI=y
|
||||||
|
# Compile architecture we compile for. argument parser library
|
||||||
|
CONFIG_RTE_LIBRTE_KVARGS=y
|
||||||
|
# Compile generic ethernet library
|
||||||
|
CONFIG_RTE_LIBRTE_ETHER=y
|
||||||
|
CONFIG_RTE_LIBRTE_ETHDEV_DEBUG=n
|
||||||
|
CONFIG_RTE_MAX_ETHPORTS=32
|
||||||
|
CONFIG_RTE_MAX_QUEUES_PER_PORT=1024
|
||||||
|
CONFIG_RTE_LIBRTE_IEEE1588=n
|
||||||
|
CONFIG_RTE_ETHDEV_QUEUE_STAT_CNTRS=16
|
||||||
|
CONFIG_RTE_ETHDEV_RXTX_CALLBACKS=y
|
||||||
|
CONFIG_RTE_ETHDEV_PROFILE_ITT_WASTED_RX_ITERATIONS=n
|
||||||
|
# Turn off Tx preparation stage
|
||||||
|
# Warning: rte_eth_tx_prepare() can be safely disabled only if using a
|
||||||
|
# driver which do not implement any Tx preparation.
|
||||||
|
CONFIG_RTE_ETHDEV_TX_PREPARE_NOOP=n
|
||||||
|
# Compile PCI bus driver
|
||||||
|
CONFIG_RTE_LIBRTE_PCI_BUS=y
|
||||||
|
# Compile architecture we compile for. vdev bus
|
||||||
|
CONFIG_RTE_LIBRTE_VDEV_BUS=y
|
||||||
|
# Compile burst-oriented Amazon ENA PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_COM_DEBUG=n
|
||||||
|
# Compile burst-oriented IGB & EM PMD drivers
|
||||||
|
CONFIG_RTE_LIBRTE_EM_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_IGB_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_PF_DISABLE_STRIP_CRC=n
|
||||||
|
# Compile burst-oriented IXGBE PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n
|
||||||
|
CONFIG_RTE_IXGBE_INC_VECTOR=y
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_BYPASS=n
|
||||||
|
# Compile burst-oriented I40E PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VF=4
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=4
|
||||||
|
# interval up to 8160 us, aligned to 2 (or default value)
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_ITR_INTERVAL=-1
|
||||||
|
# Compile burst-oriented FM10K PMD
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_RX_OLFLAGS_ENABLE=y
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_INC_VECTOR=y
|
||||||
|
# Compile burst-oriented Mellanox ConnectX-3 (MLX4) PMD
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_DEBUG_BROKEN_VERBS=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE=8
|
||||||
|
# Compile burst-oriented Mellanox ConnectX-4 & ConnectX-5 (MLX5) PMD
|
||||||
|
CONFIG_RTE_LIBRTE_MLX5_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX5_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX5_TX_MP_CACHE=8
|
||||||
|
# Compile burst-oriented Broadcom PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC=n
|
||||||
|
# Compile burst-oriented Chelsio Terminator (CXGBE) PMD
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_REG=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_MBOX=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_TPUT=y
|
||||||
|
# Compile burst-oriented Cisco ENIC PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_ENIC_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENIC_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENIC_DEBUG_FLOW=n
|
||||||
|
# Compile burst-oriented Netronome NFP PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_NFP_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_NFP_DEBUG=n
|
||||||
|
# Compile Marvell PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_MRVL_PMD=n
|
||||||
|
# Compile burst-oriented Broadcom BNXT PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_BNXT_PMD=n
|
||||||
|
# Compile burst-oriented Solarflare libefx-based PMD
|
||||||
|
CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_SFC_EFX_DEBUG=n
|
||||||
|
# Compile SOFTNIC PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SOFTNIC=y
|
||||||
|
# Compile software PMD backed by SZEDATA2 device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SZEDATA2=n
|
||||||
|
# Defines firmware type address space.
|
||||||
|
# See documentation for supported values.
|
||||||
|
# Other values raise compile time error.
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SZEDATA2_AS=0
|
||||||
|
# Compile burst-oriented Cavium Thunderx NICVF PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_MBOX=n
|
||||||
|
# Compile burst-oriented Cavium LiquidIO PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_MBOX=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_REGS=n
|
||||||
|
# NXP DPAA Bus
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_BUS=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_PMD=n
|
||||||
|
# Compile burst-oriented Cavium OCTEONTX network PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_MBOX=n
|
||||||
|
# Compile NXP DPAA2 FSL-MC Bus
|
||||||
|
CONFIG_RTE_LIBRTE_FSLMC_BUS=n
|
||||||
|
# Compile Support Libraries for NXP DPAA2
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_USE_PHYS_IOVA=y
|
||||||
|
# Compile burst-oriented NXP DPAA2 PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX_FREE=n
|
||||||
|
# Compile burst-oriented VIRTIO PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DUMP=n
|
||||||
|
# Compile virtio device emulation inside virtio PMD driver
|
||||||
|
CONFIG_RTE_VIRTIO_USER=n
|
||||||
|
# Compile burst-oriented VMXNET3 PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_DRIVER=n
|
||||||
|
# Compile example software rings based PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_RING=y
|
||||||
|
CONFIG_RTE_PMD_RING_MAX_RX_RINGS=16
|
||||||
|
CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16
|
||||||
|
# Compile software PMD backed by PCAP files
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_PCAP=n
|
||||||
|
# Compile link bonding PMD library
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_BOND=n
|
||||||
|
CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB=n
|
||||||
|
CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB_L1=n
|
||||||
|
# QLogic 10G/25G/40G/50G/100G PMD
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_INFO=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_VF_TX_SWITCH=y
|
||||||
|
#Provides abs path/name of architecture we compile for. firmware file.
|
||||||
|
#Empty string denotes driver will use default firmware
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_FW=""
|
||||||
|
# Compile software PMD backed by AF_PACKET sockets (Linux only)
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AF_PACKET=n
|
||||||
|
# Compile ARK PMD
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_PAD_TX=y
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_STATS=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_TRACE=n
|
||||||
|
# Compile WRS accelerated virtual port (AVP) guest PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_DRIVER=y
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_BUFFERS=n
|
||||||
|
# Compile architecture we compile for. TAP PMD
|
||||||
|
# It is enabled by default for Linux only.
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_TAP=n
|
||||||
|
# Compile null PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_NULL=n
|
||||||
|
# Compile fail-safe PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_FAILSAFE=y
|
||||||
|
# Do prefetch of packet data within PMD driver receive function
|
||||||
|
CONFIG_RTE_PMD_PACKET_PREFETCH=y
|
||||||
|
# Compile generic crypto device library
|
||||||
|
CONFIG_RTE_LIBRTE_CRYPTODEV=n
|
||||||
|
CONFIG_RTE_LIBRTE_CRYPTODEV_DEBUG=n
|
||||||
|
CONFIG_RTE_CRYPTO_MAX_DEVS=64
|
||||||
|
CONFIG_RTE_CRYPTODEV_NAME_LEN=64
|
||||||
|
# Compile PMD for ARMv8 Crypto device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO_DEBUG=n
|
||||||
|
# Compile NXP DPAA2 crypto sec driver for CAAM HW
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_RX=n
|
||||||
|
# NXP DPAA caam - crypto driver
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_SEC_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_SEC_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_SEC_DEBUG_RX=n
|
||||||
|
# Compile PMD for QuickAssist based devices
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_DRIVER=n
|
||||||
|
# Number of sessions to create in architecture we compile for. session memory pool
|
||||||
|
# on a single QuickAssist device.
|
||||||
|
CONFIG_RTE_QAT_PMD_MAX_NB_SESSIONS=2048
|
||||||
|
# Compile PMD for AESNI backed device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_MB_DEBUG=n
|
||||||
|
# Compile PMD for Software backed device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OPENSSL=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OPENSSL_DEBUG=n
|
||||||
|
# Compile PMD for AESNI GCM device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_GCM_DEBUG=n
|
||||||
|
# Compile PMD for SNOW 3G device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SNOW3G=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SNOW3G_DEBUG=n
|
||||||
|
# Compile PMD for KASUMI device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_KASUMI=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_KASUMI_DEBUG=n
|
||||||
|
# Compile PMD for ZUC device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ZUC=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ZUC_DEBUG=n
|
||||||
|
# Compile PMD for Crypto Scheduler device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER_DEBUG=n
|
||||||
|
# Compile PMD for NULL Crypto device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO=n
|
||||||
|
# Compile PMD for Marvell Crypto device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO_DEBUG=n
|
||||||
|
# Compile generic security library
|
||||||
|
CONFIG_RTE_LIBRTE_SECURITY=n
|
||||||
|
# Compile generic event device library
|
||||||
|
CONFIG_RTE_LIBRTE_EVENTDEV=y
|
||||||
|
CONFIG_RTE_LIBRTE_EVENTDEV_DEBUG=n
|
||||||
|
CONFIG_RTE_EVENT_MAX_DEVS=16
|
||||||
|
CONFIG_RTE_EVENT_MAX_QUEUES_PER_DEV=64
|
||||||
|
# Compile PMD for skeleton event device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV_DEBUG=n
|
||||||
|
# Compile PMD for software event device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV_DEBUG=n
|
||||||
|
# Compile PMD for octeontx sso event device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF_DEBUG=n
|
||||||
|
# Compile librte_ring
|
||||||
|
CONFIG_RTE_LIBRTE_RING=y
|
||||||
|
# Compile librte_mempool
|
||||||
|
CONFIG_RTE_LIBRTE_MEMPOOL=y
|
||||||
|
CONFIG_RTE_MEMPOOL_CACHE_MAX_SIZE=512
|
||||||
|
CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=n
|
||||||
|
# Compile Mempool drivers
|
||||||
|
CONFIG_RTE_DRIVER_MEMPOOL_RING=y
|
||||||
|
CONFIG_RTE_DRIVER_MEMPOOL_STACK=y
|
||||||
|
# Compile PMD for octeontx fpa mempool device
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL=y
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL_DEBUG=n
|
||||||
|
# Compile librte_mbuf
|
||||||
|
CONFIG_RTE_LIBRTE_MBUF=y
|
||||||
|
CONFIG_RTE_LIBRTE_MBUF_DEBUG=n
|
||||||
|
CONFIG_RTE_MBUF_DEFAULT_MEMPOOL_OPS="ring_mp_mc"
|
||||||
|
CONFIG_RTE_MBUF_REFCNT_ATOMIC=y
|
||||||
|
CONFIG_RTE_PKTMBUF_HEADROOM=128
|
||||||
|
# Compile librte_timer
|
||||||
|
CONFIG_RTE_LIBRTE_TIMER=n
|
||||||
|
CONFIG_RTE_LIBRTE_TIMER_DEBUG=n
|
||||||
|
# Compile librte_cfgfile
|
||||||
|
CONFIG_RTE_LIBRTE_CFGFILE=n
|
||||||
|
# Compile librte_cmdline
|
||||||
|
CONFIG_RTE_LIBRTE_CMDLINE=y
|
||||||
|
CONFIG_RTE_LIBRTE_CMDLINE_DEBUG=n
|
||||||
|
# Compile librte_hash
|
||||||
|
CONFIG_RTE_LIBRTE_HASH=y
|
||||||
|
CONFIG_RTE_LIBRTE_HASH_DEBUG=n
|
||||||
|
# Compile librte_efd
|
||||||
|
CONFIG_RTE_LIBRTE_EFD=y
|
||||||
|
# Compile librte_member
|
||||||
|
CONFIG_RTE_LIBRTE_MEMBER=y
|
||||||
|
# Compile librte_jobstats
|
||||||
|
CONFIG_RTE_LIBRTE_JOBSTATS=n
|
||||||
|
# Compile architecture we compile for. device metrics library
|
||||||
|
CONFIG_RTE_LIBRTE_METRICS=y
|
||||||
|
# Compile architecture we compile for. bitrate statistics library
|
||||||
|
CONFIG_RTE_LIBRTE_BITRATE=y
|
||||||
|
# Compile architecture we compile for. latency statistics library
|
||||||
|
CONFIG_RTE_LIBRTE_LATENCY_STATS=y
|
||||||
|
# Compile librte_lpm
|
||||||
|
CONFIG_RTE_LIBRTE_LPM=n
|
||||||
|
CONFIG_RTE_LIBRTE_LPM_DEBUG=n
|
||||||
|
# Compile librte_acl
|
||||||
|
CONFIG_RTE_LIBRTE_ACL=n
|
||||||
|
CONFIG_RTE_LIBRTE_ACL_DEBUG=n
|
||||||
|
# Compile librte_power
|
||||||
|
CONFIG_RTE_LIBRTE_POWER=n
|
||||||
|
CONFIG_RTE_LIBRTE_POWER_DEBUG=n
|
||||||
|
CONFIG_RTE_MAX_LCORE_FREQS=64
|
||||||
|
# Compile librte_net
|
||||||
|
CONFIG_RTE_LIBRTE_NET=y
|
||||||
|
# Compile librte_ip_frag
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG=y
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG_MAX_FRAG=4
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG_TBL_STAT=n
|
||||||
|
# Compile GRO library
|
||||||
|
CONFIG_RTE_LIBRTE_GRO=y
|
||||||
|
# Compile GSO library
|
||||||
|
CONFIG_RTE_LIBRTE_GSO=y
|
||||||
|
# Compile librte_meter
|
||||||
|
CONFIG_RTE_LIBRTE_METER=y
|
||||||
|
# Compile librte_classify
|
||||||
|
CONFIG_RTE_LIBRTE_FLOW_CLASSIFY=n
|
||||||
|
# Compile librte_sched
|
||||||
|
CONFIG_RTE_LIBRTE_SCHED=y
|
||||||
|
CONFIG_RTE_SCHED_DEBUG=n
|
||||||
|
CONFIG_RTE_SCHED_RED=n
|
||||||
|
CONFIG_RTE_SCHED_COLLECT_STATS=n
|
||||||
|
CONFIG_RTE_SCHED_SUBPORT_TC_OV=n
|
||||||
|
CONFIG_RTE_SCHED_PORT_N_GRINDERS=8
|
||||||
|
CONFIG_RTE_SCHED_VECTOR=n
|
||||||
|
# Compile architecture we compile for. distributor library
|
||||||
|
CONFIG_RTE_LIBRTE_DISTRIBUTOR=n
|
||||||
|
# Compile architecture we compile for. reorder library
|
||||||
|
CONFIG_RTE_LIBRTE_REORDER=n
|
||||||
|
# Compile librte_port
|
||||||
|
CONFIG_RTE_LIBRTE_PORT=n
|
||||||
|
CONFIG_RTE_PORT_STATS_COLLECT=n
|
||||||
|
CONFIG_RTE_PORT_PCAP=n
|
||||||
|
# Compile librte_table
|
||||||
|
CONFIG_RTE_LIBRTE_TABLE=n
|
||||||
|
CONFIG_RTE_TABLE_STATS_COLLECT=n
|
||||||
|
# Compile librte_pipeline
|
||||||
|
CONFIG_RTE_LIBRTE_PIPELINE=n
|
||||||
|
CONFIG_RTE_PIPELINE_STATS_COLLECT=n
|
||||||
|
# Compile librte_kni
|
||||||
|
CONFIG_RTE_LIBRTE_KNI=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_KNI=n
|
||||||
|
CONFIG_RTE_KNI_KMOD=n
|
||||||
|
CONFIG_RTE_KNI_KMOD_ETHTOOL=n
|
||||||
|
CONFIG_RTE_KNI_PREEMPT_DEFAULT=y
|
||||||
|
# Compile architecture we compile for. pdump library
|
||||||
|
CONFIG_RTE_LIBRTE_PDUMP=y
|
||||||
|
# Compile vhost user library
|
||||||
|
CONFIG_RTE_LIBRTE_VHOST=y
|
||||||
|
CONFIG_RTE_LIBRTE_VHOST_NUMA=y
|
||||||
|
CONFIG_RTE_LIBRTE_VHOST_DEBUG=n
|
||||||
|
# Compile vhost PMD
|
||||||
|
# To compile, CONFIG_RTE_LIBRTE_VHOST should be enabled.
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_VHOST=n
|
||||||
|
# Compile architecture we compile for. test application
|
||||||
|
CONFIG_RTE_APP_TEST=y
|
||||||
|
CONFIG_RTE_APP_TEST_RESOURCE_TAR=n
|
||||||
|
# Compile architecture we compile for. PMD test application
|
||||||
|
CONFIG_RTE_TEST_PMD=n
|
||||||
|
CONFIG_RTE_TEST_PMD_RECORD_CORE_CYCLES=n
|
||||||
|
CONFIG_RTE_TEST_PMD_RECORD_BURST_STATS=n
|
||||||
|
# Compile architecture we compile for. crypto performance application
|
||||||
|
CONFIG_RTE_APP_CRYPTO_PERF=y
|
||||||
|
# Compile architecture we compile for. eventdev application
|
||||||
|
CONFIG_RTE_APP_EVENTDEV=y
|
||||||
|
CONFIG_RTE_EXEC_ENV_LINUXAPP=y
|
||||||
|
CONFIG_RTE_ARCH_PPC_64=y
|
||||||
|
CONFIG_RTE_ARCH_64=y
|
||||||
|
CONFIG_RTE_TOOLCHAIN_GCC=y
|
||||||
|
# Note: Power doesn't have this support
|
||||||
|
# Note: Initially, all of architecture we compile for. PMD drivers compilation are turned off on Power
|
||||||
|
# Will turn on them only after architecture we compile for. successful testing on Power
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_XENVIRT=n
|
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright (C) 2017, Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# set_config.sh will copy a configuration from $1 to $2, in the process
|
||||||
|
# checking that the sha header for $1 matches the header in $2
|
||||||
|
|
||||||
|
source configlib.sh
|
||||||
|
|
||||||
|
if (( $# < 2 )); then
|
||||||
|
echo "$0: source dest [comment-marker]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$1" ]; then
|
||||||
|
echo "Source file $1 must exist."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
src_file=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
if [ ! -f "$1" ]; then
|
||||||
|
echo "Dest file $1 must exist."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
dst_file=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
comment_sep=${1:-#}
|
||||||
|
|
||||||
|
export LANG=en_US.utf8
|
||||||
|
|
||||||
|
DEST_FILE_SHA=""
|
||||||
|
SRC_FILE_SHA=""
|
||||||
|
|
||||||
|
calc_sha DEST_FILE_SHA "$dst_file" "$comment_sep" || echo "Failed to calc sha"
|
||||||
|
retr_sha SRC_FILE_SHA "$src_file" "$comment_sep" || echo "Failed to retrieve sha"
|
||||||
|
|
||||||
|
if [ "$DEST_FILE_SHA" != "$SRC_FILE_SHA" ]; then
|
||||||
|
echo "ERROR: The requisite starting sha from $dst_file does not match the"
|
||||||
|
echo " specified sha in $src_file."
|
||||||
|
echo "[ $DEST_FILE_SHA ] vs [ $SRC_FILE_SHA ]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv "$dst_file" "$dst_file".OLD
|
||||||
|
cp "$src_file" "$dst_file"
|
||||||
|
echo "copied 1 config file."
|
||||||
|
exit 0
|
@ -1,2 +1,2 @@
|
|||||||
SHA512 (openvswitch-2.8.1.tar.gz) = b9e90b49bb91aef80942b146e7e324b74f8961342dcc7836f2551ea976a69d66506a3a739bcb01a926b3b3874c7e4312de02965738a1536a342ab95f935d92f7
|
SHA512 (openvswitch-2.9.0.tar.gz) = c9feb45c650b73093ad1f25f2fc6dbd135dfab691b3322bf87c6efe34bcbfc0a099d1db85c14fe08eb05f4154eae56dd81de54c0a6be97b42a4aa4b6ae53e37b
|
||||||
SHA512 (dpdk-17.05.2.tar.gz) = ff17d092722b28333f04928b42dfcd7d18f8d3a9d17b86ef23cfede9077a48e835295755769802fd837a6ba330aa710aea3a9a6b9ba0d440642f0fc045f8598a
|
SHA512 (dpdk-17.11.tar.gz) = 5d18b86ae73d3098ccc28aefff180ddcc3ebf023678bc009cf93533f36bd5fa93713721cbf1eec81a6f59901ec4ff0d26b2841888a7969cc0c15c3d129c5e063
|
||||||
|
@ -0,0 +1,533 @@
|
|||||||
|
# -*- cfg-sha: 56176386deef83f9f1fd9d1c143a20be1294c8ed5e720aaef37e4b007ccbbde3
|
||||||
|
# BSD LICENSE
|
||||||
|
# Copyright(c) 2010-2014 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.
|
||||||
|
# BSD LICENSE
|
||||||
|
# Copyright(c) 2010-2016 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.
|
||||||
|
# BSD LICENSE
|
||||||
|
# Copyright(c) 2010-2017 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.
|
||||||
|
# RTE_EXEC_ENV values are the directories in mk/exec-env/
|
||||||
|
CONFIG_RTE_EXEC_ENV="linuxapp"
|
||||||
|
# RTE_ARCH values are architecture we compile for. directories in mk/arch/
|
||||||
|
CONFIG_RTE_ARCH="x86_64"
|
||||||
|
# machine can define specific variables or action for a specific board
|
||||||
|
# RTE_MACHINE values are architecture we compile for. directories in mk/machine/
|
||||||
|
CONFIG_RTE_MACHINE="default"
|
||||||
|
# The compiler we use.
|
||||||
|
# RTE_TOOLCHAIN values are architecture we compile for. directories in mk/toolchain/
|
||||||
|
CONFIG_RTE_TOOLCHAIN="gcc"
|
||||||
|
# Use intrinsics or assembly code for key routines
|
||||||
|
CONFIG_RTE_FORCE_INTRINSICS=n
|
||||||
|
# Machine forces strict alignment constraints.
|
||||||
|
CONFIG_RTE_ARCH_STRICT_ALIGN=n
|
||||||
|
# Compile to share library
|
||||||
|
CONFIG_RTE_BUILD_SHARED_LIB=n
|
||||||
|
# Use newest code breaking previous ABI
|
||||||
|
CONFIG_RTE_NEXT_ABI=n
|
||||||
|
# Major ABI to overwrite library specific LIBABIVER
|
||||||
|
CONFIG_RTE_MAJOR_ABI=
|
||||||
|
# Machine's cache line size
|
||||||
|
CONFIG_RTE_CACHE_LINE_SIZE=64
|
||||||
|
# Compile Environment Abstraction Layer
|
||||||
|
CONFIG_RTE_LIBRTE_EAL=y
|
||||||
|
CONFIG_RTE_MAX_LCORE=128
|
||||||
|
CONFIG_RTE_MAX_NUMA_NODES=8
|
||||||
|
CONFIG_RTE_MAX_MEMSEG=256
|
||||||
|
CONFIG_RTE_MAX_MEMZONE=2560
|
||||||
|
CONFIG_RTE_MAX_TAILQ=32
|
||||||
|
CONFIG_RTE_ENABLE_ASSERT=n
|
||||||
|
CONFIG_RTE_LOG_LEVEL=RTE_LOG_INFO
|
||||||
|
CONFIG_RTE_LOG_DP_LEVEL=RTE_LOG_INFO
|
||||||
|
CONFIG_RTE_LOG_HISTORY=256
|
||||||
|
CONFIG_RTE_BACKTRACE=y
|
||||||
|
CONFIG_RTE_LIBEAL_USE_HPET=n
|
||||||
|
CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n
|
||||||
|
CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n
|
||||||
|
CONFIG_RTE_EAL_IGB_UIO=n
|
||||||
|
CONFIG_RTE_EAL_VFIO=y
|
||||||
|
CONFIG_RTE_MALLOC_DEBUG=n
|
||||||
|
CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=y
|
||||||
|
# Recognize/ignore architecture we compile for. AVX/AVX512 CPU flags for performance/power testing.
|
||||||
|
# AVX512 is marked as experimental for now, will enable it after enough
|
||||||
|
# field test and possible optimization.
|
||||||
|
CONFIG_RTE_ENABLE_AVX=y
|
||||||
|
CONFIG_RTE_ENABLE_AVX512=n
|
||||||
|
# Default driver path (or "" to disable)
|
||||||
|
CONFIG_RTE_EAL_PMD_PATH=""
|
||||||
|
# Compile Environment Abstraction Layer to support Vmware TSC map
|
||||||
|
CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=y
|
||||||
|
# Compile architecture we compile for. PCI library
|
||||||
|
CONFIG_RTE_LIBRTE_PCI=y
|
||||||
|
# Compile architecture we compile for. argument parser library
|
||||||
|
CONFIG_RTE_LIBRTE_KVARGS=y
|
||||||
|
# Compile generic ethernet library
|
||||||
|
CONFIG_RTE_LIBRTE_ETHER=y
|
||||||
|
CONFIG_RTE_LIBRTE_ETHDEV_DEBUG=n
|
||||||
|
CONFIG_RTE_MAX_ETHPORTS=32
|
||||||
|
CONFIG_RTE_MAX_QUEUES_PER_PORT=1024
|
||||||
|
CONFIG_RTE_LIBRTE_IEEE1588=n
|
||||||
|
CONFIG_RTE_ETHDEV_QUEUE_STAT_CNTRS=16
|
||||||
|
CONFIG_RTE_ETHDEV_RXTX_CALLBACKS=y
|
||||||
|
CONFIG_RTE_ETHDEV_PROFILE_ITT_WASTED_RX_ITERATIONS=n
|
||||||
|
# Turn off Tx preparation stage
|
||||||
|
# Warning: rte_eth_tx_prepare() can be safely disabled only if using a
|
||||||
|
# driver which do not implement any Tx preparation.
|
||||||
|
CONFIG_RTE_ETHDEV_TX_PREPARE_NOOP=n
|
||||||
|
# Compile PCI bus driver
|
||||||
|
CONFIG_RTE_LIBRTE_PCI_BUS=y
|
||||||
|
# Compile architecture we compile for. vdev bus
|
||||||
|
CONFIG_RTE_LIBRTE_VDEV_BUS=y
|
||||||
|
# Compile burst-oriented Amazon ENA PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENA_COM_DEBUG=n
|
||||||
|
# Compile burst-oriented IGB & EM PMD drivers
|
||||||
|
CONFIG_RTE_LIBRTE_EM_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_IGB_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_E1000_PF_DISABLE_STRIP_CRC=n
|
||||||
|
# Compile burst-oriented IXGBE PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n
|
||||||
|
CONFIG_RTE_IXGBE_INC_VECTOR=y
|
||||||
|
CONFIG_RTE_LIBRTE_IXGBE_BYPASS=n
|
||||||
|
# Compile burst-oriented I40E PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC=y
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_INC_VECTOR=y
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF=64
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VF=4
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=4
|
||||||
|
# interval up to 8160 us, aligned to 2 (or default value)
|
||||||
|
CONFIG_RTE_LIBRTE_I40E_ITR_INTERVAL=-1
|
||||||
|
# Compile burst-oriented FM10K PMD
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_RX_OLFLAGS_ENABLE=y
|
||||||
|
CONFIG_RTE_LIBRTE_FM10K_INC_VECTOR=y
|
||||||
|
# Compile burst-oriented Mellanox ConnectX-3 (MLX4) PMD
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_DEBUG_BROKEN_VERBS=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE=8
|
||||||
|
# Compile burst-oriented Mellanox ConnectX-4 & ConnectX-5 (MLX5) PMD
|
||||||
|
CONFIG_RTE_LIBRTE_MLX5_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX5_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_MLX5_TX_MP_CACHE=8
|
||||||
|
# Compile burst-oriented Broadcom PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=n
|
||||||
|
CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC=n
|
||||||
|
# Compile burst-oriented Chelsio Terminator (CXGBE) PMD
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_REG=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_MBOX=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_CXGBE_TPUT=y
|
||||||
|
# Compile burst-oriented Cisco ENIC PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_ENIC_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_ENIC_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_ENIC_DEBUG_FLOW=n
|
||||||
|
# Compile burst-oriented Netronome NFP PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_NFP_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_NFP_DEBUG=n
|
||||||
|
# Compile Marvell PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_MRVL_PMD=n
|
||||||
|
# Compile burst-oriented Broadcom BNXT PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_BNXT_PMD=n
|
||||||
|
# Compile burst-oriented Solarflare libefx-based PMD
|
||||||
|
CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_SFC_EFX_DEBUG=n
|
||||||
|
# Compile SOFTNIC PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SOFTNIC=y
|
||||||
|
# Compile software PMD backed by SZEDATA2 device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SZEDATA2=n
|
||||||
|
# Defines firmware type address space.
|
||||||
|
# See documentation for supported values.
|
||||||
|
# Other values raise compile time error.
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SZEDATA2_AS=0
|
||||||
|
# Compile burst-oriented Cavium Thunderx NICVF PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_MBOX=n
|
||||||
|
# Compile burst-oriented Cavium LiquidIO PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_MBOX=n
|
||||||
|
CONFIG_RTE_LIBRTE_LIO_DEBUG_REGS=n
|
||||||
|
# NXP DPAA Bus
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_BUS=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_PMD=n
|
||||||
|
# Compile burst-oriented Cavium OCTEONTX network PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_DEBUG_MBOX=n
|
||||||
|
# Compile NXP DPAA2 FSL-MC Bus
|
||||||
|
CONFIG_RTE_LIBRTE_FSLMC_BUS=n
|
||||||
|
# Compile Support Libraries for NXP DPAA2
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_USE_PHYS_IOVA=y
|
||||||
|
# Compile burst-oriented NXP DPAA2 PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_DEBUG_TX_FREE=n
|
||||||
|
# Compile burst-oriented VIRTIO PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DUMP=n
|
||||||
|
# Compile virtio device emulation inside virtio PMD driver
|
||||||
|
CONFIG_RTE_VIRTIO_USER=n
|
||||||
|
# Compile burst-oriented VMXNET3 PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_TX_FREE=n
|
||||||
|
CONFIG_RTE_LIBRTE_VMXNET3_DEBUG_DRIVER=n
|
||||||
|
# Compile example software rings based PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_RING=y
|
||||||
|
CONFIG_RTE_PMD_RING_MAX_RX_RINGS=16
|
||||||
|
CONFIG_RTE_PMD_RING_MAX_TX_RINGS=16
|
||||||
|
# Compile software PMD backed by PCAP files
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_PCAP=n
|
||||||
|
# Compile link bonding PMD library
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_BOND=n
|
||||||
|
CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB=n
|
||||||
|
CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB_L1=n
|
||||||
|
# QLogic 10G/25G/40G/50G/100G PMD
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_INFO=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_VF_TX_SWITCH=y
|
||||||
|
#Provides abs path/name of architecture we compile for. firmware file.
|
||||||
|
#Empty string denotes driver will use default firmware
|
||||||
|
CONFIG_RTE_LIBRTE_QEDE_FW=""
|
||||||
|
# Compile software PMD backed by AF_PACKET sockets (Linux only)
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AF_PACKET=n
|
||||||
|
# Compile ARK PMD
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_PAD_TX=y
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_STATS=n
|
||||||
|
CONFIG_RTE_LIBRTE_ARK_DEBUG_TRACE=n
|
||||||
|
# Compile WRS accelerated virtual port (AVP) guest PMD driver
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_PMD=n
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_DRIVER=y
|
||||||
|
CONFIG_RTE_LIBRTE_AVP_DEBUG_BUFFERS=n
|
||||||
|
# Compile architecture we compile for. TAP PMD
|
||||||
|
# It is enabled by default for Linux only.
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_TAP=n
|
||||||
|
# Compile null PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_NULL=n
|
||||||
|
# Compile fail-safe PMD
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_FAILSAFE=y
|
||||||
|
# Do prefetch of packet data within PMD driver receive function
|
||||||
|
CONFIG_RTE_PMD_PACKET_PREFETCH=y
|
||||||
|
# Compile generic crypto device library
|
||||||
|
CONFIG_RTE_LIBRTE_CRYPTODEV=n
|
||||||
|
CONFIG_RTE_LIBRTE_CRYPTODEV_DEBUG=n
|
||||||
|
CONFIG_RTE_CRYPTO_MAX_DEVS=64
|
||||||
|
CONFIG_RTE_CRYPTODEV_NAME_LEN=64
|
||||||
|
# Compile PMD for ARMv8 Crypto device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO_DEBUG=n
|
||||||
|
# Compile NXP DPAA2 crypto sec driver for CAAM HW
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA2_SEC_DEBUG_RX=n
|
||||||
|
# NXP DPAA caam - crypto driver
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_SEC_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_SEC_DEBUG_DRIVER=n
|
||||||
|
CONFIG_RTE_LIBRTE_DPAA_SEC_DEBUG_RX=n
|
||||||
|
# Compile PMD for QuickAssist based devices
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_INIT=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_TX=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_RX=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_DRIVER=n
|
||||||
|
# Number of sessions to create in architecture we compile for. session memory pool
|
||||||
|
# on a single QuickAssist device.
|
||||||
|
CONFIG_RTE_QAT_PMD_MAX_NB_SESSIONS=2048
|
||||||
|
# Compile PMD for AESNI backed device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_MB_DEBUG=n
|
||||||
|
# Compile PMD for Software backed device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OPENSSL=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OPENSSL_DEBUG=n
|
||||||
|
# Compile PMD for AESNI GCM device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_AESNI_GCM_DEBUG=n
|
||||||
|
# Compile PMD for SNOW 3G device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SNOW3G=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SNOW3G_DEBUG=n
|
||||||
|
# Compile PMD for KASUMI device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_KASUMI=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_KASUMI_DEBUG=n
|
||||||
|
# Compile PMD for ZUC device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ZUC=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_ZUC_DEBUG=n
|
||||||
|
# Compile PMD for Crypto Scheduler device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER_DEBUG=n
|
||||||
|
# Compile PMD for NULL Crypto device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO=n
|
||||||
|
# Compile PMD for Marvell Crypto device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_MRVL_CRYPTO_DEBUG=n
|
||||||
|
# Compile generic security library
|
||||||
|
CONFIG_RTE_LIBRTE_SECURITY=n
|
||||||
|
# Compile generic event device library
|
||||||
|
CONFIG_RTE_LIBRTE_EVENTDEV=y
|
||||||
|
CONFIG_RTE_LIBRTE_EVENTDEV_DEBUG=n
|
||||||
|
CONFIG_RTE_EVENT_MAX_DEVS=16
|
||||||
|
CONFIG_RTE_EVENT_MAX_QUEUES_PER_DEV=64
|
||||||
|
# Compile PMD for skeleton event device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV_DEBUG=n
|
||||||
|
# Compile PMD for software event device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV_DEBUG=n
|
||||||
|
# Compile PMD for octeontx sso event device
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF_DEBUG=n
|
||||||
|
# Compile librte_ring
|
||||||
|
CONFIG_RTE_LIBRTE_RING=y
|
||||||
|
# Compile librte_mempool
|
||||||
|
CONFIG_RTE_LIBRTE_MEMPOOL=y
|
||||||
|
CONFIG_RTE_MEMPOOL_CACHE_MAX_SIZE=512
|
||||||
|
CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=n
|
||||||
|
# Compile Mempool drivers
|
||||||
|
CONFIG_RTE_DRIVER_MEMPOOL_RING=y
|
||||||
|
CONFIG_RTE_DRIVER_MEMPOOL_STACK=y
|
||||||
|
# Compile PMD for octeontx fpa mempool device
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL=y
|
||||||
|
CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL_DEBUG=n
|
||||||
|
# Compile librte_mbuf
|
||||||
|
CONFIG_RTE_LIBRTE_MBUF=y
|
||||||
|
CONFIG_RTE_LIBRTE_MBUF_DEBUG=n
|
||||||
|
CONFIG_RTE_MBUF_DEFAULT_MEMPOOL_OPS="ring_mp_mc"
|
||||||
|
CONFIG_RTE_MBUF_REFCNT_ATOMIC=y
|
||||||
|
CONFIG_RTE_PKTMBUF_HEADROOM=128
|
||||||
|
# Compile librte_timer
|
||||||
|
CONFIG_RTE_LIBRTE_TIMER=n
|
||||||
|
CONFIG_RTE_LIBRTE_TIMER_DEBUG=n
|
||||||
|
# Compile librte_cfgfile
|
||||||
|
CONFIG_RTE_LIBRTE_CFGFILE=n
|
||||||
|
# Compile librte_cmdline
|
||||||
|
CONFIG_RTE_LIBRTE_CMDLINE=y
|
||||||
|
CONFIG_RTE_LIBRTE_CMDLINE_DEBUG=n
|
||||||
|
# Compile librte_hash
|
||||||
|
CONFIG_RTE_LIBRTE_HASH=y
|
||||||
|
CONFIG_RTE_LIBRTE_HASH_DEBUG=n
|
||||||
|
# Compile librte_efd
|
||||||
|
CONFIG_RTE_LIBRTE_EFD=y
|
||||||
|
# Compile librte_member
|
||||||
|
CONFIG_RTE_LIBRTE_MEMBER=y
|
||||||
|
# Compile librte_jobstats
|
||||||
|
CONFIG_RTE_LIBRTE_JOBSTATS=n
|
||||||
|
# Compile architecture we compile for. device metrics library
|
||||||
|
CONFIG_RTE_LIBRTE_METRICS=y
|
||||||
|
# Compile architecture we compile for. bitrate statistics library
|
||||||
|
CONFIG_RTE_LIBRTE_BITRATE=y
|
||||||
|
# Compile architecture we compile for. latency statistics library
|
||||||
|
CONFIG_RTE_LIBRTE_LATENCY_STATS=y
|
||||||
|
# Compile librte_lpm
|
||||||
|
CONFIG_RTE_LIBRTE_LPM=n
|
||||||
|
CONFIG_RTE_LIBRTE_LPM_DEBUG=n
|
||||||
|
# Compile librte_acl
|
||||||
|
CONFIG_RTE_LIBRTE_ACL=n
|
||||||
|
CONFIG_RTE_LIBRTE_ACL_DEBUG=n
|
||||||
|
# Compile librte_power
|
||||||
|
CONFIG_RTE_LIBRTE_POWER=n
|
||||||
|
CONFIG_RTE_LIBRTE_POWER_DEBUG=n
|
||||||
|
CONFIG_RTE_MAX_LCORE_FREQS=64
|
||||||
|
# Compile librte_net
|
||||||
|
CONFIG_RTE_LIBRTE_NET=y
|
||||||
|
# Compile librte_ip_frag
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG=y
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG_DEBUG=n
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG_MAX_FRAG=4
|
||||||
|
CONFIG_RTE_LIBRTE_IP_FRAG_TBL_STAT=n
|
||||||
|
# Compile GRO library
|
||||||
|
CONFIG_RTE_LIBRTE_GRO=y
|
||||||
|
# Compile GSO library
|
||||||
|
CONFIG_RTE_LIBRTE_GSO=y
|
||||||
|
# Compile librte_meter
|
||||||
|
CONFIG_RTE_LIBRTE_METER=y
|
||||||
|
# Compile librte_classify
|
||||||
|
CONFIG_RTE_LIBRTE_FLOW_CLASSIFY=n
|
||||||
|
# Compile librte_sched
|
||||||
|
CONFIG_RTE_LIBRTE_SCHED=y
|
||||||
|
CONFIG_RTE_SCHED_DEBUG=n
|
||||||
|
CONFIG_RTE_SCHED_RED=n
|
||||||
|
CONFIG_RTE_SCHED_COLLECT_STATS=n
|
||||||
|
CONFIG_RTE_SCHED_SUBPORT_TC_OV=n
|
||||||
|
CONFIG_RTE_SCHED_PORT_N_GRINDERS=8
|
||||||
|
CONFIG_RTE_SCHED_VECTOR=n
|
||||||
|
# Compile architecture we compile for. distributor library
|
||||||
|
CONFIG_RTE_LIBRTE_DISTRIBUTOR=n
|
||||||
|
# Compile architecture we compile for. reorder library
|
||||||
|
CONFIG_RTE_LIBRTE_REORDER=n
|
||||||
|
# Compile librte_port
|
||||||
|
CONFIG_RTE_LIBRTE_PORT=n
|
||||||
|
CONFIG_RTE_PORT_STATS_COLLECT=n
|
||||||
|
CONFIG_RTE_PORT_PCAP=n
|
||||||
|
# Compile librte_table
|
||||||
|
CONFIG_RTE_LIBRTE_TABLE=n
|
||||||
|
CONFIG_RTE_TABLE_STATS_COLLECT=n
|
||||||
|
# Compile librte_pipeline
|
||||||
|
CONFIG_RTE_LIBRTE_PIPELINE=n
|
||||||
|
CONFIG_RTE_PIPELINE_STATS_COLLECT=n
|
||||||
|
# Compile librte_kni
|
||||||
|
CONFIG_RTE_LIBRTE_KNI=n
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_KNI=n
|
||||||
|
CONFIG_RTE_KNI_KMOD=n
|
||||||
|
CONFIG_RTE_KNI_KMOD_ETHTOOL=n
|
||||||
|
CONFIG_RTE_KNI_PREEMPT_DEFAULT=y
|
||||||
|
# Compile architecture we compile for. pdump library
|
||||||
|
CONFIG_RTE_LIBRTE_PDUMP=y
|
||||||
|
# Compile vhost user library
|
||||||
|
CONFIG_RTE_LIBRTE_VHOST=y
|
||||||
|
CONFIG_RTE_LIBRTE_VHOST_NUMA=y
|
||||||
|
CONFIG_RTE_LIBRTE_VHOST_DEBUG=n
|
||||||
|
# Compile vhost PMD
|
||||||
|
# To compile, CONFIG_RTE_LIBRTE_VHOST should be enabled.
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_VHOST=n
|
||||||
|
# Compile architecture we compile for. test application
|
||||||
|
CONFIG_RTE_APP_TEST=y
|
||||||
|
CONFIG_RTE_APP_TEST_RESOURCE_TAR=n
|
||||||
|
# Compile architecture we compile for. PMD test application
|
||||||
|
CONFIG_RTE_TEST_PMD=n
|
||||||
|
CONFIG_RTE_TEST_PMD_RECORD_CORE_CYCLES=n
|
||||||
|
CONFIG_RTE_TEST_PMD_RECORD_BURST_STATS=n
|
||||||
|
# Compile architecture we compile for. crypto performance application
|
||||||
|
CONFIG_RTE_APP_CRYPTO_PERF=y
|
||||||
|
# Compile architecture we compile for. eventdev application
|
||||||
|
CONFIG_RTE_APP_EVENTDEV=y
|
||||||
|
CONFIG_RTE_EXEC_ENV_LINUXAPP=y
|
||||||
|
CONFIG_RTE_ARCH_X86_64=y
|
||||||
|
CONFIG_RTE_ARCH_X86=y
|
||||||
|
CONFIG_RTE_ARCH_64=y
|
||||||
|
CONFIG_RTE_TOOLCHAIN_GCC=y
|
||||||
|
CONFIG_RTE_LIBRTE_PMD_XENVIRT=n
|
Loading…
Reference in new issue