Commit Graph

1377 Commits

Author SHA1 Message Date
d3eb90ecfc vhost: Improve data path
This patch significantly improves vhost Tx and Rx
performance (20% Mpps improvement in PVP scenario).

Most significant change consists in the split of
virtio ring parsing and memory copies.
Other minor changes mostly consist in getting
rid of unnecessary variables.

Change-Id: Ia94e12ab9a6c114e3f7fef376a9343823d051209
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-12-06 16:22:16 +00:00
f3bd5716c1 Fix length in LCAF header
Change-Id: I56461c5d892ce223d1160fb57313ca1c51db9a23
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-12-06 15:54:13 +00:00
2a3e0ea435 snat: remove duplicate makefile var definition
Change-Id: Id910f033c693be882ef5da6adca4a9b46de057e4
Signed-off-by: Gabriel Ganne <gabriel.ganne@qosmos.com>
2016-12-06 14:00:07 +00:00
f0c90e20f7 MAP: Split MAP API out of vpe.api.
Change-Id: I91a612a00ea85a9ddd4233d9aa19a6a4332d9701
Signed-off-by: Ole Troan <ot@cisco.com>
2016-12-06 13:59:10 +00:00
dbb3c25374 vhost: Code cleaning
After a bug was found, I decided to review old vhost code.
This change cleans some of it by:
- Use unix file private data rather than hash table
- Use vnet interface lookups rather than hash table
- Keep track of unix_fd index rather than fd value
- Change some indent
- Store interfaces in a clib pool rather than hand-made pool

The overall change reduces the number of lines as well as
the amount of state kept in vhost structures.

Change-Id: I6b9b670b9c7e1fb85981bcf2099f7140b0251fe0
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-12-06 13:58:13 +00:00
beb1a8db49 Add "vpp-api-install" to plugins_configure_depend in build-data/packages/plugins.mk
As per Ole Troan mail https://lists.fd.io/pipermail/vpp-dev/2016-November/003296.html
(message id <D3FB63FB-D144-4CBA-B4AB-CDE46B83D838@cisco.com>):

Change-Id: I7f9d13c079505257bc8b37eecd8318cd360a56c3
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2016-12-06 13:54:11 +00:00
Jan
0bd0b7ff61 test: l2xc instances multi-context test (CSIT-491)
- add/delete L2XC instances and verify results by traffic

Change-Id: Ib538a98e499ae3c9c9601a22afcabb1afb84c881
Signed-off-by: Jan Gelety <jgelety@cisco.com>
2016-12-06 13:50:18 +00:00
d335dac3e2 dpdk: add rte_delay_us_callback
Converted DPDK16.07 "Allow-applications-to-override-rte_delay_us" patch
to of callback in DPDK16.11

Change-Id: I6c802e3ea8f817e5df591166b1e0a42f5f835a71
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-12-06 12:22:44 +00:00
a9b2d5831e add missing import to mpls test
Change-Id: If53a7c8066ec9713645a009218e264384afe93e4
Signed-off-by: Gabriel Ganne <gabriel.ganne@qosmos.com>
2016-12-06 12:22:04 +00:00
c9097d2060 api: set jvpp version to 17.01
Change-Id: Ib22a3a24f9b290465dc80fc683d903d58ba3804c
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-12-06 12:09:27 +00:00
3e046ea96e api: missing support for dumping of neighbours (VPP-333)
added API to dump ipv4/ipv6 neighboors (added by ip_neighbor_add_del).

Change-Id: I33209a3d06beba64d68465c0892a9f4c65657334
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-12-06 12:08:46 +00:00
397fd7d39f Implement LISP control plane messages
* Map-register
* Map-notify
* RLOC probing

Change-Id: I7f6295376b21cd67805446dfd1c1033acead2d4b
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2016-12-06 09:30:43 +00:00
b09167f33d acl: The ACL plugin.
This is the commit from the accumulated work in the github ACL branch,
to move it to gerrit.

Change-Id: I85a6b0df0d3dd3c3c7588e92a1e22c553e4b6ef7
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2016-12-06 08:18:53 +00:00
Jan
65209ed18c test: l2bd instance multi-context correction
- small correction of docstrings
- fix of create_pg_interface

Change-Id: I1958bd5ddaddaa2f7e6cbb18b0076e59e86d1e68
Signed-off-by: Jan Gelety <jgelety@cisco.com>
2016-12-05 23:32:03 +01:00
Jan
cf3658da71 Update CSIT tests 161128 -> 161204
- update of CSIT operational branch to be used for VPP-patch test

Change-Id: I84bfb828403a32087de3341f27c3e9a04292ca8b
Signed-off-by: Jan <jgelety@cisco.com>
2016-12-05 18:45:36 +00:00
7bb873a4cc make test: fix missing log/packet messages
Change-Id: Idb3119792943664748c4abc3829ad723f4156dfe
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-12-05 18:44:45 +00:00
86fb04db3e All mcast and All class E have /4 not /8 subnet masks
Change-Id: I29e54014f43f0b0ce087380b2318fe623d879204
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-05 18:43:24 +00:00
6d963c272c Move interface APIs to vnet/vnet/{interface.api,interface_api.c}
Change-Id: If3f0f73ad1c1d54ac69122052c977eb83a9e16eb
Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-05 15:33:51 +00:00
6dcda02dd8 Fix l2.api patch in jvpp Makefile
Change-Id: Ic9a494725afde2e3507dda5b42c69680c20f090a
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-12-05 14:06:35 +00:00
d162f3dcfd api: set interface MTU API (VPP-442)
Change-Id: I67178f2703febb8ad3eb011606cb8a86fab5ee94
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-12-05 12:54:10 +00:00
ff82ed6ccf Fix crash in debug mode when call ethernet_register_l3_redirect()
Change-Id: I1c2a13663ec75460cd28ea8593aa8de3f27e47b9
Signed-off-by: jerryian <gu.jian1@zte.com.cn>
2016-12-05 10:53:49 +00:00
b46227a6df api: enable Java API generation for l2.api (VPP-438)
Change-Id: I867c2f90d812007b874502d2aa60f09e40650941
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2016-12-05 10:51:58 +00:00
f06aea5c72 Locally generated packet go through lookup/load-balance - locally-generated is an attribute of the packet and checked where necessary
Add a flag to the vnet_buffer to indicate a packet is locally originated. Then in the rewrite nodes we can check this flag and not perform the TTL decrement. The switch path cost is expected to be fractions of a clock - the flags will be hot in the cache.
The cehcks are necessary to due the requirements that VPP must be able to emit an IP packet with TTL=255.

Change-Id: Ieb9cf06e34df54fd5c950293de8b665016295c51
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-05 09:20:26 +00:00
072f8debf2 Variable-message-length tracing support, VPP-370
Clean up several message handlers which spuriously depended on having
a vlib_main_t * pointer passed as a second argument. That definitely
doesn't happen when replaying an api trace...

Change-Id: Id4cf9745f770933566cb13698ee779333ee35d79
Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-05 09:19:43 +00:00
e3371afc8a Fix vpp crash when generating jumbo packets
Change-Id: Ie1832f2b5df9f9f7ba2f0f406116e11014d3ac21
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-12-05 09:18:57 +00:00
c90dfdcf4f Fix ICMP echo reply punt path
Add ICMP echo reply punt logic in ip[46]-icmp-echo-reply (ping) nodes.
ICMP echo reply packets corresponding to the locally (VPP) originated
ICMP echo requests are still dropped as before. Rest of the (unknown)
ICMP echo reply packets are pushed to the “error-punt” node.

Also added ICMP echo packet (id/seq) trace information

Change-Id: I998198430dedc9b4d771b6aff2a97f18598663f9
Signed-off-by: Alexander Popovsky <apopovsk@cisco.com>
2016-12-05 09:18:34 +00:00
9dfd3383e5 Fix crash whith bonded ethernet / DPDK 16.11
In DPDK 16.11 bonded PMD is still using old naming ‘rte_bond_pmd’.
See: dpdk-16.11/drivers/net/bonding/rte_eth_bond_api.c
Fixed crash when VPP is generating a name for ‘unknown’ non-PCI interface

Change-Id: I59e15f009e1a11949a19abf5234d09425a81c6ce
Signed-off-by: Alexander Popovsky <apopovsk@cisco.com>
2016-12-04 16:04:06 -08:00
Jan
00dad123ab test: l2bd instances multi-context test (CSIT-479)
- add/update/delete L2BD instances and verify results by API
  command bridge_domain_dump and by traffic where applicable

Change-Id: Ic9d7f7b5f6f10e5df7053f27cbc87f653704dab1
Signed-off-by: Jan <jgelety@cisco.com>
2016-12-02 21:34:43 +00:00
3b222a35e2 Coverity errors in MPLS code
Change-Id: I3f98e3c30e29198cb8701bfb846ce194b7250ed7
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-02 20:52:56 +00:00
df1059f057 remove CLIB_DEBUG conditional in fib_protocol_t
Change-Id: I179941fe615935e63c6f4eacf1193c6bfab6631d
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-02 20:52:27 +00:00
f468e23da6 api: L2 XConnect API (VPP-438)
Change-Id: I0a86184391723675488a5eb517c375f67940f5b5
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-12-02 16:59:03 +00:00
8b2247d247 interfaces: make no_flatten variant of inteface_ouptut fn default
Flatten variant was used only by old native drivers.

Change-Id: If206c6c8b4f10843d60f908c3acb4e8db83ce03d
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-02 16:02:44 +00:00
143faaa345 Coverity warning be gone, VPP-486
Change-Id: I72dc2eca558b4a28ade75f0a6d91840b48630543
Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-02 15:56:32 +00:00
4933168df3 snat: fix 1:1 NAT with multiple workers
Assign worker when static mapping is created.

Change-Id: I204e486e2ba5d1ef8e357759c35ba92a25a9a097
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2016-12-02 14:42:26 +00:00
dcbc86a8af Initialize the UDP checksum, or no supper
Change-Id: I542fbe9ccdf83ee220080b2506b38016359e0ce5
Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-02 14:20:53 +00:00
0529a743cc make test: handle exceptions from VppPapiProvider.__init__
Change-Id: I3c0372d5d09d554ad4ebe0adfa97c111571f628a
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-12-02 14:20:29 +00:00
beb4bf7df8 Augment Vxlan to support NSH-Proxy
PatchSet 9: add range check for decap_next_index
PatchSet 6: delete runtime range check

Change-Id: I415e156d05d09d2ff34f6578924f0b243058f464
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2016-12-02 14:16:02 +00:00
dce0545441 buffers: fix vlib_buffer_copy
memcpy should happen after current_data is set.

Change-Id: I838f61b54d15a8bb55d54f770f47fb4d58d071cb
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-02 14:15:02 +00:00
152e21dda6 feature: add interface-output arc
Change-Id: Ifea275a312e0f2474cdc3a336ac51ea83e403c74
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-02 14:14:50 +00:00
a03f4efa92 Python API: Support for per message CRC and API split.
These changes are incompatible with Python VPP API 1.2

There is now a new VPP Class and it can be used like:

from vpp_papi import VPP
jsonfiles = []
for root, dirnames, filenames in os.walk('../../../build-root/'):
    if root.find('install-') == -1: continue
    for filename in fnmatch.filter(filenames, '*.api.json'):
        jsonfiles.append(os.path.join(root, filename))

vpp = VPP(jsonfiles)
rv = vpp.show_version()
print('RV', rv.program.decode().rstrip('\0x00'))
vpp.disconnect()

Change-Id: Ic92d226de2cf3626e750404012247e7fc24fb7fc
Signed-off-by: Ole Troan <ot@cisco.com>
2016-12-02 13:35:46 +00:00
58290ea2f6 Fix dpdk_validate_rte-mbuf for chained buffers
Change I4ad40f398f7b5cf introduced a bug with chained buffers.
This patch should fix it.

Change-Id: Ia409d5eb90fcd6d7ff3c7da0836edfd2eb25998b
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-12-02 12:25:09 +00:00
9dd34e00ed api: fix inconsistent behaviour when adding l2fib filter entry (VPP-147)
Inconsistency when adding L2 fib entry using CLI and API (doesn't work)

Change-Id: I6b58d8a4c444d2712d1a4c225cea5eb5189c355f
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-12-02 11:53:25 +00:00
21da6ce025 feature: introduce feature arc end nodes
This change allows us to keep feature path disabled
until 1st feature is enabled. Enabling 1st feature also means
that end feature node is enabled helping feature arc tenants
to reach the end.

Change-Id: Idbd64e681bd2b42e7c67612074649e5ae51f46e6
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-02 11:19:02 +00:00
ad422ed7ea MPLS infrastructure improvments
- deprecate MPLSoEth and MPLSoGRE; replace with generic MPLS tunnel.
- deprecates CLI 'mpls encap ..'; replace with addition of MPLS out label to a route/tunnel.
- support for MPLS 'routes', e.g. MPLS x-connects.
 - deprecates CLI 'mpls decap ..'; replace with 'mpls route .. '

Change-Id: Ibda46544912f880d0200f22bf9ff9b52828fcc2f
Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-02 11:09:36 +00:00
caffe0980a Fix wrong indentation in vppctl script
Change-Id: I6c67df0cef53f93161e3d6b697c4d0fdc1fee8a7
Signed-off-by: Andrew Li <zhaoxili@cisco.com>
2016-12-02 11:07:09 +00:00
f14e3bf7b2 API: Packaging of JSON files.
Change-Id: If041b6faf1a091d4758b514f0a8cd800ee0e6a89
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Ole Troan <otroan@ot-vpp.cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
2016-12-02 09:11:11 +00:00
7be864ad0d Add a 64-byte interface "tag" for vhost and tap interfaces
This patch should dispose of spurious objections around interface tag
requirements, currently in use as excuses not to support the vpp ML2
plugin.

Add "u8 tag[64];" to the sw_interface_details message sent by vpp to
control-plane clients. Add u8 tag[64] to the create_vhost_user_if and
tap_connect APIs.

Added debug CLI to set/show/clear the interface tag on any vnet sw
interface. Added the sw_interface_tag_add_del API to set/clear
tags on any vnet sw interface.

There can be no expectation of "tag atomicity" with respect to
physical hardware. Vpp discovers devices before establishing a
control-plane connection.

This patch upload verifies using the csit oper-161128 branch

Change-Id: If8520119e7a586c5ccf0fdda82484ac205622855
Signed-off-by: Dave Barach <dave@barachs.net>
2016-12-01 22:27:31 +00:00
e245d5ecef "Update CSIT tests 161120 -> 161128""
This reverts commit b5388a5319.

Change-Id: I07160d08e469417933b3da3466ce856ab673e955
Signed-off-by: Peter Mikus <pmikus@cisco.com>
2016-12-01 22:24:10 +00:00
37682e1237 Add vxlan-bypass feature to IP4 forwarding path
Added vxlan-bypass feature which can be enabled on the underlay
interface which receive VXLAN packets to accelerate VXLAN decap
processing. The CLI to enable it is:
    set interface ip vxlan-bypass <interface> [del]
With this feature enabled on an interface, there is an overhead for
non-VXLAN packets at about 13 clocks per packet.
The API is created to support vxlan-bypass for both VXLANoIPv4 and
VXLANoIPv6. With this change, vxlan-bypass is only implemented for
IPv4 forwarding path.

Change-Id: Ica7239f642010b231eade7fd5009aa4b42c119d3
Signed-off-by: John Lo <loj@cisco.com>
2016-12-01 19:34:12 +00:00
436d06b1c7 ARP un-unmbered called when no interfaces are unnumbered
Change-Id: I4bb60d6382f0955dbf4848225a9fd6985b906fbc
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2016-12-01 11:28:35 +00:00