4156 Commits

Author SHA1 Message Date
John Lo
d018870d1b Allow arp-input node to learn IPv4 neighbors from GARP packets
Change-Id: I86019f4ff9b0c8c633638fa23341d8ce49099ba6
Signed-off-by: John Lo <loj@cisco.com>
2018-06-07 02:24:18 +00:00
Ian Wells
d0e812f2d4 Alter logging semantics for VPP PAPI object
Logging previously used a string name for the log level and changed
the system-wide log level based on this string name.  It now uses a
logging-module provided constant for the log level and changes its own
logger's level based on the name, and only if the level is provided.

This allows the logging to be more compatible with Pythonic usage,
where an external source may be used to dictate logging levels across
the system on a per module basis and should not be overridden.

Change-Id: Icf6896ff61a29b12c11d04374767322cdb330323
Signed-off-by: Ian Wells <iawells@cisco.com>
2018-06-06 19:10:54 +00:00
Steven
9f781d84b0 bond: send gratuitous arp when the active slave went down in active-backup mode
- Modify the API send_ip6_na and send_ip4_garp to take sw_if_index instead
of vnet_hw_interface_t and add call to build_ethernet_rewrite to support
subinterface/vlan
- Add code to bonding driver to send an event to bond_process when the first
interface becomes active or when the active interface is down
- Create a bond_process to walk the interface and the corresponding
subinterfaces to send garp/ip6_na when an event is received.
- Minor cleanup in bonding/node.c

Note: dpdk bonding driver does not send garp/ip6_na for subinterfaces. There is
no attempt to fix it here. But the infra is now done and should be easy to
add the support.

Change-Id: If3ecc4cd0fb3051330f7fa11ca0dab3e18557ce1
Signed-off-by: Steven <sluong@cisco.com>
2018-06-05 11:09:32 -07:00
Andrey "Zed" Zaikin
439a122f3a lb api: correct byte order of new_flows_table_length argument
Change-Id: I3ac348a8cb1a515dfe1839eaa084c87719d282e1
Signed-off-by: Andrey "Zed" Zaikin <zed.0xff@gmail.com>
2018-06-05 17:32:13 +00:00
Ole Troan
73710c7da2 VPP API: Memory trace
if you plan to put a hash into shared memory, the key sum and key
equal functions MUST be set to constants such as KEY_FUNC_STRING,
KEY_FUNC_MEM, etc. -lvppinfra is PIC, which means that the process
which set up the hash won't have the same idea where the key sum and
key compare functions live in other processes.

Change-Id: Ib3b5963a0d2fb467b91e1f16274df66ac74009e9
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Ole Troan <ot@cisco.com>
2018-06-05 14:30:01 +00:00
Jerome Tollet
0b061112f7 VPP-1305: Add support for tags
Change-Id: I9e759037295fe675abe426e565a562b1ec1e7d33
Signed-off-by: Jerome Tollet <jtollet@cisco.com>
2018-06-05 10:14:38 +00:00
Neale Ranns
8f6e321862 BIER CLI show commands; no crash on non-existant objects (VPP-1303)
DBGvpp# sh bier disp entry
DBGvpp# sh bier disp entry 0
No such BIER disp entry: 0
DBGvpp# sh bier disp table
DBGvpp# sh bier disp table 0
No such BIER disp table: 0
DBGvpp# sh bier disp table 11
No such BIER disp table: 11
DBGvpp#

DBGvpp# sh bier bift
no BIFT entries
DBGvpp# sh bier bift set 0
no BIFT entries
DBGvpp# sh bier bift set 0 sd 0 bsl 0
no BIFT entries
DBGvpp#

DBGvpp# sh bier fib
No BIER tables
DBGvpp# sh bier fib 0
DBGvpp# sh bier fib 0 4

DBGvpp# sh bier fmask
DBGvpp# sh bier fmask 2
No BIER f-mask 2

DBGvpp# sh bier imp
DBGvpp# sh bier imp 0
No such BIER imposition: 0

Change-Id: Ibadac3441dd8a6d1b96bd9ee4358e28498875b95
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-06-05 06:34:34 +00:00
Dave Barach
473f46135c Configure or deduce CLIB_LOG2_CACHE_LINE_BYTES (VPP-1064)
Added configure argument "--with-log2-cache-line-bytes=5|6|7|auto"
AKA 32, 64, or 128 bytes, or use the inferred value from the build host.

produces build-xxx/vpp/vppinfra/config.h, which .../src/vppinfra/cache.h

Kernels which implement the following pseudo-file (aka x86_64) are
easy: /sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size

Otherwise, extract the cpuid from /proc/cpuinfo and map it to the
cache line size.

Change-Id: I7ff861e042faf82c3901fa1db98864fbdea95b74
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Nitin Saxena <nitin.saxena@cavium.com>
2018-06-04 22:24:48 +00:00
Florin Coras
1b25552ebb ip4: optimize ip4_local
"sh run" says the number of clocks for my tcp based throughput test
dropped from ~43 to ~23

Change-Id: I719439ba7fc079ad36be1432c5d7cf74e3b70d73
Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-06-04 17:05:01 +00:00
Milan Lenco
1f8697c4b6 Fix API trace dump for tapv2
Change-Id: Ib092da61ba037ea30c6f38ea692ef9f1ca0cd8e7
Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
2018-06-04 15:18:39 +00:00
Neale Ranns
f8db62a001 Remove unused GRE buffer meta-data
Change-Id: Ia8ef019742c13b1149916d51796cad6f50687162
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-06-04 15:15:06 +00:00
Eyal Bari
d3de756a8b flow:add enabled hw format function
Change-Id: Ide1f76e9207b6022d5258a119f8d59cca85651b5
Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-06-04 14:27:52 +00:00
Florin Coras
3a0325f9ca ip: save fib index for buffer in ip lookup
Avoids recomputing the fib index in ip local for locally delivered
packets and should incur no extra cost when forwarding packets.

Change-Id: Id826ffa8206392087327f154337eabc8a801b4d7
Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-06-04 11:09:25 +00:00
Jerome Tollet
61f7912466 fix usage string missing arg
Change-Id: I9710e9ed6ceff6c0b2de0bcf77f355762df88b58
Signed-off-by: Jerome Tollet <jtollet@cisco.com>
2018-06-04 09:16:23 +00:00
Neale Ranns
c16f6b34b6 Join the VAC read timeout thread
Change-Id: I5bcbae276f8ac23718c5afc859da222508d07ad7
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
2018-06-04 09:02:16 +00:00
Neale Ranns
d1812d023b Enable Position Independent Executable for production VPP
Change-Id: I0f81423b854be1dc456df696416e5f3747393208
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-06-04 08:01:24 +00:00
Damjan Marion
65165072d4 dpdk: buffer free optimizations
~5 clocks/packet improvement...

Change-Id: I1a78fa24dcd1b3ab7f45e10b9ded50f79517114a
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-06-03 14:46:12 +02:00
Damjan Marion
8855386411 dpdk: improve buffer alloc perfomance
This is ~50% improvement in buffer alloc performance.
For a 256 buffer allocation, it was ~10 clocks/buffer, now is < 5 clocks.

Change-Id: I97590e240a79a42bcab5eb26587fc2d11e6eb163
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-06-03 12:01:12 +00:00
Neale Ranns
e8d7ff5f87 Interface Tag: memset field in VOM, clear the tag in VPP on interface delete
Change-Id: Id97de732b5952d5d86202e7749c9e81cf8dbed87
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-06-03 02:21:26 +00:00
Damjan Marion
ba614d63a8 AVF input node rework
Change-Id: Ib121b24935d5c706cfba6e4b6d321086a38cad91
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-06-02 11:50:23 +02:00
Andrew Yourtchenko
4bc1796b34 acl-plugin: multicore: session management fixes
- implement a 1us purgatory for the session structures
  by adding a special connection list, where all connections
  about to be deleted go.

- add per-list-head timeouts updated upon the list enqueue/dequeue
  for connection idle management

- add a "unused" session list with list ID#0, which should
  never be used unless there is a logic error. Use this ID
  to initialize the sessions.

- improve the maintainability of the session linked list
  structures by using symbolic bogus index name instead of ~0

- change the ordering of session creations - first reverse, then
  local. To minimize the potential for two workers competing for
  the same session in the corner case of the two packets
  on different workers creating the same logical session

- reduce the maximum session count to keep the memory usage the same

- add extra log/debug/trace to session cleaning logic

- be more aggressive with cleaning up sessions - wind up the
  interrupts from the workers to themselves if there is more
  work to do

Change-Id: I3aa1c91a925a08e83793467cb15bda178c21e426
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2018-06-02 06:01:42 +00:00
Florin Coras
b2371c25fe session: improve disconnect handling
If the caller is the session owning thread or the main thread with a
worker barrier sync (cli/api) add an event to the pending disconnects
vector in the session node and entirely avoid using the event queue.
Useful for bursts of disconnects (like an app detach).

If disconnects come from a processes, be willing to retry enqueueing the
disconnect to the event queue multiple times.

Change-Id: Ieece1f1091b713f94c41c703b6e805bc8498816a
Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-06-01 21:18:45 +00:00
John Lo
7dbd7265da Improve L2FIB delete entry handling and "show l2fib" CLI options
Improve deletion of L2FIB MAC entry using l2fib_add_del API. If
sw_if_index param specified in th API is non-zero, check that its
value match that of the MAC entry to proceed with deletion.

Improve "show l2fib" CLI to allow display of all entries, learned
entries only, or added ovia CLI/API entries only. For added entry,
show "no" under the age column to indicate entry does not age.

Change-Id: I0bd2582c2b6bac268e551e4f8ca6dab2be4400ad
Signed-off-by: John Lo <loj@cisco.com>
2018-05-31 23:30:19 +00:00
Rui Cai
a059a000f8 dpdk: Decoupling the meaning of xd->device_index in dpdk_plugin
Prior to the change, dpdk plugin assumes xd->device_index is
used both as index for internal dpdk_main->devices array
and DPDK port index to call into DPDK APIs.

However, when running on top of Failsafe PMDs,
DPDK port index range may no longer be contiguous (as noted:
http://dpdk.org/ml/archives/dev/2018-March/092375.html
for related changes in DPDK). Because this, dpdk plugin can
no longer iterate through all available DPDK ports
with a for 0->rte_eth_dev_count() loop and the assumption of
device_index no longer holds.

This is part of initial effort to enable vpp running over
dpdk on failsafe PMD in Microsoft Azure(3/4).

Change-Id: I416fd80f2d40e12e139f8f3492814da98343eae7
Signed-off-by: Rui Cai <rucai@microsoft.com>
2018-05-31 22:01:15 +00:00
Ping Yu
cb91e603bc Fix TLS issue to load certification and key
Change-Id: If1ef2d4bc6f90a4d4b6a345c63723117834c6504
Signed-off-by: Ping Yu <ping.yu@intel.com>
2018-05-31 18:44:17 +00:00
qchang
aa8f63ca4b fix socket send() return size check
Change-Id: I098c671607c75cb34d04f421b4d16b73f7b47392
Signed-off-by: qchang <qing.chang1@huawei.com>
2018-05-31 13:27:15 +00:00
Zhiyong Yang
462072a1fc fix missing void pointer explicit type cast
Change-Id: I5098e5d966abc44db045783883424b63083f08ee
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
2018-05-31 09:16:42 +00:00
Ole Troan
c4f2ef7d7e VPP-1299: Reset uid/gid on shared memory segment if client starts first.
Change-Id: I2b5bc7d864f8829e1dff63fec3c9484078601309
Signed-off-by: Ole Troan <ot@cisco.com>
2018-05-31 07:50:44 +00:00
Damjan Marion
c0c919c6fa Add src/vlib/config.h.in template
Change-Id: I9b81dcb9250cab09b88f161366da9475a7ee5dd6
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-31 00:02:24 +00:00
Sirshak Das
40c6e1d8e0 Fix clang compilation on aarch64: value size does not match register size.
Fixes clang error: value size does not match register size specified
by the constraint and modifier

Change-Id: I83e69445eacd6570607334e086a8582addb5bdfc
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
2018-05-30 11:36:05 +00:00
Klement Sekera
ff4ba35f18 make test: VPP-1288 fix bogus sw_if_index values
Change-Id: I9a61538f4c832f09269c6ddfcd55f909003b8694
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-05-30 11:34:37 +00:00
Damjan Marion
ffe9d21b07 vppinfra: explicitely state for signed types that they are signed
This fixes some compilation warnings with clang on AArch64.

Change-Id: Idb941944e3f199f483c80e143a9e5163a031c4aa
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-30 10:37:39 +00:00
Damjan Marion
ed256991f3 dpdk: rename port_id to *_instance_num
port_id be used for dpdk port_id

Change-Id: Ia7d8cdc5dec2ad658c11f9c0f3ef8005a470ac3c
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-30 10:36:54 +00:00
Sirshak Das
b0861820b9 Fix clang compilation on aarch64: sizeof operator error.
Fixes clang error: argument to 'sizeof' in 'memcpy' call is the same
pointer type 'unformat_input_t *' (aka 'struct _unformat_input_t *')
as the source; expected 'unformat_input_t' (aka 'struct
_unformat_input_t') or an explicit length.

Change-Id: If00303343b10fe1732e477549727a41445edf410
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
2018-05-30 09:18:18 +00:00
Sirshak Das
6495c4b8a1 Fix clang compilation on aarch64: replace -pie with -fPIE for dpdk compilation.
Fixes clang error: argument unused during compilation: '-pie'
by replacing it with -fPIE

Change-Id: Ic89a5e325e019d4d794d35556a07ebcf0b718dd3
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
2018-05-30 08:23:07 +00:00
Neale Ranns
374399992f IPv6 for-us/receive multicast routes fix
Change-Id: I5e29e16b4d45411b1a7c177b8d7156c5baefe6a1
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-05-30 08:17:29 +00:00
Florin Coras
36ec1f5fc2 session: fix v6 unbinds that use uri api
This api only supports default tables but v6 and v4 default tables are
different.

Change-Id: I7fe39251af99082278e84d7411511bdeca34e609
Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-30 06:41:13 +00:00
Florin Coras
7ce3d13cab session: fix session table retrieval
Change-Id: If37d644a26132c42a04927f612eec5e891066451
Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-30 04:55:19 +00:00
Damjan Marion
f264f0831f bonding: fix packet trace in bond-input
Change-Id: I00fc4a4553dabed7ef099227b8253ed4916ea5e4
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-30 00:03:55 +02:00
Damjan Marion
5ffc8858e7 Revert "dpdk: set dmamap iova address value according to eal_iova_mode"
This breaks VFIO operation.

This reverts commit d3b3baa4f8e9e4d95264aff16fe85434ef8061bd.

Change-Id: I2482e0da2d1ebfc365d13668c4b992b040f561b4
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-29 22:48:50 +02:00
Damjan Marion
812b32dd8f Add VLIB_NODE_FN() macro to simplify multiversioning of node functions
Change-Id: Ibab5e27277f618ceb2d543b9d6a1a5f191e7d1db
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-29 17:00:26 +00:00
Mohsin Kazmi
04e0bb2ff0 af_packet: Add support for dump interfaces
Change-Id: I8d8ecc80edb7665125ba625a3ce7b30d2dea88f0
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-05-29 15:39:24 +00:00
chuhong yao
0353a4b332 fix Check style err
Change-Id: Ic7fd4d0f154a311d09409be2a6603e8460099efe
Signed-off-by: chuhong yao <ych@panath.cn>
2018-05-29 15:38:44 +00:00
chuhong yao
17b8efc7ab dpdk: Add PMD type for Cavium LiquidIO II CN23XX
1、Adding PMD type for support Cavium LiquidIO II CN23XX NIC;
2、Our company is using VPP + DPDK +Cavium LiquidIO II CN23XX NIC,
Unfortunately, the latest VPP code does not support
Cavium LiquidIO II CN23XX pci.
So I increased the PMD type to support LiquidIO NIC,
and can run normally, we most subsequent projects are
based on VPP + DPDK + Cavium LiquidIO II CN23XX NIC model,
so I hope VPP team can adopt this requirement, thanks a lot.

Change-Id: I604ae444d69b37c2e26962bfe4ccdfe983b75041
Signed-off-by: chuhong yao <ych@panath.cn>
2018-05-29 15:38:00 +00:00
Yoann Desmouceaux
1977a3488e Fixed vlib_buffer_clone with stale chained buffers
When calling vlib_buffer_clone() on a source vlib_buffer with no next
buffer but whose total_length_not_including_first_buffer hadn't been
properly zeroed out, the total_length_not_including_first_buffer of
the clone was set to a wrong value.

(see https://lists.fd.io/g/vpp-dev/topic/19869395)

Change-Id: I4b503ece804e3933bb259be4c2148f84dafbea3e
Signed-off-by: Yoann Desmouceaux <ydesmouc@cisco.com>
2018-05-29 15:37:28 +00:00
Sachin Saxena
0a77040fa0 dpdk: mempool priv intialization must be done before releasing buffers to pool
- Currently mempool priv size is getting initialized after releasing buffers
   to pool. This is causing mismatch in expected & real metadata size value
   and buffers are getting released with wrong offset. (when metadata offset
   is in use for a given platform)
 - Since private data size is 0 initially, metadata size don't include space
   for VLIB_BUFFER_HDR.

Change-Id: I780c4d518104631a3dcf192185bacf58b3598e65
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
2018-05-29 14:44:21 +00:00
Radu Nicolau
f706b8d79a ipsec: fix IKEv2 crash when rsa cert is used for authentication
Cause: EVP_MD_CTX object used but not initialized.

Change-Id: I390b2acf580f16415685563fa52e56717efc7be7
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
2018-05-29 11:48:35 +01:00
Matus Fabian
229c1aaf75 NAT44: code cleanup and refactor (VPP-1285)
Change-Id: I088163f10ae5515d7a9115781cc13ef563fafed5
Signed-off-by: Matus Fabian <matfabia@cisco.com>
2018-05-28 20:01:19 +00:00
Damjan Marion
2422317b4a Change optimizaton level from tree-vectorize to O3
Change-Id: Ia1b49d7fd5f32d9a5139df5df636b46264003a63
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-28 16:22:34 +00:00
Andrey "Zed" Zaikin
ff5aad76be add missing lb_put_writer_lock() to lb_vip_add() invalid args cases
Change-Id: I9343672c5765a5a4cb56c99fa5de176ddcac62c7
Signed-off-by: Andrey "Zed" Zaikin <zed.0xff@gmail.com>
2018-05-28 15:02:30 +00:00