14028 Commits

Author SHA1 Message Date
Pierre Pfister
328e99b1e2 Add jumbo frames support to non-dpdk vhost interfaces.
This code provided inter-VM (2 cores per VM) throughput of
22Gbps using iperf through VPP (1 core) with 9k frames.
With the same setup and pktgen running on both sides, it
reached 5Mpps with no packets drop (Equivalent to before the patch).
During the tests the average vector length was about 1, which
likely means that VPP is not the bottleneck.

The patch also includes some generic functions for vlib buffers
allowing for chained buffer construction whether or not DPDK is enabled.

Change-Id: Icfd1803e84b2b4578f305ab730576211f6242d6a
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-02-18 00:50:55 +00:00
Damjan Marion
ce8debfe0f Increase number of per-cpu mheaps to 256
It also includes check to ensure that number of
per-cpu mheaps is not lower than number of cpus.

Change-Id: Ibc68b34dda130f922243f9ea15b03e44bbcac269
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-16 17:50:48 +00:00
Damjan Marion
d0386374d6 Remove vec_sort macro
vec_sort macro was using gcc proprietary nested functions that
require a executable stack and they are considered as unsafe.
Also, nested functions are not supported by other compilers.
vec_sort_with_function() should be used instead.

Change-Id: I05959da63d222ec71c090ba63420b427ce10c79b
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-16 17:36:49 +01:00
Damjan Marion
d8ff0e1dc7 Show DPDK EAL cmdline args in 'show version verbose'
Change-Id: I88a8038a36e7e5060f354cd66a2532ef8c996b67
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-16 13:07:20 +01:00
Dave Barach
d81566ff92 Disable for-us udp/tcp checksum validation by default
This patch alters behavior for dpdk rx packets. Depending on test
results, it may be necessary to extend the scheme to packets received
on non-dpdk paravirtualized interfaces, and packets originating in the
vpp stack itself.

Change-Id: I8444232a90ff176e7d6a688e36801174575251a1
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-15 11:36:00 -05:00
Damjan Marion
85cdbd0757 Implement multiple TX queue sharing
Maximum number of TX queues ca be defined by NIC driver
or configured manualy with 'dpdk { max-tx-queues X }'.
If system have more worker threads than TX queues they will
be shared between them. Before this change only one tx
queue was used in such cases.

Change-Id: Iab68170ab45fa6b9925fc4e79ccab9222f095e7e
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-14 12:47:50 +00:00
Damjan Marion
3f46baf1bd Increase VLIB_MAX_CPUS to 256
Change-Id: Iac68b38dda1a0f9e2242f9eab5b03e44bbcac269
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-14 00:02:31 +00:00
Damjan Marion
cfb2d804ce Make size of per-thread mini counter vector equal to number of threads
Change-Id: Icfd91cca3cd686e5efa8a988f04483238605e1cb
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-14 00:02:31 +00:00
Oleg A. Arkhangelsky
1617819889 Remove duplicate vlib_call_init_function() for tuntap init
Change-Id: Ie642d15d2843f02a01448afe91aa7311e6131047
Signed-off-by: Oleg A. Arkhangelsky <sysoleg@yandex.ru>
2016-02-13 20:32:12 +03:00
Damjan Marion
13f0718e64 Increase number of dpdk lcores to 256
Change-Id: Ia0e228d02fd9f180ed9ca468074ab38d575e415e
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-13 00:14:53 +00:00
Keith Wiles
cb46684aac Fix ARP show exception when not ARP entries as found.
The fix tests if the ARP table exist before attempting to
interate over the entries.

Change-Id: I22cad5ba3a01c3fba1feac33745a29ff1f7f8fe1
Signed-off-by: Keith Wiles <keith.wiles@intel.com>
2016-02-12 13:23:28 -06:00
Dave Barach
52642c3c53 Performance tools, initial check-in
Change-Id: I9fb4f4babecbe02d171f38c4d089634e90141937
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-12 01:30:48 +00:00
Josh Gahm
3640d537e1 Pull in some additional symbols that may be needed by plugins.
Ensure that some additional rte_* symbols (from the dpdk library) and
pulled into the vpp image so that they will be available to plugins.
Also, provide vlib's dpdk configuration function so that plugins that
need to make dpdk calls during initialization/configuration may ensure
that dpdk itself is initialized first.

Change-Id: Iff8b518c6fc23e9e2f24a85944e5b246c80e5f67
Signed-off-by: Josh Gahm <jgahm@cisco.com>
2016-02-11 18:41:58 +00:00
Damjan Marion
14a44d37a3 Use vppinfra bitmap for dpdk coremask
Change-Id: Iec5ebadf120f742f43a681c4d394aa97ad2ae1e1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-11 15:02:33 +00:00
Robert Varga
40223daf5e Remove strcasecmp(3) declaration
This should be coming from string.h.

Change-Id: Id88bb1d2a4681a9dcf6db9c7de2580a5219869d1
Signed-off-by: Robert Varga <nite@hq.sk>
2016-02-10 16:29:30 +01:00
Robert Varga
f0f54d8b7c GetStringUTFChars() may fail
GetStringUTFChars() can fail, returning NULL. Make sure we do not trip
over it.

Change-Id: I2d6b9c72c353c2423042fd035087f0d57fdc08ca
Signed-off-by: Robert Varga <nite@hq.sk>
2016-02-10 16:25:07 +01:00
Robert Varga
ec3034c2ba newIntArray() may fail
Allocation of the integer array may fail, guard against NPE.

Change-Id: I3e860153597638392c9b669a6ad586fd2e03a64d
Signed-off-by: Robert Varga <nite@hq.sk>
2016-02-10 16:24:31 +01:00
Dave Barach
20abdd9b02 Compile with -Werror, so Jenkins will catch warnings
Change-Id: I9255c75b6c6cbc638cdcc411632a924cb06f28c0
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-10 09:14:36 -05:00
Robert Varga
d0f9209d06 Indent vppjni.c to be consistent
Pure cleanup of indentation and brace placement, so the file ends up
being consisteny.

Change-Id: Idd2f20deda486d16b455f3e13cacbc2f3baa50f1
Signed-off-by: Robert Varga <nite@hq.sk>
2016-02-10 14:04:41 +00:00
Dave Barach
2126b35f5f Replace AC_PROG_LIBTOOL with LT_INIT
Change-Id: I642c4b8e83dd07708658a10ad46e9fd2c28a7f1f
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-10 08:43:22 -05:00
Damjan Marion
e17fdb5ddf Add Top-Level Wrapper Makefile
Change-Id: Ie3431986ddb42db8d331fcb3d34250a6ec9d9a02
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-02-10 13:14:39 +00:00
Shesha Sreenivasamurthy
b8f45b3729 Vhost multi-q support
Remove multi-q support patch for DPDK-2.1.0

Change-Id: I685f3886b3883803210221682fa80353670a6970
Signed-off-by: Shesha Sreenivasamurthy <shesha@cisco.com>
2016-02-10 13:14:17 +00:00
Dave Barach
1b1695316d Clean up gcc-5.2 warnings
Change-Id: I7b0aa42a61607d4d30fe3627032d3837b2838982
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-10 08:03:44 -05:00
Dave Wallace
ba474a2629 Modify hand-coded JNI function names to match refactoring of
vppConn.java in commit #169

Change-Id: Id9feaebdce199f239741a10d31bf7aa473a62806
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2016-02-09 23:24:32 -05:00
Robert Varga
190efbc0a5 Make cleanup_rx_thread static
The symbol is not referenced outside of the source file, hide it from
the world.

Change-Id: Id5db73efff0767657ebc5a0b25dcccd2b85e354d
Signed-off-by: Robert Varga <nite@hq.sk>
2016-02-09 22:00:27 +00:00
Dave Barach
8501315d51 Disable EAL message spew which can easily fill /var/log
Change-Id: I63da892d1c4148a54ea33c172986c854932beb01
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-09 16:20:08 +00:00
Robert Varga
c15cc30571 Mark internal implementation functions as hidden
Adding hidden attribute results in compilation failure if the symbol is
not found when linking the .so. It should also lead to better
performance, as it side-steps GOT.

Change-Id: I7b6f39e663ca2b3e432669a3e2b36d7395f555b6
Signed-off-by: Robert Varga <nite@hq.sk>
2016-02-09 17:07:07 +01:00
Keith Burns (alagalah)
ee8c0a03d2 SFF NSH support VXLAN GPE
Change-Id: I23dae9e13f6c2ec7b3326710a40f28984ff6fe1f
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-02-09 13:38:27 +00:00
Robert Varga
5baafefa44 Fixup symbol names in vpp-japi
There is skew between symbol names of vppjni_env.[ch], causing the
library to fail to load. This patch fixes that up.

Change-Id: I972e6d0ce72fd05ee3518e7161e20946ff3426ca
Signed-off-by: Robert Varga <nite@hq.sk>
2016-02-09 11:23:26 +01:00
Dave Barach
f60a822297 Set vnet_buffer(b0)->sw_if_index[VLIB_TX]
Change-Id: I3274c8d426113c71fbb900978b94caef85eabae1
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-08 16:57:33 -05:00
Dave Barach
ced48e7cbb Cisco Discovery Protocol, initial working attempt
There are multiple enhancement opportunities...

Change-Id: I976772dc3802f8284e8c6457c001d68184831e25
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-08 15:57:55 -05:00
Dave Barach
3e7deb11b5 Clean up per-thread elog track nomenclature.
Change-Id: I4b65b29f9291b3fd47e05576d9a0789af8912982
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-05 16:30:11 -05:00
Todd Foggoa
505488553a DPDK patch: Add missing init of packet_type field.
This can cause packets to be mishandled in systems with more than
one type of driver in use.

Change-Id: I73ae91ff5d7a22fa542c3b39f6ccfe50437ec71b
Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
2016-02-05 14:27:09 -05:00
Todd Foggoa
a9dc8c9e6a DPDK patch: Allow applications to override rte_delay_us()
Some applications may wish to define their own implentation of
usec delay other than the existing blocking one. The default
behavior remains unchanged.

Change-Id: I699b2ed460763492502d22b7e8532514e0886ecd
Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
2016-02-05 14:21:37 -05:00
Todd Foggoa
1d8dd705d7 DPDK patch: Fix a crash in igb_uio driver when the device is removed.
Change-Id: I101166ebda1c06e20a3c89cd38786ce44b7ab5d5
Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
2016-02-05 14:20:59 -05:00
Ole Troan
4b12b3c35a CLI: If an error happens on the socket being polled, then the CLI
does not close the socket. Resulting in the main thread being stuck
in a tight infinite loop polling on the erronous socket.

Change-Id: I630b84b97c059acce117d56e41cd201131db4cab
Signed-off-by: Ole Troan <ot@cisco.com>
2016-01-27 23:37:58 +02:00
Dave Wallace
efe710fe56 Remove redundant apt-get install of dkms and debhelper.
Change-Id: Id2caea331f86a71f26990e1ae11288826157e737
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2016-02-04 13:13:21 +00:00
Dave Wallace
d255ee13f5 Change non-default route ethernet interfaces state to down so VPP will use them.
Change-Id: Icdb1a8d35a97e01d5e1be13fdc89ce3f9ec62e1a
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2016-02-04 13:13:21 +00:00
Kevin Paul Herbert
9de836c715 dpdk_buffer.c: Honor clone_count even when there isn't a freelist handler
The DPDK glue did not support cloned packets which do not
have a freelist handler. Add support for this case.

Change-Id: I8f17cd4952df97989d90d3f3e39792bc3739705c
Signed-off-by: Kevin Paul Herbert <kph@cisco.com>
2016-02-04 12:42:30 +00:00
Kevin Paul Herbert
078bc5676e ip[46].h: Remove tcp reference
This is not used. Remove it.

Change-Id: I63f705db6bc10137d6e28977aa75e60f4e13cfe8
Signed-off-by: Kevin Paul Herbert <kph@cisco.com>
2016-02-04 10:53:04 +00:00
Kevin Paul Herbert
31a879ae21 p1.c: Remove log() symbol
This symbol is defined in the math library, and is a compiler
built-in. Plug-ins that need it should link with -lm.

Change-Id: I967c87ccea0e762b68ca59cfaa460f3d6e534a59
Signed-off-by: Kevin Paul Herbert <kph@cisco.com>
2016-02-03 21:05:10 -08:00
Dave Barach
1c11311b32 Need to include symbolic links in the lib package: libXXX.so, libXXX.so.0
Otherwise, autotools can't find libXXX, -lXXX doesn't work, etc.

Change-Id: I9c4c43f795ca872475f65bc0e4494674eaa00576
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-03 12:59:49 -05:00
Ed Warnicke
eeee9e2b18 Switched vagrant for ~/git/vpp to /vpp
build-root/vagrant/Vagrantfile

was always mounting the vpp into /vpp
Now rather than cloning it and building,
we just use it as mounted.

In order to let folks know what happened,
a README.moved is copied into the ~/git/vpp
so folks know what happened.

In addition to make it easier for folks
to do commits from withing the vagrant,
we install git-review, and copy in the
users .gitconfig and .gnupg directory.

A couple of notes about this. VMWare goes much
much faster in all cases.  Virtualbox is a
bit slower in the very first run (without ccache).

One of the benefits of using the mounted /vpp though
is that after your first vagrant up, you always
have access to the .ccache, as it lives
outside the vagrant, and so in steady state
everything is faster.

Change-Id: I2cd2c28181b3d7e664240dfe2249b5be3f1b9241
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-02-03 14:49:37 +00:00
Ed Warnicke
c28b474591 Enabled CCACHE_DIR to be set by ENV Variable
Change-Id: I0098f995b1f75bbad5c448d5a0d8facc43e6f5cb
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-02-02 19:30:31 -08:00
Dave Barach
f1bb047ae8 Add pciutils to the CentOS vagrant bootstrap; needed to install vpp rpms
Change-Id: Ia0cbf88a509392c1bd75fb242985da07c8356739
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-02 16:59:21 -05:00
Dave Barach
b10277dedc Enable ganglia module integration build
Change-Id: Ia49e9f246e8318ba74195c3397472fb0c102389b
Signed-off-by: Dave Barach <dave@barachs.net>
2016-02-02 21:36:00 +00:00
Bud Grise
0bcc9d511e Tracing enhancements.
Limit buffer tracing to 50 in order to limit large output, unless
the user over rides the max "sh trace max <number>".

Add trace filtering, to be able to only trace packets that were
processed by a specific node or exclude packets processed by a node.
Example, only include packets processed by error-drop:
  # trace filter include error-drop 1
  # trace add dpdk-input 1000000
  <wait for packets, to come in>
  # show trace

Change-Id: I5d9e15d2268ea55e6ef87b2b8756049c49b2791b
Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
2016-02-02 21:33:08 +00:00
Shesha Sreenivasamurthy
cfe0724b22 Use per-thread vlib_main
Change-Id: I8bee9f6661878a74a0375944ac01c9cb3a0acfbf
Signed-off-by: Shesha Sreenivasamurthy <shesha@cisco.com>
2016-02-02 18:24:42 +00:00
Todd Foggoa
4189c17afb Set the thread name for the stats thread if a thread name prefix is given.
Change-Id: Ie66d29bfbf6d106e9c49fb4f3738b26798c3a63c
Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
2016-02-02 12:47:46 -05:00
Todd Foggoa
a28f44b34e Zero the interface template before using it.
Change-Id: Ib6ce325202657684adaa17c82f64c70298dae339
Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
2016-02-02 12:37:21 -05:00