2431 Commits

Author SHA1 Message Date
Christophe Fontaine
38cfe98d4e Fix typo for non x86 platforms.
Change-Id: Ic31b388cb972fb5f8a3fc42a5412401c3ee3e487
Signed-off-by: Christophe Fontaine <christophe.fontaine@enea.com>
2017-07-13 14:34:02 +00:00
John Lo
b2fd6cb586 Fix crash with worker threads on 4K VXLAN/BD setup (VPP-907)
Cleanup mapping of interface output node for the l2-output node
when interface is configured to L2 or L3 modes. The mapping is
now always done in the main thread as part of API/CLI processing,
instead of initiate mapping in the forwarding path which can be
in the worker threads.

Change-Id: Ia789493e7d9f5c76d68edfaf34db43f3e3f53506
Signed-off-by: John Lo <loj@cisco.com>
(cherry picked from commit bea5ebf205e0bec922bf26c6c1a6a9392b4cad67)
2017-07-13 11:52:24 +00:00
Kristina Nevolnikova
8ae1873a3f Decrease steps necessary to upgrading RPM packages fixed
in %postun part and not call sysctl when VPP package is
upgrading provide by condition for sysctl --system
in %post part.

Change-Id: I549803864699e4a81cf589befe296d585e1c6d2b
Signed-off-by: Kristina Nevolnikova <knevolnikova@frinx.io>
2017-07-12 22:06:39 +00:00
Damjan Marion
10ae76627b Deprecate support for flattened output nodes
Change-Id: Id117e219146d9994340fb38c00233ea67db8929b
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-12 21:12:36 +00:00
Damjan Marion
690d26c6b9 dpdk: prefetch 2nd cacheline of rte_mbuf during tx
Change-Id: I0db02dd0147dbd47d4296fdb84280d0e7d321f3c
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-12 10:14:10 +00:00
Dave Barach
2c25a62cc1 Horizontal (nSessions) scaling draft
- Data structure preallocation.
- Input state machine fixes for mid-stream 3-way handshake retries.
- Batch connections in the builtin_client
- Multiple private fifo segment support
- Fix elog simultaneous event type registration
- Fix sacks when segment hole is added after highest sacked
- Add "accepting" session state for sessions pending accept
- Add ssvm non-recursive locking
- Estimate RTT for syn-ack
- Don't init fifo pointers. We're using relative offsets for ooo
  segments
- CLI to dump individual session

Change-Id: Ie0598563fd246537bafba4feed7985478ea1d415
Signed-off-by: Dave Barach <dbarach@cisco.com>
Signed-off-by: Florin Coras <fcoras@cisco.com>
2017-07-11 15:40:19 +00:00
Eyal Bari
8af1b2fdec L2INPUT:fix features mask cailculation
Change-Id: I84cea7530b01302a0adeef95b4924f54dc2e41ec
Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-07-11 14:59:30 +00:00
Damjan Marion
e1f08898ae memif: avoid double buffer free
Change-Id: I902f54618c4e1f649af11497c1cb10922e43755a
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-11 12:05:19 +02:00
Matus Fabian
3bb5baf9f2 SNAT: fixed bug in fallback to 3-tuple key for non TCP/UDP sessions
Change-Id: I1c4d5f92ec841b1cfe1a33eab4bb94e4001d0411
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2017-07-11 07:48:57 +00:00
Eyal Bari
75e2f2ac39 API:fix arp/ND event messages - remove context
context causes the message to be treated as a reply by the python API

Change-Id: Icf4d051a69f5a2cb9be5879accfe030ebcd650a8
Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-07-10 19:39:21 +00:00
Damjan Marion
04a7f05e91 vlib: store buffer memory information in the buffer_main
Currently, buffer index is calculated as a offset to the physmem
region shifted by log2_cacheline size.

When DPDK is used we "hack" physmem data with information taken from
dpdk mempool. This makes physmem code not usable with DPDK.

This change makes buffer memory start and size independent of physmem
basically allowing physmem to be used when DPDK plugin is loaded.

Change-Id: Ieb399d398f147583b9baab467152a352d58c9c31
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-10 19:35:57 +00:00
Alexander Kotov
28160f3848 VPP-904: fixes zero length CLI parameters parse
Change-Id: I21fbc9aff2b97a8b3f4cbed202c00b6d84557a6e
Signed-off-by: Alexander Kotov <kot@yandex.ru>
2017-07-10 17:03:19 +00:00
Damjan Marion
e2b3493029 memif: mask interrupts on startup if we are in the polling mode
Change-Id: Ief02eb1109a1bc463665d9747e9fa4e0c0e3d7e0
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-10 16:24:16 +00:00
Damjan Marion
191a1a407e vlib: fix issues with PCI handling code
- PCI devices not properly discovered
- vlib_pci_bus_master_enable () not working

Change-Id: I7433ab1b19b890b8900635b43037b9a2017a1921
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-10 15:42:27 +02:00
Chris Luke
bb18ee6f1c format: Check for NaN when rendering doubles
- The result of 0.0/0.0 was being rendered as a lot of
  zeroes in the integer portion, as in this example:

  DBGvpp# show physmem
  0: 16 objects, 576k of 582k used, 3k free, 0 reclaimed, 2k overhead,
  16380k capacity
       alloc. from small object cache: 0 hits 0 attempts (0.00%) replacements 0
       alloc. from free-list: 0 attempts, 0 hits (0.00%), 0 considered (per-attempt 0.00)
       alloc. from vector-expand: 16
       allocs: 16 73643.06 clocks/call
       frees: 0 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00 clocks/call

- Add two macros to vppinfra/math.h that use compiler builtins to check
  for NaN and Infinity and then use them in format_float().

Change-Id: Iccc03997e6e33d6b888d1e7e20cd78df0cfd02e8
Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-07-09 14:43:17 -04:00
Ole Troan
4df9716515 API: Add Python3 support to vpp_papi.py
Change-Id: I0657b3f7578eb1b4d9a1ecabc14dc0f0e4647c65
Signed-off-by: Ole Troan <ot@cisco.com>
2017-07-08 23:11:43 +00:00
Steve Shin
042a621b90 lldp packet transmission on a bonded interface
LLDP packets are dropped at interface output node if each slave's link
is configured as the LLDP interface. The admin state is configured and
managed by the bonded interface, so slave link's state is down by default.
The checking for the admin state UP should be ignored for the slave link.

Change-Id: I06ca250f42fcb8cc50e0ea3a3817a2c5b56865df
Signed-off-by: Steve Shin <jonshin@cisco.com>
2017-07-08 14:00:49 +00:00
Eyal Bari
9a1ae1ac76 ETH:optimized double is_tagged check
a double version of is_tagged, uses "free lanes" in _mm_cmpeq_epi16
to check a second tag

this code was not yet tested for performance

Change-Id: I640017e1cc75c85a33d196ee911a7e4a512d9849
Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-07-07 16:40:01 +00:00
Matus Fabian
7968e6cad5 SNAT: Fallback to 3-tuple key for non TCP/UDP sessions (VPP-884)
Change-Id: I4868ff6e81c579b29d3ea066976ae145f8b83e9e
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2017-07-07 07:04:42 +00:00
Dave Wallace
7b749fe890 Unlink /dev/shm files on application detach.
Change-Id: Ieb5522cd5cb27bcbce808d4cd6df5248716da43c
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2017-07-06 23:28:27 +00:00
Neale Ranns
4729b1ec83 DHCP complete event sends mask length
Change-Id: I4a529dfab5d0ce6b0bbc0ccbbd89c6b109dbf917
Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-07-06 20:52:58 +00:00
Ole Troan
1d7d2ab718 VPP-902: LISP-CP: Wrong size in one_l2_arp_entries_get message.
Change-Id: I56bf6b46527f9465d78ed7c08b6e216e50c135ec
Signed-off-by: Ole Troan <ot@cisco.com>
2017-07-06 17:15:08 +00:00
Damjan Marion
9b2cca99e2 dpdk: add FiftyGigabitEtherenet interface support
Change-Id: Ied8b26179cdf4add34440a9c396cb821716cfb8e
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-06 13:29:46 +00:00
Steven
9d6d9894b1 devices: show interface rx-placement displays the wrong information (VPP-894)
show interface rx-placement somtimes displays the wrong interface names.
This happens when there exists subinterfaces in VPP.

The problem is due to the function show_interface_rx_placement_fn is calling
format_vnet_sw_if_index_name with hw_if_index instead of sw_if_index.

VPP has the concept of sw_if_index and hw_if_index. Each serves a different
purpose. When there is no subinterfaces, both hw_if_index and sw_if_index
may happen to have the same value. But don't count on it. When the API calls
for sw_if_index, we must pass the sw_if_index although the hw_if_index has
the same type which the compiler does not catch. Passing hw_if_index for an
API which requires sw_if_index may have an unpredictable result such as
described in the VPP-894 and sometimes it may even crash if the particular
index does not exist.

Change-Id: I76c4834f79b88a1c20684fcba64f14b2da142d77
Signed-off-by: Steven <sluong@cisco.com>
(cherry picked from commit bafa4d048439fdbcc0bd577e43a2784d1b89bfc5)
2017-07-06 13:27:25 +00:00
Chris Luke
475674ee5a unix: mkdir VPP_RUN_DIR before opening a socket in it
Change https://gerrit.fd.io/r/#/c/7230/ added a Unix domain
CLI socket in the default startup.conf; however unless you
had previously run VPP with the DPDK plugin enabled the
directory that it is created in. /run/vpp, would not exist
and startup would fail. This directory is typically hosted
in a tmpfs ramdisk and is thus ephemeral.

This patch adds a function that attempts to mkdir VPP_RUN_DIR
and uses it in both the DPDK plugin and the CLI code if the
CLI socket is to be created in that directory.

Change-Id: Ibbf925819099dce2b5eb0fa238b9edca1036d6fd
Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-07-06 13:26:23 +00:00
Damjan Marion
31e59d9b01 vppinfra: revert clib_memcpy optimization
Looks like some compiler versions are producing wrong code when we are
copying 9-16 bytes so reverting back to the original code.

Change-Id: I74b5fa54a3b01f6288648f1cb0926030edd3b26f
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-07-06 13:25:46 +00:00
John Lo
8b81cb4335 Send GARP/NA on bonded intf slave up/down if in active-backup mode
If a bonded interface is in active-backup mode and configured with
IPv4 and/or IPv6 addresses, on slave interface link up/down, send
a GARP packet if configured with an IPv4 address and an unsolcited
NA if configured with an IPv6 address. These packets can help with
faster route convergence in the next hop router/switch.

Change-Id: I68ccb11a4a40cda414704fa08ee0171c952befa2
Signed-off-by: John Lo <loj@cisco.com>
2017-07-06 13:24:26 +00:00
Billy McFall
f6e3ad0f5e VPP-900: VPP is released under the Apache 2.0 License (ASL 2.0). Update RPM specfile to reflect the proper license.
Change-Id: I9e8d1643ea65afd91a0cd5ad9545248575e32617
Signed-off-by: Billy McFall <bmcfall@redhat.com>
(cherry picked from commit 01d2b4b13ad719934e1e6999f9ed6c7c36a815ff)
2017-07-05 19:56:17 +00:00
Chris Luke
7447d07719 Buffer name inconsistently used a cstring/vec (VPP-901)
Spotted in the output of CLI command "show buffers", the name field
sometimes had trailing garbage, the hall sign of a string not being
terminated. In this case it was being inconsistently used as a cstring
or a vec.

- CLI printf needs %v to print the vec srring
- vlib_buffer_create_free_list_helper tried to use
  clib_mem_is_heap_object() to detect a vec object, wheras it should
  use clib_mem_is_vec()

Change-Id: Ib8b242a0c5a18924b8af7e8e1432784eebcf572c
Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-07-05 17:23:41 +00:00
Steve Shin
99a0e60eb6 Add API support for LLDP config/interface set
Add API methods to configure LLDP and set interface to enable/disable.
Also add port description TLV for LLDP.

Change-Id: Ib959d488c2ab8a0069f143558871f41fcc43a5d3
Signed-off-by: Steve Shin <jonshin@cisco.com>
2017-07-05 00:56:54 +00:00
Andrew Yourtchenko
a016216753 acl-plugin: VPP-897: applying of large number of ACEs is slow
When applying ACEs, in the new hash-based scheme, for each ACE
the lookup in the hash table is done, and either that ACE is added
to the end of the existing list if there is a match,
or a new list is created if there is no match.

Usually ACEs do not overlap, so this operation is fast, however,
the fragment-permit entries in case of a large number of ACLs
create a huge list which needs to be traversed for every other
ACE being added, slowing down the process dramatically.

The solution is to add an explicit flag to denote the first
element of the chain, and use the "prev" index of that
element to point to the tail element. The "next" field
of the last element is still ~0 and if we touch that
one, we do the linear search to find the first one,
but that is a relatively infrequent operation.

Change-Id: I352a3becd7854cf39aae65f0950afad7d18a70aa
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit 204cf74aed51ca07933df7c606754abb4b26fd82)
2017-07-04 11:59:14 +00:00
Eyal Bari
c86e592f9a TEST:add L2BD arp term tests
Change-Id: I42414da9663ecfc8dfe5baf3e6615cf3b9b02e22
Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-07-04 11:57:35 +00:00
Andrew Yourtchenko
130a75384f acl-plugin: fix acl plugin test failing sporadically (VPP-898)
The "acl_plugin" tests has one of the tests sporadically fail with the following traceback:

r.reply.decode().rstrip('\x00') UnicodeDecodeError: 'ascii' codec can't decode byte
0xd8 in position 20666: ordinal not in range(128)

This occurs in the newly added "show acl-plugin table" debug CLI.
This CLI has only the numeric outputs, so the conclusion is that it is
the incorrect termination (trailing zero) that might be most probably
causing it. The other acl-plugins show commands also
lack the zero-termination termination, so fix all of them.
The particularity of this command vs. the other acl-plugin debug CLIs
is that the accumulator is freed and allocated multiple times,
this might explain the issue is not seen with them.

Change-Id: I87b5c0d6152fbebcae9c7d0ce97155c1ae6666db
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
(cherry picked from commit be055bd719559fc79d8a4c06479497c4c0bfae93)
2017-07-04 08:57:54 +00:00
Matus Fabian
7c0aecc9e3 SNAT: fix failing test_session_limit_per_user (VPP-896)
Change-Id: Idf46a03803125babd9bb880363686359fbcca27d
Signed-off-by: Matus Fabian <matfabia@cisco.com>
(cherry picked from commit 860af5ad2b023f9c57d622a7a9d3bd0099e480b1)
2017-07-03 17:24:19 +00:00
Klement Sekera
58eb866b15 Refactor API message handling code
This is preparation for new C API. Moving common stuff to separate
headers reduces dependency issues.

Change-Id: Ie7adb23398de72448e5eba6c1c1da4e1bc678725
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-07-01 13:54:28 +00:00
Damjan Marion
b1dab65a08 top-level Makefile improvements
- auto-execute startup.vpp file if exists
- add DPDK_CONFIG=<string> to speficy custom config for autogenerated
  startup.conf, e.g. DPDK_CONFIG="no-pci"
- add DISABLED_PLUGINS=<comma separated list> option

e.g.

make DISABLED_PLUGINS=dpdk,acl run

or
export DISABLED_PLUGINS=dpdk,acl
make run

Change-Id: Ib0891d27aeae16b69b67c4c3e893bb3dbde5e7e1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-06-30 18:17:43 +00:00
Dave Barach
12c6fdc551 VPP-893: handle multiple simultaneous event registrations
Change-Id: I8cd90820624987dbef848935e2de86fa66a86c17
Signed-off-by: Dave Barach <dave@barachs.net>
2017-06-30 16:24:18 +00:00
Neale Ranns
bb620d74b2 VPP debug image with worker threads hit assert on adding IP route with traffic (VPP-892)
When stacking DPOs the VLIB graph is also updated to add the edge between the nodes, if this edge does not yet exist. This addition should be done with the workers stopped.

Change-Id: I327e4d7d26f0b23eb280f17e4619ff2093ff7940
Signed-off-by: Neale Ranns <nranns@cisco.com>
(cherry picked from commit c02bd03ddf5eec9e9c79811360685f13e4ba8ee1)
2017-06-30 13:55:23 +00:00
Jakub Grajciar
3e01588bf3 memif: API message handler registration bug-fix
- removed memif details message from memif API

Change-Id: I21185e7678f375cc10639cdbc3ad2fd84bc95459
Signed-off-by: Jakub Grajciar <grajciar.jakub@gmail.com>
2017-06-30 13:59:23 +02:00
Klement Sekera
3d62a7f0b9 LLDP: properly parse lldp cmds from startup config
Change-Id: I0e6c86bd923fcf7cf16f948b9869a5927e6d3745
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-06-29 11:41:36 +00:00
Christophe Fontaine
26054ea1d1 Fix SIGBUS on aarch64
A call to 'clib_smp_swap (&((dq)->interrupt_pending), 0)' was creating
a SIGBUS.
Instead of making dq->interrupt_pending aligned on 64bits, we reduce the size
from uword (u64) to u32, as the number of pending interrupts will never
go above max of u32.

Change-Id: Ifa5a6d3b7adee222329a671be01305cf50853b33
Signed-off-by: Christophe Fontaine <christophe.fontaine@enea.com>
2017-06-29 11:40:45 +00:00
Dave Barach
5c20a0131a switch vlib process model to tw_timer_template timer impl
Change-Id: I36bb47faea55a6fea7af7ee58d87d8f6dd28f93d
Signed-off-by: Dave Barach <dave@barachs.net>
2017-06-28 19:12:10 +00:00
Eyal Bari
31a71ab497 L2-LEARN:fix l2fib entry seq num not updated on hit (VPP-888)
fixed instability in l2bd_multi_instnce test - sometimes failing with extra
packets captured

it appears l2-learn was not updating hit entries but rather a copy of them.

if the ager did not have a chance to run before the test was running the
learning cycle - entries were not updated with the packet's seq num - causing
packets to flood when hitting the stale seq_num in l2-fwd - hence the extra
packets

fixed handling of filter entries

revert workaround for instability in test

Change-Id: I16d918e6310a5bf40bad5b7335b2140c2867cb71
Signed-off-by: Eyal Bari <ebari@cisco.com>
(cherry picked from commit 25ff2ea3a31e422094f6d91eab46222a29a77c4b)
2017-06-27 12:44:28 +00:00
Ole Troan
ed92925f4d FLOWPROBE: Add flowstartns, flowendns and tcpcontrolbits
- fixed problem with tcp_flag
- changed flowtimestamp into NTP format
Change-Id: I4ef05d6c69c5c078a0c80d59c5ccb0c85b924ba6
Signed-off-by: Ole Troan <ot@cisco.com>
2017-06-27 12:01:34 +02:00
Jan Gelety
75c3995b21 Update CSIT tests 170622 -> 170626
- update of CSIT operational branch to be used for VPP-patch test

Change-Id: I3e429f3884953908209e5f2d4e7a254dc7ccb720
Signed-off-by: Jan Gelety <jgelety@cisco.com>
2017-06-26 21:48:26 +00:00
Ole Troan
c08b0965d7 VPP-889: MAP Stats API/CLI crashes when no domains.
Change-Id: Ib7824bfc08cb3c8f20258379e1a1f2c159c4f687
Signed-off-by: Ole Troan <ot@cisco.com>
2017-06-26 19:49:36 +02:00
Hongjun Ni
04ffd0ad83 VPP crash on creating vxlan gpe interface. VPP-875
Change-Id: I6b19634ecb03860a7624d9408e09b52e95f47aef
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2017-06-25 08:09:29 +00:00
Hongjun Ni
fcfa38d680 Add Maintainers for Vxlan-gpe feature
Change-Id: I3f42e9bbd816a6e2192cc65eeb10a4681cf9e29a
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2017-06-25 08:08:43 +00:00
Milan Lenco
5fa72c8f1f memif: If rx/tx_queues are unset, use default values
The standard behaviour for binary API is that zeroed arguments are
treated as if the default values were set. This way the configurator
does not need to know what default values are.
This, however, wasn't the case for rx_queues and tx_queues in
memif_create binary API message.

Change-Id: Ib588b472823f6bbb5ef12a798d68b0dda6dd2139
Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
2017-06-25 08:07:58 +00:00
Damjan Marion
aad20988b6 Rewrite vppctl in C
- removes python dependency
- removes vpp_api_test dependency
- communicates over unix socket
- properly detects terminal size and type
- responds on terminal resize

Change-Id: I46c0a49f9b5f9ef8a0a31faec4fc5d49aa3ee02e
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-06-24 15:14:14 +00:00