Commit Graph

654 Commits

Author SHA1 Message Date
78ea9c2869 VPP-81: Print interface name after creating an interface with CLI
When the CLI is used to create an interface, and whend the operation
succeeds, the newly created interface name is printed-out.

The patch includes the following interfaces types:
- AF_PACKET
- Vhost User
- Netmap
- GRE
- L2TP
- MPLS-GRE
- Loopback

Change-Id: Id518c139ec63a261eae81d2ed95c4cd1f10b5157
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-05-23 14:46:13 +00:00
53f09e36f9 Add LISP RTR support
Change-Id: I8a3770f8f1cd1fde6765b81d35aacaaf4ff98b82
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-05-23 09:15:39 +02:00
071d610dc4 Changed JVPP interface for construction and connectivity
Simplified construction, autoconnected; possible connect/close
See updated sample test cases with changed interface usage

Change-Id: Ib53e855880bc414868aa2b9bb8f5df086917e375
Signed-off-by: Tibor Sirovatka <tsirovat@cisco.com>
2016-05-23 06:25:05 +00:00
6931f59e54 Add per-thread, per-node runtime stats serialization
Change-Id: Ic4009cdbac67b7cd53c88079439496b9d9dfaa35
Signed-off-by: Dave Barach <dave@barachs.net>
2016-05-21 10:04:06 -04:00
6f7b992f56 VPP-80: netmap binary API message element name collision
if_name collides w/ ietf-interfaces.yang member name, causing a build-break
in an existing yang-model-based app. Rename to "netmap_if_name".

Change-Id: Id386eacd77343dd15a868c28dacd2b0e4523bc9b
Signed-off-by: Dave Barach <dave@barachs.net>
2016-05-20 14:44:10 -04:00
b635c567d1 VPP-79: fix cross-compilation build break
.../packages/dpdk.mk must not set $(TARGET). The Makefile fragment
really only needed to use a temporary variable to control the
dpdk Makefile. Simple fix: set $(DPDK_PLATFORM_TARGET) instead.

Change-Id: Ieb61b603bc36ed708a1b1237dc6bc503e90a0b7b
Signed-off-by: Dave Barach <dave@barachs.net>
2016-05-20 17:46:12 +00:00
d686c632d1 VPP-77 Creating VXLAN over IPv6 via API fails
Tunnel dst is incorrectly being set to the requested src address.

Change-Id: I44e2ee475f0572e78d148951c5d4684e85e08ce7
Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-20 12:15:30 -04:00
e855480acd Add policer dump API
JIRA: VPP-67

Change-Id: I8fced60a884f1585b1f51002832d47631eea9571
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-05-20 01:15:32 -07:00
270b6dee8c VPP-74 Fix signedness issue when terminal resizes
When re-locating our current viewport into the pager buffer we need to
verify that the new viewport is within the boundaries of the index.
This condition is considered very rare, but nontheless the check is needed.

Unfortunately I assumed the variable was signed; it is not, and the
subtraction can in some cases cause the value to be negative. This is
therefore a bonafide semantic error that may cause problems.

This patch reworks the logic to avoid having to change it to be signed.

Change-Id: I26f0747d38dcc43dd9c092d50f2489b122009e7b
Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-19 14:35:03 -04:00
fd9014a184 Remove unused PCI code
Change-Id: I1d91c9982823758059f9d6aa699982253930e7ba
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-19 17:57:01 +00:00
1c80e831b7 Add support for multiple microarchitectures in single binary
* compiler -march= parameter is changed from native to corei7
   so code is always genereted with instructions which are available
   on the Nehalem microarchitecture (up to SSE4.2)

 * compiler -mtune= parameter is added so code is optimized for
   corei7-avx which equals to Sandy Bridge microarchitecture

 * set of macros is added which allows run-time detection of available
   cpu instructions (e.g. clib_cpu_supports_avx())

 * set of macros is added which allows us to clone graph node funcitons
   where cloned function is optmized for different microarchitecture
   Those macros are using following attributes:
     __attribute__((flatten))
     __attribute__((target("arch=core-avx2)))

   I.e. If applied to foo_node_fn() macro will generate cloned
   functions foo_node_fn_avx2() and foo_node_fn_avx512() (future)
   It will also generate function void * foo_node_fn_multiarch_select()
   which detects available instruction set and returns pointer to the
   best matching function clone.

Change-Id: I2dce0ac92a5ede95fcb56f47f3d1f3c4c040bac0
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-19 18:14:38 +02:00
82e29c4558 Add netmap API
JIRA: VPP-66

Change-Id: I421529fa8eafe5268745a34a4fcd40156defcdf8
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-05-18 17:14:46 +00:00
5a206eafdb Rework of the old PCI code
* adds support for VPP native PCI drivers using
   standard uio_pci_generic kernel driver
 * adds generic PCI interrupt callback
 * splits code to generic PCI handling and linux specific
 * adds new debug cli 'show pci [all]'

Change-Id: I447c2285e319e9725d70688c1b70c9dedda51fdc
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-18 13:13:27 +00:00
a2a48305df Set java artifact versions to 16.09 for master
The nature of Java artifact versioning is different
that rpm/apt versioning in that artifacts are
traditionally numbered:

${NEXT_RELEASE_NUMBER)-SNAPSHOT

This patch sets ${NEXT_RELEASE_NUMBER) correctly for master.

Change-Id: Iab34c26c7440d5e04d6d05f46598832e9adf6920
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-05-17 23:57:07 +00:00
737547efc3 dpdk/Makefile - Allow dpdk target to be set according to the platform
Allows DPDK parameters to be overriden from the platform
definition.

$(PLATFORM)_dpdk_arch = "armv7a"
$(PLATFORM)_dpdk_target = "arm-armv7a-linuxapp-gcc"
$(PLATFORM)_dpdk_make_extra_args = "CONFIG_RTE_EAL_IGB_UIO=y"

Change-Id: I8c0f233942744cb82ca3ed2d65e33acee845cb4e
Signed-off-by: Christophe Fontaine <christophe.fontaine@qosmos.com>
2016-05-17 19:39:25 +00:00
95c8415531 dpdk/build - 32bits compilation
In vnet/vnet/devices/dpdk/device.c, post 2 event data instead of
merging them into 1 u64.

Change-Id: I8b1d61b894279fb6eb57bb82a05affc14360e6b8
Signed-off-by: Christophe Fontaine <christophe.fontaine@qosmos.com>
2016-05-17 19:24:17 +00:00
144a90f2e1 dpdk/init - Add compatibility to non numa architecture
On non numa aware platforms, the path "/sys/devices/system/node/node%u"
does not exist: the "free_hugepages" count is available in "/sys/kernel/mm/".

Change-Id: Id62018a2bd0937d267663699c620e89d02c26a72
Signed-off-by: Christophe Fontaine <christophe.fontaine@qosmos.com>
2016-05-17 19:15:15 +00:00
2df2e999fb Fix output feature issue where opque field is already used by previous node
Change-Id: I1470993668fa8c740229149bbb227bd1e410d5ab
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-17 18:34:09 +00:00
9341a1f850 vppinfra - ARM: cycle count 64bits register is only available on ARMv8
Change-Id: I7d622e591020a482af68667f4d1ed2056258d2c8
Signed-off-by: Christophe Fontaine <christophe.fontaine@qosmos.com>
2016-05-17 18:20:10 +00:00
862623da6e VPP-23 Re-work pager line collation
To better handle lines longer than the terminal width, re-work how
the pager collates lines. We still store each output line in a vector
or lines; additionally we index the start and end of displayable lines.

The index then becomes the data to work out what to display.

If the terminal is resized this index is rebuilt and the current page
redisplayed and an attempt made to keep the current top-of-screen line
in place.

Change-Id: Icc6f4f72dabad89682cd82be88adb03eadb7811d
Signed-off-by: Chris Luke <chrisy@flirble.org>
v16.09-rc0
2016-05-16 21:37:00 +00:00
e7a40e86b1 VPP-61 Patch2/2 Removing NSH from VPP for move to NSH_SFC
Change-Id: I76359b621b2edc599cf2e9ee845d97293a5d46f7
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-05-16 11:54:01 -07:00
72a7ded376 VPP-61 Patch1/2 - Remove NSH from VPP
- Had issues with original patch and CSIT, breaking into
-- Makefile and API changes
-- Follow up patch removing NSH directory

Change-Id: I6c2f49a74d59b97ce4ea43799cc6f01f5cb1d5a2
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-05-16 16:52:57 +00:00
793b18de05 VPP-58: Fix build on AMD Opteron
Change-Id: Ib3e10fd4c27dde4f90b8d156f0c8547787ad46e2
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-16 16:52:55 +02:00
4e6be6847f Add build number to VPP version if BUILD_NUMBER var is set
Change-Id: I73ecc12224fdfb08b7aa6118761b368577ce33d5
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-16 14:43:20 +00:00
65fcd4d737 Add configure policer API
JIRA: VPP-67

Change-Id: I04560d78e2eb131cd6cc31472b70b3d3e8fdd79a
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-05-16 13:30:40 +00:00
6b70c213ee VPP-68: L2 Rewrite: Support for chained classify tables
The classifying capabilities are pretty limited if only a single table can be used.
This patch adds support for chained classify tables to L2 Rewrite feature.

Change-Id: Ib678fe2028f17b441adb75d85bf3e31185e42c59
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-05-16 12:12:01 +00:00
530bd8e1e6 VPP-69: Create fib or bridge domain with arbitrary ID
It appeared to me that it might be usefull
to allow users to create fibs or bridge domains without
a complete knowledge of the current used IDs.

These changes define fib and bridge domain constructors
when the provided ID is ~0. In such a case, an unused ID is
used to create a new fib or bridge domain.

Change-Id: Iaba69a023296e6d17bdde45980f9db84832a3995
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-05-16 12:07:04 +00:00
aa761e1281 VPP-57 Add missing license headers in doc files
Change-Id: Icd1f8952f66d3cee027c59f3148c67f1839de306
Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-16 11:48:16 +00:00
9c5b2b301c VPP-64: Fix top-level "make pkg-deb" which breaks if CDPATH is set in the user's
bash environment.

Change-Id: Ib13e6fdafa67175937e57fad4e75e553cb1e08a3
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2016-05-16 11:47:05 +00:00
ed18a1c840 VPP-65: Fix top-level "make install-dep" to work behind a firewall /
proxy-server on Ubuntu.


Change-Id: I3f662455728adb81ca5a079540d8a9c615a5b977
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2016-05-16 11:46:28 +00:00
195bceec56 ONE-13: Add CLI/API for LISP static remote mappings
Change-Id: Ic4c717af9629541bac0a0e6c65d0157619c8f578
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-05-15 15:02:51 +00:00
75a37b372e VPP-62 Add a doxy filter to enable vpe.api doc
This makes Doxygen think the API definitions are structs which is close
enough to be able to document the API methods.

It also has logic to create an indexed API page but that's disabled for
now because it duplicates the "brief" text twice in the struct doc.

Fixes a minor line numbering issue in filter_c.py.

Change-Id: If380160b73e7c10d999b35a76f55d0e27cbc91cc
Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-15 13:22:54 +00:00
7e55d364fd VPP-63: clean up config scripts, remove specific hostnames
Change-Id: Ifb77256fa691b1a90045a10448835c09b764e74f
Signed-off-by: Dave Barach <dave@barachs.net>
2016-05-14 18:39:11 -04:00
1d1644c260 VPP-57 Add doxygen build dependencies
Change-Id: I764d8a440c050d753e0380e139f489d3085f17f4
Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-13 19:28:39 +00:00
ddfafb82ec ONE-7: Fix map-request encapsulation
We now try to find the first map-resolver IP we have a route to and
decide the ip lookup node according to map-resolver IP.

Change-Id: I68fc12861dc1e9a203ebf6caefd4f053a741a785
Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-05-13 19:14:47 +00:00
a20935192a Whitespace probe for CI
Change-Id: I3744ee19a21dcea2885aef2800244c93aa19763a
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-05-13 13:49:34 -05:00
b585097048 VPP-57 Add Doxygen to VPP
- Configures Doxygen.
- Adds a source filter to do magic on our use of the preprocessor to do
  constructor stuff to make Doxygen grok it better.
- Adds a convenience helper to the root Makefile.
- Adds a README.md to the root directory (and which Doxygem uses as its
  "mainpage".
- Add several other documentative files.
- Currently using SVG for call graphs, though this may have a
  load-time performance impact in browsers.

Change-Id: I25fc6fb5bf634319dcb36a7f0e32031921c125ac
Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-13 17:23:36 +00:00
94b1442a67 VPP43 - NSH refactoring: Added nsh-map nodes
- removed vnet/vnet/nsh-gre
- removed all nsh from vnet/vnet/nsh_vxlan_gpe to
  vnet/vnet/nsh
- moved vnet/vnet/nsh_vxlan_gpe to vnet/vnet/vxlan_gpe
- added cli and binary api for VXLAN GPE tunnels
- plan to move vnet/vnet/nsh to new repo (sfc_nsh) and make plugin
- added cli for NSH (binary API will be done in sfc_nsh)
- vnet/vnet/gre will be extended in VPP-54

Change-Id: I1d27def916532321577ccd68cb982ae0d0a07e6f
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-05-13 16:07:41 +00:00
3e53fc5664 ONE-11: Fix bugs in LISP API
- check input variables
- in locator_set dump, add support for remote locator_set

Change-Id: Ib10028e83fead358f820ae45c71b6ca4dfbe2f1e
Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
2016-05-13 12:20:11 +02:00
b0618bdc84 VPP-53: clang build fails in API on SR tests
Change-Id: Ib3117d7b5b6b8c97acfea17ad27c965f6ce2e829
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-12 19:06:59 +00:00
0e0c99f8de Generate jvpp sources in build-root
+ Fail build when JVpp does not compile

Change-Id: I4ad3ffb5d7ff6edaad89de66a9f0bd79a14fb690
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
2016-05-12 14:09:56 +02:00
beabdf0161 Revert "Whitespace change for testing CI"
This reverts commit cf9b712f57.

This reverts gerrit: https://gerrit.fd.io/r/#/c/1078/

Change-Id: I4cf8c238fd81b5dc8bd077bbdd00cf72aef796ed
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-05-12 04:06:05 +00:00
cf9b712f57 Whitespace change for testing CI
Change-Id: I52bf3c1c8ece08a4b52fce1f34704b944f9c1888
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-05-12 03:52:59 +00:00
c288066921 JVPP - null checks changed to Objects.requireNonNull usage
Review changes incorporated

Change-Id: Ia04b62144a0d3643095b518db538c7eb5137c048
Signed-off-by: Tibor Sirovatka <tsirovat@cisco.com>
2016-05-12 03:15:23 +00:00
e6250e0a7f ONE-9: Fix clang build errors
Change-Id: Icbf3e269471ee0fc1d21f842b2ea220328a0f891
Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-05-11 11:47:27 +00:00
bd92de551f ONE-8: Fix adj signature issues
When inserting routes into ip4/6 fibs, we first added a dummy adjacency
and afterwards manually updated its rewrite header to enable src/dst
forwarding. The downside to this is that the adj signature is changed
and therefore when deleting a route the adjacency signature is not
removed from adj_index_by_signature hash resulting in crash if the same
adjacency is re-inserted.

This patch avoids the issue by enforcing the insertion of 'complete'
adjacencies thereby obviating the need to update the rewrite header.

Change-Id: Ib43bfe72a65e2cf9ef7685a99596eb1d7723e543
Signed-off-by: Florin Coras <fcoras@cisco.com>
2016-05-11 11:03:20 +00:00
215104e67f ONE-6: dp is not programmed when re-enabling LISP
Change-Id: I4c0c5d44168da811a713943275430a378ff46929
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-05-11 00:16:44 +00:00
93dcd1d743 VPP-46 Fix cut-and-paste in the debug CLI
Since the move to line-mode the debug CLI was eating everything in the
input_vector but only processing upto the first newline. Cut-and-paste
type operations generally send a large block of input with multiple
newlines and thus all but the very first line were simply ignored.

This patch fixes that and also cleans up the difference between
input_vector and current_command which in turn removes a lot of cruft
from the keystroke parser.

Previously current_command was just the character accumulator inside the
char-by-char keystroke parser; complete commands were copied back to
input_vector (overwriting anything already in there).

Now, in char-by-char mode:
- input_vector is the stream of incoming bytes yet to be processed
- current_command is the accumulated characters of the next command to
  be executed; once newline is found, it is the complete command to be
  executed.

In line mode:
- input_vector and current_command are the same thing.

Change-Id: I72d21f0f3508b413879071ab186a71cef1124a2b
Signed-off-by: Chris Luke <chrisy@flirble.org>
2016-05-10 13:37:03 -04:00
716d959349 Avoid clobbering output_function by concurrent CLI sessions doing vlib_process_wait_for_event*.
A problem is easily reproducible by taking the test harness code from the commit,
and launching it in two terminals with some time overlap - the outputs will
be sent to the wrong session. This commit moves the output_function and argument
from a global structure into the process structure, thus the output_function
is not clobbered anymore and each session gets only its own output.

To ensure the callers can redirect the outputs to different destinations
(e.g. the API calls via shared memory, etc.) the existing logic
for vlib_cli_input() was retained.

To avoid the magic numbers usage in the logic that does the page-alignment
of the process stack, there are changes around the stack[] member
of vlib_process_t. Also added a compile-time assert to ensure that
the stack does indeed start on the page size multiple boundary.

Change-Id: I128680ac480735e5f214f81a884e414268e5d652
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2016-05-10 17:13:00 +00:00
46d4e36792 ONE-4: Add LISP enable/disable API/CLI
This patch adds an enable/disable API/CLI for control plane
which calls similar functions for data plane. When re-enabling
it also re-populates dataplane with tunnels and interfaces.

Change-Id: Id8c3d6af90ecc0be331d502756914b1f62824046
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-05-10 13:52:48 +02:00