Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I7b51f88292e057c6443b12224486f2d0c9f8ae23
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Due to external library dependency support for Mellanox
devices is disabled. To enable it uncoment following line:
vpp_uses_dpdk_mlx5_pmd = yes
in build-data/platforms/vpp.mk and install OFED libraries.
Change-Id: I131d52b5d449a958349f31f9cc04311948f78b71
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
For drivers that do not provide dpdk rte_mbuf PTYPE information,
check ethernet header Etype to acccelerate IP4 and IP6 forwarding
path. Update packet trace for dpdk-input node to provide more info
from DPDK rte_mbuf offload flags and packet types.
Change-Id: I207158797a155305314d002726c0af97b8cb0eb3
Signed-off-by: John Lo <loj@cisco.com>
|
|
Change-Id: Iee90ed725e824a3beed2660d21d74dae48c76eb0
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Beside performance optimization this change
also introduces rte_mbuf validation in dpdk tx code.
If packet is arrving from non-DPDK source like
self-originated packets or non-dpdk devices (tuntap,
af_packet, netmap, pg) it is not anymore exepcted
that it contains valid rte_mbuf metadata unless it is
explictely stated by setting VNET_BUFFER_RTE_MBUF_VALID
flag.
dpdk-input node sets VNET_BUFFER_RTE_MBUF_VALID on all
packets and that reduces cost of validation in tx node.
Change-Id: I4ad40f398f7b5cf90656a2069a27c0f6fc13efba
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I761af883403b6740bd24ce196ae0bfe6bc77b409
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
interface mtu" command,
vlan-strip-offload option will be changed to off.
Change-Id: I1f39628fc8cde4e46ed5b2e3208253a07327de81
Signed-off-by: jerryian <gu.jian1@zte.com.cn>
|
|
Change-Id: I8234054cef4cadada6745a8c00c8df2c20daac33
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I761af883403b6740bd24ce196ae0bfe6bc77b408
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I0379844824b4c2eb42588d0fb8e1a7eb441e923f
Signed-off-by: Dave Barach <dave@barachs.net>
|
|
This patch allows for empty dpdk device configuration
such as: dpdk { dev 0000:0a:00.0 { } }
Instead of exiting.
Change-Id: If9488eecc7fb1e0b5c6626f9c074649b39b727d3
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
|
|
Change-Id: Icc4e74ae1627c5b97746ed64955a3dc089e3998f
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Works with:
http://dpdk.org/browse/dpdk/snapshot/dpdk-16.11-rc1.tar.xz
placed into dpdk/ or ~/Downloads
Change-Id: I17f6a721529dbefc796f555e2525d157b9bf8740
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
This also removes old DPDK vhost-user code which doesn't help
much with DPDK 16.07 or newer.
Change-Id: Ic996df1eaccc33acd3fa6cabeaf7381a672c2a90
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I2d1a7063f3776a9070e75a627beb5d0e45a67874
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
This code is outdated and without real use case
Change-Id: I30628cc4ca293e5249aea3891173507cbfad8b61
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Proper cpu pinning in vpp_lite platform, like in normal vpp image.
Extended “show threads” command to show propper information.
Changed handling of coreID and socketID for threads in "show threads"
CLI, pthread_getaffinity is used instead of info stored in DPDK.
Change-Id: Ic8299ec5e284472bb10a37a95fadeed57b6edae8
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
|
|
Change-Id: Ibbcce6f54bc76b8922b1c649278643c6294d13f9
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
This commit extends the vpp framework with new thread type "hqos-threads" that
runs the Hierarchical Quality of Service (HQoS) scheduler associted with output
interface. HQoS Scheduler prioritize the packets from different users and
ensures sufficient bandwidth to pass the more important traffic.
At high level, HQoS scheduler is a buffer that can temporarily store a
large number of packets. In otherwords, it is a collection of large number
of queues organized into hierarchy of 5 levels; the port (i.e. the physical
interface) is at the root of the hierarchy followed by the subport (a set
of users), the pipes (individual users), the traffic classes (each with a
strict priority) and at the leaves, the queues.
In each HQoS scheduler, three operations are performed; classification
(setting HQoS port, subport, pipe, traffic class and queue within traffic
class from packet fields), enqueue (selecting HQoS queue for the packet,
and to drop the packet if the queue is full) and dequeue (schedule the
packet based on its length and available credits, and handover the scheduled
packet to the output interface).
In vpp, the number of hqos threads will be equal to cpu cores specified in
corelist-hqos-threads parameter cpu section of the vpp configuration file.
One hqos thread can run HQoS for multiple output interfaces. A particular HQoS
instance is initialised with default parameters required to configure hqos port,
subport, pipe and queues. Some of them can be re-configured in run-time
through CLI commands as well binary APIs.
Following illustrates the sample startup configuration file with 4x worker
threads feeding 2x hqos threads that handle each HQoS for 1x output interface.
For more details on HQoS configuration please refer to DPDK Programmer's Guide.
dpdk {
socket-mem 16384,16384
dev 0000:02:00.0 {
num-rx-queues 2
hqos
}
dev 0000:06:00.0 {
num-rx-queues 2
hqos
}
num-mbufs 1000000
}
cpu {
main-core 0
corelist-workers 1, 2, 3, 4
corelist-hqos-threads 5, 6
}
Change-Id: I635c3395a7c4ddf0a239ef77b0b0a31a6dfc4767
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
|
|
Per-numa free hugepages number was not read correctly due
to wrong sysfs path.
Change-Id: I889111027d7f93c42e2e4673d8d4e8f75ae065b6
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
At many places code was using constant ring size od 4096
which was defined in macro DPDK_TX_RING_SIZE.
As we support differnet ring size and default value s now
1024, we need to remove DPDK_TX_RING_SIZE and use
value stored in device structure.
For that reason dpdk_device_t.nb_tx_desc is moved to
first cacheline.
Change-Id: I2c2ac11f0f5e8ae779d34f9a9104eaf2921ec34c
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
This will allow us to handle some more complex situations
like in case when hqos needs to be enabled only for some PMDs.
Change-Id: I5421a8d4cf29b8394b9e956cc4e39737dd07dbbb
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I84e9d7c3ccd32814c3eebf1cef0a4887c75812a8
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Configure the MTU/L3 packet size of the bonded interface
as the lowest value of the slave intefaces
Change-Id: I34fb4c2156e8ad3d9bf45efe332405d53f72867c
Signed-off-by: Steve Shin <jonshin@cisco.com>
|
|
Change-Id: I06ae392c7c8c3b4be7fd46560add442f42927c22
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I4f46f2965891b0bd0d69a2c426068b0fb1ba881e
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: Ie3ee4ccc126c5db9020779cbd06b0d1da99c8411
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: Ie2ebb29451200158504bda8c616d57821edbd749
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: Iea6d338e60a95f7f30c10c2e751d4827e816f700
Signed-off-by: Dave Barach <dave@barachs.net>
|
|
This frame queue is not part of the dpdk code anymore,
so it can be removed. It will save some space in the
1st cacelineof dpdk device data struct.
Change-Id: If839861961548750601400a511a609be7ae84b30
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
DPDK vhost-user support is disabled due to significan changes
in the DPDK vhost-user code which are not compatible with current
VPP code.
Change-Id: I3f0d28cb75f6370282ec7e33d57cbfb77e1a3ce1
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: Ibe927027c2aea6f2d85a9c50bf462c552b63861c
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I68d708f5dd76dc7a46c3c8634aa8f18c515177e5
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
When bonded interface is set to admin down, all slave links should
also be stopped or they will continue to receive packets and then
be dropped because bonded interface is down.
Also remove setting bonded interface L3 packet size limit to that of
slave on startup - it is not needed and can cause undesirable side
effect if its value become incompatible with bonded interface MTU.
Change-Id: Ibdd8acac0ca41a867131441eb26518592bb7d98a
Signed-off-by: John Lo <loj@cisco.com>
|
|
Change-Id: I7006a3068c22e18e62c84abb8cc6124695b9ca44
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
The init of VIC/ENIC ports enable VLAN stripping of received packets by
default, which is different to all other devices. The VLAN stripping of
ENIC ports can be disabled by adding the per device DPDK config as
"vlan-strip-offload off" such as:
dpdk {... dev 0000:0c:00.0 {vlan-strip-offload off} ...}
The per device config "vlan-strip-offload on" can be used for enabling VLAN
stripping for other devices which support this function but is disabled
by default.
Change-Id: I9c81904a87c26868a07900b03677aeeb57f72372
Signed-off-by: John Lo <loj@cisco.com>
|
|
Change-Id: I3c3427c61e32d4727360aa802950bb9ab44afd84
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I28616f1a89f2da95484438ec1a1db64845f15ef6
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Size of interface descriptor rings have direct impact
on Last Level Cache utilization, and can significantly affect performance.
So generally having smaller ring size is good idea as long as
there is enough buffer in the ring to accomodate line rate.
Here we are reducing rings sizes to 1024 which is still bigger
than lab verified 512 buffers per ring.
Indirectly, this also affects memory footprint, as we can have
smaller buffer allocation, which is now 16384 (previously it was 32768)
This patch also fixes issue with i40e vector PMD which was leaking
buffers when previous default ring sizes were set.
Change-Id: I58fb40586304b2f0cb5de9a444055da3cd3acb53
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
- NXP proposed a poll mode driver "rte_dpaa2_dpni" in DPDK upstream.
- When using external DPDK with the given dpaa2 driver, VPP needs modification
to initialize the PMD and to understand the DPAA2 N/W interfaces.
Change-Id: I00eb127fa88c71fb430d3def238d50ba68fd595f
Signed-off-by: Sachin <sachin.saxena@nxp.com>
|
|
New parameter allows specifying rss-flag - one or more of following
ipv4-frag ipv4-tcp ipv4-udp ipv4-sctp ipv4-other ipv4
ipv6-tcp-ex ipv6-udp-ex ipv6-frag ipv6-tcp ipv6-udp
ipv6-sctp ipv6-other l2-payload ipv6-ex ipv6
Sample config:
dpdk {
dev 0000:86:00.0 {
rss {
ipv4
ipv4-tcp
ipv4-udp
}
}
}
Change-Id: I33c047d69ef8710b8ba3c7e1a1964d5d54f6e880
Signed-off-by: Srivatsa Sangli <srivrama@cisco.com>
|
|
New parameter allows specifying which worker threads will process rx
queues. Parameter arguments is list of cores and number of worker specified
must be equal to the number of rx queues configured (num-rx-queues). If
num-rx-queues is not specified, it will be automatically set to
number of workers.
Sample config:
dpdk {
dev 0000:86:00.0 {
workers 2,3
num-rx-queues 2
}
}
Change-Id: I88bc381e0e542eb02def09a726c6f04de3e1ae17
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I64f5ec5e32f200834c63ec3b304f9f20cef332a7
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I4d7d4a56aba010aa868b1f4c2c4e8db0b4c21fd7
Signed-off-by: John Lo <loj@cisco.com>
|
|
Change-Id: I8292628ad359a19e02ff79568d773ad2b1af51ec
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
This patch introduces following 2 startup options:
num-rx-desc
num-tx-desc
Which can be specified under the dpdk { dev PCI_ADDR {...} } or
dpdk { dev default {...} } .
"show hardware" output is extended to display what is set:
TenGigabitEthernet2/0/0 5 down TenGigabitEthernet2/0/0
Ethernet address 90:e2:ba:96:d0:54
Intel 82599
carrier up full duplex speed 10000 mtu 9216
rx queues 2, rx desc 512, tx queues 2, tx desc 1024
cpu socket 0
Change-Id: Ia832885c8e5cf0eb0575367e97581e7065934753
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
This change adds support for providing per-interface
parameters in the startup config.
Sample configuration:
dpdk {
dev default {
num-rx-queues 3
num-tx-queues 3
}
dev 0000:02:00.0 {
num-rx-queues 2
num-tx-queues 2
}
dev 0000:02:00.1
}
Change-Id: Ia7d9ae2ac9c4fd9baaa480d061a395f8a421a722
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Sleep <nn> milliseconds after each dpdk input device poll, useful when
oversubscribing CPUs.
Change-Id: I90ad1f21dae7eeeda56bfe845911118aa46f83ec
Signed-off-by: Dave Barach <dave@barachs.net>
|
|
Change-Id: I0e985b079da3224f4886e3ee2cece4d046e291eb
Signed-off-by: John Lo <loj@cisco.com>
|
|
This is preparation work for moving DPDK
EAL and mempool initialization to vlib.
Change-Id: I2dc35aa53edec0e07fc2650d630aa625831154c3
Signed-off-by: Damjan Marion <damarion@cisco.com>
|