vpp.git
4 years agoip: allow addrs from the same prefix on intf 20/21120/6
Matthew Smith [Wed, 7 Aug 2019 16:46:30 +0000 (11:46 -0500)]
ip: allow addrs from the same prefix on intf

Type: feature

Adding a prefix to an interface was not permitted if it overlapped
with another prefix on an interface which used the same FIB.

Loosen the restriction. Allow 2 or more addresses from the same
prefix on a single interface. Reference count the prefix to figure
out when a glean/connected route for the prefix needs to be added
or removed.

Added unit tests to check that the route is only removed when all
addresses in the prefix are removed from the interface.

Change-Id: I1a962ecb5e1ee65fc6d41f98a4cc097a51a55321
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
4 years agotcp: handle fin+rst+syn in closing state 12/21212/2
Florin Coras [Mon, 12 Aug 2019 02:49:05 +0000 (19:49 -0700)]
tcp: handle fin+rst+syn in closing state

Type: fix

Change-Id: I32d4d4a5de04e89087f4ab4a5c425eda572932a8
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agohttp_static: debug spew control, session expiration timers 31/21231/1
Dave Barach [Mon, 12 Aug 2019 12:05:39 +0000 (08:05 -0400)]
http_static: debug spew control, session expiration timers

Type: refactor

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I015390b703ef502b8b41efa08bff45e65b5eed83

4 years agohttp_static: tls support 93/21093/5
Dave Barach [Tue, 6 Aug 2019 21:38:13 +0000 (17:38 -0400)]
http_static: tls support

Type: refactor

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I45745e568cd943293d0015a61f67ec799b6804d8

4 years agocrypto: add '-maes' compile switch 91/21191/2
Benoît Ganne [Fri, 9 Aug 2019 12:07:23 +0000 (14:07 +0200)]
crypto: add '-maes' compile switch

AES intrinsics use builtins available only with the -maes and GCC 9 just
started to enforce it.

Type: fix

Change-Id: Ia6825ea3eae7191a4bfee47f9fa93fad16ccf76c
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agoquic: handle session migration notifications 11/21011/9
Aloys Augustin [Thu, 1 Aug 2019 13:22:07 +0000 (15:22 +0200)]
quic: handle session migration notifications

Rely on the migrate callback to move quic connections to follow the
underlying udp connection placement.

Change-Id: Ia1cf3a16187bbe48f5afb3d1f444427f288ff79c
Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
4 years agovlib: fix vlib_buffer_copy to preserve buffer flags bit 27/21127/2
John Lo [Wed, 7 Aug 2019 23:30:29 +0000 (19:30 -0400)]
vlib: fix vlib_buffer_copy to preserve buffer flags bit

Make vlib_buffer_copy() preserve buffer flags bit the same way as
that of vlib_buffer_clone() so both are consistent.

Type: fix

Signed-off-by: John Lo <loj@cisco.com>
Change-Id: I6c32aa1e88724b482ce2439d82019e690311b664

4 years agosession: allow closed transports to send 29/21129/9
Florin Coras [Thu, 8 Aug 2019 02:12:38 +0000 (19:12 -0700)]
session: allow closed transports to send

Type:fix

Transports like tcp may notify session layer of a close but they may
defer the connection's deletion (e.g., tcp time-wait). During that time,
transports may still want to send packets. So, unless the session has no
transport (transport-deleted state), allow the transport to send.

Change-Id: I3ae335c7b951ff64be8529a5e3f3ad790feddc84
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agotls: mark as no lookup transport 61/21161/3
Florin Coras [Fri, 9 Aug 2019 00:38:26 +0000 (17:38 -0700)]
tls: mark as no lookup transport

Type:fix

Also fix transport close while handshake is ongoing.

Change-Id: I004c56d2297d0847c2cb77202f8fba3edaacad29
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agotls: handle transport reset 32/21132/6
Florin Coras [Thu, 8 Aug 2019 04:39:27 +0000 (21:39 -0700)]
tls: handle transport reset

Type:fix

Change-Id: I5994fb53dc4b9fd58920b3d67472c38b41db27c2
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agogbp: add remote EP redirect to remote SEP unit test 34/21034/3
Benoît Ganne [Fri, 2 Aug 2019 14:36:35 +0000 (16:36 +0200)]
gbp: add remote EP redirect to remote SEP unit test

Type: test

Change-Id: I4dd685f9acd4d467e0967e6fdd428558ffc8b209
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agogbp: add unknown remote EP redirect unit test 65/20965/3
Benoît Ganne [Wed, 31 Jul 2019 12:15:57 +0000 (14:15 +0200)]
gbp: add unknown remote EP redirect unit test

Type: test

Change-Id: I1dfbeef08a4f112551450682fc4040820251485b
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agostats: create /run/vpp before stat socket bind() 04/20004/9
YohanPipereau [Thu, 6 Jun 2019 14:34:14 +0000 (16:34 +0200)]
stats: create /run/vpp before stat socket bind()

When VPP tries to bind to stats.sock it will complain about non-existing
/run/vpp directory.
/run/vpp is created before cli socket operations are performed.
The same should be done for stat socket.

Ticket: VPP-1708
Type: fix
Change-Id: I53d70939c8125d04a365ac51a6cbf8926dc52adf
Signed-off-by: YohanPipereau <ypiperea@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
4 years agoapi: vppapitrace JSON/API trace converter 32/20932/12
Ole Troan [Tue, 30 Jul 2019 13:38:13 +0000 (15:38 +0200)]
api: vppapitrace JSON/API trace converter

usage: vppapitrace.py [-h] [--debug] [--apidir APIDIR] {convert,replay} ...

optional arguments:
  -h, --help        show this help message and exit
  --debug           enable debug mode
  --apidir APIDIR   Location of JSON API definitions

subcommands:
  valid subcommands

  {convert,replay}  additional help
    convert         Convert API trace to JSON or Python and back
    replay          Replay messages to running VPP instance

To convert an API trace file to JSON:
vppapitrace convert /tmp/api.trace trace.json

To convert an (edited) JSON file back to API trace for replay:
vppapitrace convert trace.json api-edited.trace

To generate a Python file that can be replayed:
vppapitrace convert /tmp/api.trace trace.py
vppapitrace convert trace.json trace.py

Replay it to a running VPP instance:
vppapitrace replay --socket /tmp/api.trace

In VPP that file can be replayed with:
vpp# api trace replay api-edited.trace

This patch also modifies the API binary trace format, to include the
message id to message name table.

Change-Id: Ie6441efb53c1c93c9f778f6ae9c1758bccc8dd87
Type: refactor
Signed-off-by: Ole Troan <ot@cisco.com>
4 years agodocs: Add Ray's ACL use case 28/20928/3
jdenisco [Tue, 30 Jul 2019 12:54:01 +0000 (08:54 -0400)]
docs: Add Ray's ACL use case

Change-Id: Id99f16953a23a4be4cc1fb94419ea8282fa720e8
Signed-off-by: jdenisco <jdenisco@cisco.com>
4 years agoudp: fix rx event generation 95/21095/4
Florin Coras [Wed, 7 Aug 2019 01:28:49 +0000 (18:28 -0700)]
udp: fix rx event generation

When session is owned by another thread, avoid postponing the generation
of the rx event.

Type:fix

Change-Id: Ie6afc8116ce40e83d8aae0432b48e19b31287d8b
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agosvm: fix fifo max writeable chunk computation 57/21157/2
Florin Coras [Thu, 8 Aug 2019 19:57:48 +0000 (12:57 -0700)]
svm: fix fifo max writeable chunk computation

Type:fix

Change-Id: I60fdd7651a3d3fac505e7aec7a41f9d096022895
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agotcp: cleanup timers 41/21041/6
Florin Coras [Fri, 2 Aug 2019 22:17:21 +0000 (15:17 -0700)]
tcp: cleanup timers

Type:refactor

Change-Id: I37dbc8b55827d66c2578d6ab8b86ed7e18198aa6
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agotls: fix close with data 25/21125/7
Florin Coras [Wed, 7 Aug 2019 18:14:56 +0000 (11:14 -0700)]
tls: fix close with data

Type:fix

Also changes the way the ctx is freed. TLS now waits for tcp delete
notification before freeing the ctx.

Change-Id: I2f606a9ce7b3755ae9d11d6fe714fe11b65dcb98
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agotcp: fix zero rwnd sent check 54/21154/2
Florin Coras [Thu, 8 Aug 2019 16:44:47 +0000 (09:44 -0700)]
tcp: fix zero rwnd sent check

Type:fix

Change-Id: I1e6f2cb28c1bf544cc3d060b11c8935f9edb0eed
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agoapi: api socket respect unix runtime directory 00/21100/2
Ole Troan [Wed, 7 Aug 2019 11:41:39 +0000 (13:41 +0200)]
api: api socket respect unix runtime directory

socksvr {} should respect the unix runtime directory.
Default is now /run/vpp/api.sock
The 'default' keyword is deprecated.
The user is responsible for creating directories outside of the
unix runtime directory.

Not yet done: Exit VPP when socket cannot be opened.
              (currently only process exits).

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I6dd66ed58a3d7e02674dfa16d72c1d7bba07b79e

4 years agoudp: fix connections move 88/21088/10
Aloys Augustin [Tue, 6 Aug 2019 14:09:01 +0000 (16:09 +0200)]
udp: fix connections move

Without this the use of uc0 is racy between the current thread and the
thread that owns it and will delete it.

This also ensures we don't trigger a read event on the session before
moving it to the right thread and notifying the application.

Type: fix
Change-Id: Icb1ca3ee5805ea3c0d2d424d4b23511465deb3b6
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
4 years agodocs: Add link to 20.01 test framework docs 23/21123/1
Andrew Yourtchenko [Wed, 7 Aug 2019 17:25:08 +0000 (17:25 +0000)]
docs: Add link to 20.01 test framework docs

Change-Id: Ida11ed3dd70058cb618a7f9c137fde2e1e133a71
Type: docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
4 years agoInitial 20.01-rc0 commit 22/21122/2 v20.01-rc0
Andrew Yourtchenko [Wed, 7 Aug 2019 17:12:27 +0000 (17:12 +0000)]
Initial 20.01-rc0 commit

Change-Id: Iee2e28647b966ba8ed9e4fe0e809639fbe8a5756
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
4 years agordma: add missing symbols 89/21089/3
Benoît Ganne [Tue, 6 Aug 2019 16:14:12 +0000 (18:14 +0200)]
rdma: add missing symbols

rdma-core-25.0 move some symbol to another library, make sure we link
to it.

Type: fix
Fixes: ec757593859bd8c16839ea8a81a2ef4eb8b29539

Change-Id: I6b8a56ea5fc7787d3de0982015ed47b767557c06
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agointerface: fix checksum flags 92/21092/2
Florin Coras [Tue, 6 Aug 2019 20:48:50 +0000 (13:48 -0700)]
interface: fix checksum flags

Type:fix
Fixes:4208a4c

Change-Id: I7077788cd14f539b06ead5dc65d8411940438bae
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
4 years agogbp: add l3out redirect to remote SEP unit test 69/20969/5
Benoît Ganne [Wed, 31 Jul 2019 12:29:00 +0000 (14:29 +0200)]
gbp: add l3out redirect to remote SEP unit test

Type: test

Change-Id: I0fafaebbb1f70488e0bc7d21da778d55fe15c3f5
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agovom: export/install cmake files 31/20931/2
Neale Ranns [Tue, 30 Jul 2019 13:20:39 +0000 (06:20 -0700)]
vom: export/install cmake files

Type: feature

allow other projects to use cmake modules to find VOM

Change-Id: I00e01e9bec3ecf79903cd522d2770bdb70e5399b
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agotests: UT for MPLS 6PE 46/21046/2
Neale Ranns [Sun, 4 Aug 2019 10:30:56 +0000 (03:30 -0700)]
tests: UT for MPLS 6PE

Type: test

Change-Id: I48650473591aa181167cf3a86ed2f5da58a81072
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agofib tests: IP multicast over GRE 45/21045/3
Neale Ranns [Sun, 4 Aug 2019 09:41:57 +0000 (02:41 -0700)]
fib tests: IP multicast over GRE

Type: feature

Change-Id: I1632ff23b1bf6d91aa3406c95ebd6ef0aa595f35
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agogbp: update gbp endpoint cli 82/21082/2
Benoît Ganne [Tue, 6 Aug 2019 11:56:18 +0000 (13:56 +0200)]
gbp: update gbp endpoint cli

Type: feature

Change-Id: I0afc6eb4765029dc28859c9ac2b0578749a38d3d
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agoudp: fix session migrate when not needed 58/21058/6
Nathan Skrzypczak [Mon, 5 Aug 2019 12:20:54 +0000 (14:20 +0200)]
udp: fix session migrate when not needed

Type: fix

Change-Id: I56f5f5e7e6430552f0346a65b1e5707edc28c1c0
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agoquic: Add missing session_migrate_callback 63/21063/3
Nathan Skrzypczak [Mon, 5 Aug 2019 15:23:07 +0000 (17:23 +0200)]
quic: Add missing session_migrate_callback

Change-Id: Ibbec53e07852f1b8987696fddbc3bf83f75705ce
Type: fix
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agordma: fix double-free in rdma-tx 62/21062/2
Benoît Ganne [Mon, 5 Aug 2019 15:07:20 +0000 (17:07 +0200)]
rdma: fix double-free in rdma-tx

In case of tx success after multiple retries, the last buffers to be
enqueued will be both enqueued for tx and freed.

Type: fix
Fixes: 211ef2eb24

Change-Id: I57d218cff58b74c1f3d6dc5722624327f0821758
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agodpdk: remove SFP eeprom dump from 'show hardware-interfaces' and 'show hardware-inter... 71/21071/2
Lijian.Zhang [Fri, 2 Aug 2019 02:42:48 +0000 (10:42 +0800)]
dpdk: remove SFP eeprom dump from 'show hardware-interfaces' and 'show hardware-interfaces verbose'

Type: fix

It's time-consuming to execute 'show hardware-interfaces detail' in CSIT script.
'show hardware-interfaces' dumps SFP eeprom, via a software emulated I2C bus.
Currently 'show hardware-interfaces', 'show hardware-interfaces verbose' and
'show hardware-interfaces detail' give exactly the same output,
and they all will dump SFP eeprom.
Will move the SFP eeprom dump to 'show hardware-interfaces detail' only,
and use “show hardware-interfaces verbose” in CSIT script to save time.

Change-Id: I1a6e5a0ca5fce5b4f0b9a6eb4e9dfd76d45b2487
Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.com>
4 years agoethernet: change to mark the CFI bit in the L2 header. 85/20985/9
Prashant Maheshwari [Wed, 31 Jul 2019 16:07:33 +0000 (21:37 +0530)]
ethernet: change to mark the CFI bit in the L2 header.

Type: fix
Fixes: 039cbfe2

Signed-off-by: Prashant Maheshwari <pmahesh2@cisco.com>
Change-Id: Idca91c73758824688dd6ce61df994be66753d838

4 years agordma: bump rdma-core to 25.0 67/21067/3
Benoît Ganne [Mon, 5 Aug 2019 15:52:25 +0000 (17:52 +0200)]
rdma: bump rdma-core to 25.0

Type: make

Change-Id: Ie7596e2976917657b089162c44b3b669e3a2d048
Signed-off-by: Benoît Ganne <bganne@cisco.com>
4 years agosvm: fix fifo growth on dequeue with drop 68/21068/3
Florin Coras [Mon, 5 Aug 2019 16:39:47 +0000 (09:39 -0700)]
svm: fix fifo growth on dequeue with drop

Type:fix

Change-Id: I39c339abf1b51105ef1bcf3d6f0f4f6ded54f32d
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agosession: cache align transport base class 39/21039/5
Florin Coras [Fri, 2 Aug 2019 19:52:00 +0000 (12:52 -0700)]
session: cache align transport base class

Type:refactor

Also remove tx stats. Expectation is that transports will keep track of
them.

Change-Id: I083b328d87d0ad3688b630ddb5ef97827a4dbc2b
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agovcl: fix bapi disconnect with socket transport 44/21044/3
Florin Coras [Sun, 4 Aug 2019 01:53:48 +0000 (18:53 -0700)]
vcl: fix bapi disconnect with socket transport

Type:fix

Change-Id: I7b69c28118f3d7054a20ca48792dfc403a8e2694
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agodocs: Add more quic plugin documentation 98/20898/3
Nathan Skrzypczak [Mon, 29 Jul 2019 11:51:31 +0000 (13:51 +0200)]
docs: Add more quic plugin documentation

Type: docs

Change-Id: I0209769f73a46ddad7c2625ad0f774ee2eef43dd
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agoquic: fix memset 0 picotls depends on 57/21057/3
Nathan Skrzypczak [Mon, 5 Aug 2019 12:07:15 +0000 (14:07 +0200)]
quic: fix memset 0 picotls depends on

Type: fix

Change-Id: Id03cc839662179f8543b0b3f540932e1d87f1cea
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agovxlan: fix VXLANoIP6 checksum offload setup 43/21043/2
John Lo [Sat, 3 Aug 2019 22:25:49 +0000 (18:25 -0400)]
vxlan: fix VXLANoIP6 checksum offload setup

Fix UDP over IP6 checksum offload setup for VXLAN and VXLAN-GBP.

Type: fix

Signed-off-by: John Lo <loj@cisco.com>
Change-Id: If110467a68234d8eed941869a2a03735f339dc33

4 years agoip: fix ip6/udp checksum for pkts using buffer chaining 42/21042/1
John Lo [Sat, 3 Aug 2019 18:36:39 +0000 (14:36 -0400)]
ip: fix ip6/udp checksum for pkts using buffer chaining

Fix ip6_tcp_udp_icmp_compute_checksum to work properly for packets
with multiple buffers.
Fix ip4_tcp_udp_compute_checksum to exit upon detecting error.

Type: fix

Signed-off-by: John Lo <loj@cisco.com>
Change-Id: I673547f4479d72cd60757383343fc562cff10265

4 years agoquic: Improve quic echo connect threading 75/20775/12
Nathan Skrzypczak [Mon, 22 Jul 2019 14:30:40 +0000 (16:30 +0200)]
quic: Improve quic echo connect threading

Type: fix

Change-Id: I64f90139ad70e722f1ecbc4e0c6c1e723ec0f054
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agovlib: fix out of memory issue 63/20563/6
Filip Tehlar [Tue, 9 Jul 2019 13:52:26 +0000 (13:52 +0000)]
vlib: fix out of memory issue

'show node foo' causes infinite loop resulting in out of memory.
This patch fixes the issue by breaking the loop on invalid input.

Ticket: VPP-1538
Type: fix
Fixes: 98afc711c5
Change-Id: Icf2be92e277a7f820d4e08bea9ef22ffbbb116f6
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
4 years agodevices: add null check after map_guest_mem calls 91/20991/3
Steven Luong [Wed, 31 Jul 2019 23:01:14 +0000 (16:01 -0700)]
devices: add null check after map_guest_mem calls

map_guest_mem may return null. Coverity complains about calls
without checking its return. Simple stuff.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I0626115f4951a88f23d9792f0232fb57c132fbc2

4 years agovcl: initialize worker thread index and heap map slot 38/21038/2
Florin Coras [Fri, 2 Aug 2019 17:53:01 +0000 (10:53 -0700)]
vcl: initialize worker thread index and heap map slot

Type: fix

Change-Id: I7e762b43a2a074dc81cb7b0f6446e315e63ecae5
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agovppinfra: Expose function setting __os_thread_index 29/21029/3
Nathan Skrzypczak [Thu, 1 Aug 2019 16:14:06 +0000 (18:14 +0200)]
vppinfra: Expose function setting __os_thread_index

Type: feature

This is needed when creating pthreads in client applications,
they need a way to set __os_thread_index per thread
that does not conflict with the binary API thread index.

If __os_thread_index is left to 0 in two client pthreads and
they call vl_msg_api_alloc and vec_resize at the same time
it can fail due to them sharing (and push/poping) the same
clib_per_cpu_mheaps slot.

Change-Id: I85d4248a39b641a4d3ad5a1c1bd6e0db5875fab6
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agotcp: add more connection stats 05/20905/13
Florin Coras [Tue, 30 Jul 2019 01:13:25 +0000 (18:13 -0700)]
tcp: add more connection stats

Type:feature

Change-Id: If02884d0f1f26bfe31ec609ea9611cb27b699868
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agoethernet: fix ARP feature arc definition 19/21019/3
Dave Barach [Thu, 1 Aug 2019 20:08:13 +0000 (16:08 -0400)]
ethernet: fix ARP feature arc definition

This patch gets rid of an ugly warning during vpp startup:

"vnet_feature_init:143: WARNING: arp arc: last node is arp-disabled,
but expected error-drop!"

Type: fix
Fixes: 1ff56f00ca015e82ef29955986e503913d1c3b86

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I80914a3c113c090a09bd5a5131e39f036871d92e

4 years agovmxnet3: don't bypass ethernet_input 21/21021/2
Steven Luong [Fri, 2 Aug 2019 02:04:40 +0000 (19:04 -0700)]
vmxnet3: don't bypass ethernet_input

Queue everything to ethernet_input to not break pcap rx trace.
Fix a minor typo in vmxnet3_api.c

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I7df7b3e20b525e3d6f7421c8e213b6541cdd15b6

4 years agolb: fix usage of lb_main in test 16/21016/3
Florin Coras [Thu, 1 Aug 2019 18:39:34 +0000 (11:39 -0700)]
lb: fix usage of lb_main in test

Type: fix

Change-Id: I9f8a8da31624637c060a9757256589c8f372f192
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agoipsec: FIx feature ordering 28/21028/2
Neale Ranns [Fri, 2 Aug 2019 08:17:13 +0000 (01:17 -0700)]
ipsec: FIx feature ordering

Type: fix
Fixes: 1404698df397bc4d3007daea41f52ad75ed4486c

Change-Id: Ibb77d95bb5e862cf5d1cb65843c526fd2e225c62
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agovirtio: add the display information in virtio cli 15/20715/5
Chenmin Sun [Thu, 18 Jul 2019 15:19:28 +0000 (23:19 +0800)]
virtio: add the display information in virtio cli

Type: fix

1. Add option '[gso-enabled]' in cli 'create interface virtio'
2. Add gso information in virtio_show()

Change-Id: I4eb58f4421325ef54a6a68c8341b3a6d3d68136a
Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
4 years agoquic: fix connection move with multiple workers 10/21010/2
Aloys Augustin [Tue, 30 Jul 2019 13:46:56 +0000 (15:46 +0200)]
quic: fix connection move with multiple workers

Change-Id: Ibd1012c2c1382de442ed294dd9e8a0ec89349fa1
Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
4 years agointerface: fix pcap tx/rx trace cli handling 18/21018/2
John Lo [Thu, 1 Aug 2019 19:15:36 +0000 (15:15 -0400)]
interface: fix pcap tx/rx trace cli handling

Provide default packet_to_capture value. Display interface name
correctly for "pcap tx/rx trace status".

Type: fix

Signed-off-by: John Lo <loj@cisco.com>
Change-Id: I7064d0dbea236a9aff68bba7fbaf2c4a73b16c6f
Signed-off-by: John Lo <loj@cisco.com>
4 years agosession: session pool migration notification 92/20992/3
Florin Coras [Wed, 31 Jul 2019 23:46:24 +0000 (16:46 -0700)]
session: session pool migration notification

Type: feature

Change-Id: Ia9a5b1a6d85c7f3f2e6db583b33b5b20029a1e88
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agovppinfra: fix spinlock and rwlock tests 15/21015/2
Florin Coras [Thu, 1 Aug 2019 17:54:06 +0000 (10:54 -0700)]
vppinfra: fix spinlock and rwlock tests

Type: fix

Change-Id: I67b72b5ad03b972198c27bc0d927867f41b0e20b
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agoipsec: Redo the anit-replay check post decrypt 09/21009/2
Neale Ranns [Thu, 1 Aug 2019 11:45:15 +0000 (04:45 -0700)]
ipsec: Redo the anit-replay check post decrypt

Type: fix

Change-Id: I1fa8c5326d6f22cfb8dd40e97d8a22d11a716922
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agodocs: Small fixes and ordering 93/20893/4
Nathan Skrzypczak [Mon, 29 Jul 2019 09:18:05 +0000 (11:18 +0200)]
docs: Small fixes and ordering

* deactivtates the TODOs on doxygen (were empty)
* This move punt.md to readthedocs (should be the new
place for dev doc ?)
* Makes Handoff queue demo plugin a child of dev doc
in doxygen

Type: fix

Change-Id: I1f0476a911b35208212af8dd608bc76160efd22a
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agovppinfra: refactor clib_rwlock_t to use single condition variable 63/20863/4
jaszha03 [Mon, 1 Jul 2019 22:08:57 +0000 (17:08 -0500)]
vppinfra: refactor clib_rwlock_t to use single condition variable

Previous implementation of clib_rwlock_t used two spinlocks: one
writer lock, and one to guard the counter for the number of readers.
This implementation uses a single condition variable rw_cnt which
has the following properties:

if a writer has the rwlock, rw_cnt = -1
if the rwlock is free, rw_cnt = 0
otherwise, rw_cnt > 0 and rw_cnt = number of readers
rw_cnt will never be less than -1

Benchmarking:
The results below are the cycle counts from test_rwlock.c, configured so
that for 10000 iterations, 6 reader and 6 writer threads on separate cores
are spawned such that each writer thread increments a global counter
10000 times in each iteration. For Taishan, 4 reader and 4 writer
threads are spawned in each test.

x86 Xeon old rwlock: 12.473e8, 11.655e8, 13.201e8, 11.347e8, 13.182e8
x86 Xeon new rwlock: 5.881e8, 5.796e8, 6.536e8, 5.540e8, 5.890e8
Aarch64 ThX2* old rwlock: 9.263e7, 8.933e7, 9.074e7, 8.979e7, 9.378e7
Aarch64 ThX2* new rwlock: 7.221e7, 8.107e7, 7.515e7, 7.672e7, 7.386e7
A72 old rwlock: 3.268e6, 3.200e6, 3.086e6, 3.176e6, 3.170e6
A72 new rwlock: 1.261e6, 1.288e6, 1.251e6, 1.229e6, 1.234e6

*ThunderX2 used additional gcc options "-march=armv8.1-a+crc+crypto+lse"

Type: refactor

Change-Id: I7c347d3037b36205ab532cbcb52a374c846eb275
Signed-off-by: Jason Zhang <jason.zhang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Lijian Zhang <Lijian.Zhang@arm.com>
4 years agovppinfra: remove unused historical code 12/21012/3
Dave Barach [Thu, 1 Aug 2019 13:54:05 +0000 (09:54 -0400)]
vppinfra: remove unused historical code

"timer.[ch]" used a signal handler to deliver timer callbacks. Without
indulging in a set of sigprocmask(...) system calls, it would be
unsafe to use the mechanism.

Rather than wait for another developer to accidentally open this
particular can of worms, best to remove the code. It's nothing more
than an attractive nuisance at this point.

Type: refactor
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ia3e7b00a389c302b466605dff0c1bf3566b8dbbd

4 years agovppinfra: make first bihash add thread-safe 05/21005/5
Dave Barach [Thu, 1 Aug 2019 12:15:01 +0000 (08:15 -0400)]
vppinfra: make first bihash add thread-safe

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ie37ff66faba79e3b8f46c7a704137f9ef2acc773

4 years agoquic: Improve quicly_ctx handling & crypto ctx 79/20979/6
Nathan Skrzypczak [Wed, 31 Jul 2019 13:51:04 +0000 (15:51 +0200)]
quic: Improve quicly_ctx handling & crypto ctx

Type: fix

Change-Id: I898de67c017c3a45bed123d81041b32b43f749d0
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agoethernet: Fix node ordering on ARP feautre ARC 82/20982/3
Neale Ranns [Tue, 30 Jul 2019 13:29:47 +0000 (06:29 -0700)]
ethernet: Fix node ordering on ARP feautre ARC

Type: fix
Fixes: fe2fff37

this improves the tracing for dropped ARP packets

Change-Id: Iefd0391e349fc54f1beebda403b2349534b20c48
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agonat: handoff rewrite & fixes for multi-worker 72/20972/2
Filip Varga [Wed, 31 Jul 2019 12:36:39 +0000 (14:36 +0200)]
nat: handoff rewrite & fixes for multi-worker

Type: fix

Change-Id: Ib9164d8f6c681e8900e645306f3a2dc0ac0e40a8
Signed-off-by: Filip Varga <filipvarga89@gmail.com>
4 years agovppinfra: refactor clib_spinlock_t to use compare and swap 60/20860/5
jaszha03 [Wed, 26 Jun 2019 22:06:59 +0000 (17:06 -0500)]
vppinfra: refactor clib_spinlock_t to use compare and swap

Tested performance of a CAS implementation (using __atomic_compare_exchange)
against a TAS implementation (using __atomic_exchange) using test_spinlock.c
and found some performance improvement.

Generated assembly for CAS and TAS implementations show that TAS always
executes with a load-store dependency, but CAS moves a branch condition
between the load and store so that only a load occurs when the lock is free.

Benchmarking:
The results below are the cycle counts from test_spinlock.c, configured so
that for 10000 iterations, 12 threads on separate cores are spawned, each of
which increments a global counter 10000 times in each iteration. For
A72, 8 threads are spawned in each test.

x86 Xeon TAS: 7.333e8, 7.605e8, 7.535e8, 7.485e8, 7.321e8
x86 Xeon CAS: 5.842e8, 5.433e8, 5.389e8, 5.983e8, 5.552e8
Aarch64 ThX2* TAS: 9.852e7, 10.209e7, 9.190e7, 9.600e7, 9.224e7
Aarch64 ThX2* CAS: 7.640e7, 7.486e7, 7.425e7, 7.269e7, 7.534e7
A72 TAS: 7.289e6, 6.963e6, 7.208e6, 6.976e6, 7.200e6
A72 CAS: 1.695e6, 1.608e6, 1.600e6, 1.634e6, 1.746e6

*ThunderX2 used additional gcc options "-march=armv8.1-a+crc+crypto+lse"

Type: refactor

Change-Id: Ic5cd97991804f6b012707fad1a5d1a6edb96cd3d
Signed-off-by: Jason Zhang <jason.zhang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Lijian Zhang <Lijian.Zhang@arm.com>
4 years agotcp: honor snd_wnd in fast rxt 90/20990/2
Florin Coras [Wed, 31 Jul 2019 21:11:05 +0000 (14:11 -0700)]
tcp: honor snd_wnd in fast rxt

Type:fix

Change-Id: I2f4224a53360f533c086ebde6a3056e60431da87
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agoqos: Uninitialised variable (coverity) 95/20995/2
Neale Ranns [Thu, 1 Aug 2019 08:04:24 +0000 (01:04 -0700)]
qos: Uninitialised variable (coverity)

Type: fix
Fixes: 83832e7ced8be8b7de394415feaba70c32e3c38d

Change-Id: I63130c442f71d1aef0d389ab00bac8092224bec2
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agovppapigen: revert "implement reversible repr's" 97/20997/1
Vratko Polak [Thu, 1 Aug 2019 08:31:49 +0000 (10:31 +0200)]
vppapigen: revert "implement reversible repr's"

The previous change seems to affect all CRCs.

Type: fix
Fixes: b504777e7f1c9728e65b874284b4dfd39359c8a8.

Change-Id: I65e27ce22020e5ebc764b5a51b5fc84992ddb40a
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
4 years agolb: vip and as dump/detail api's 49/20049/25
Hongjun Ni [Mon, 10 Jun 2019 11:43:48 +0000 (19:43 +0800)]
lb: vip and as dump/detail api's

- lb_vip_dump/lb_vip_details - get all vip.
- lb_as_dump/lb_as_details - get all as list per vip.
- adds api unit test.
- adds vpp_lb to test framework.

Ticket:
Type: feature

Change-Id: I24be50d62c5234f3535cc840603ddd9df7eb3f07
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
4 years agoapi: add prefix matcher typedef 40/20940/7
Paul Vinciguerra [Sat, 27 Jul 2019 14:35:07 +0000 (10:35 -0400)]
api: add prefix matcher typedef

There is a need to be able to specifiy whether a prefix in
a request is to match exactly or if more specific
prefixes are also desired.

Todo: Uncomment defaults, once supported in vppapigen.

Type: feature

Change-Id: I74fdef0e89e3aefda822c7c0a477e22479297a90
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
4 years agonat: elog rewrite for multi-worker support 61/20961/3
Filip Varga [Wed, 31 Jul 2019 10:45:48 +0000 (12:45 +0200)]
nat: elog rewrite for multi-worker support

Type: fix

Change-Id: I04f136a04bc022d223e4bcb5c59920bd1f1fd560
Signed-off-by: Filip Varga <filipvarga89@gmail.com>
4 years agogso: fix the test case 84/20984/2
Mohsin Kazmi [Wed, 31 Jul 2019 14:01:13 +0000 (16:01 +0200)]
gso: fix the test case

Type: fix
Fixes: 22e9cfd760be613f33a4135e9247729b64619cc6

Change-Id: Idb198642e439dc3d54c04d8bde9d3e8382ebf830
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
4 years agodevices interface tests: vhosst GSO support 81/19381/13
Steven Luong [Mon, 6 May 2019 15:51:56 +0000 (08:51 -0700)]
devices interface tests: vhosst GSO support

Add gso option in create vhost interface to support gso and checksum
offload.

Tested with the following startup options in qemu:
csum=on,gso=on,guest_csum=on,guest_tso4=on,guest_tso6=on,guest_ufo=on,
host_tso4=on,host_tso6=on,host_ufo=on

Type: feature

Change-Id: I9ba1ee33677a694c4a0dfe66e745b098995902b8
Signed-off-by: Steven Luong <sluong@cisco.com>
4 years agoqos: Store function 53/20953/3
Neale Ranns [Wed, 31 Jul 2019 09:48:02 +0000 (02:48 -0700)]
qos: Store function

Type: feature

store: write a QoS value into the buffer meta-data
record: Extract a QoS value from a packet header and store it.
mark: Make a change to the content of a packet header by writing a stored
      QoS value

Change-Id: I07d1e87dd1ca90d40ac1ae1774fee1b272cab83f
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agovppapigen: implement reversible repr's 46/20946/4
Paul Vinciguerra [Wed, 31 Jul 2019 03:01:31 +0000 (23:01 -0400)]
vppapigen: implement reversible repr's

Type: feature

Change-Id: I92757f041cde399229c42e34515ace0fcd37908b
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
4 years agobuild: Append build number for cpack packages 56/20756/17
YohanPipereau [Fri, 19 Jul 2019 15:53:18 +0000 (17:53 +0200)]
build: Append build number for cpack packages

add_vpp_packaging maccro was circumventing scripts/version causing:
1. build number not being appended to the package
2. invalid package name format (due to cmake cpack module)

Change-Id: I2b9a985357a3f3bd501be6db6ca638d4430f4bbb
Type: make
Fixes: def35a2352c9a54f748d301ffa47a446d25a83e0
Signed-off-by: YohanPipereau <ypiperea@cisco.com>
4 years agopg: clarify the text of error message 95/20895/5
Andrew Yourtchenko [Mon, 29 Jul 2019 09:27:10 +0000 (09:27 +0000)]
pg: clarify the text of error message

Enabling capture on pg with the file already existing
results in a misleading error message. Fix the text.

Change-Id: I1aea49cfeda3b4bfe6ed7b18fd543948a078508a
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
4 years agovlib: fix format_error_trace 73/20973/2
Dave Barach [Wed, 31 Jul 2019 13:05:37 +0000 (09:05 -0400)]
vlib: fix format_error_trace

Error index calculation is error_code + error_node->error_heap_index.

Type: fix
Fixes: gerrit 20802

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I66cf05a29b3cfd9ef9c5468e399290e862b784af

4 years agovppinfra: added performance test for clib_rwlock_t (test_rwlock.c) 62/20862/5
jaszha03 [Mon, 1 Jul 2019 22:20:52 +0000 (17:20 -0500)]
vppinfra: added performance test for clib_rwlock_t (test_rwlock.c)

Spawns a uniform number of writer and reader threads across a number of
cores where each writer thread increments a global variable a specified
number of times, and the reader threads continually poll the global's
value until the writers complete.

Type: test

Change-Id: I979c3734c6d03139d0802bff1846875d226f6fbb
Signed-off-by: Jason Zhang <jason.zhang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Lijian Zhang <Lijian.Zhang@arm.com>
4 years agovppinfra: refactor test_and_set spinlocks to use clib_spinlock_t 61/20861/5
jaszha03 [Thu, 11 Jul 2019 20:47:24 +0000 (20:47 +0000)]
vppinfra: refactor test_and_set spinlocks to use clib_spinlock_t

Spinlock performance improved when implemented with compare_and_exchange
instead of test_and_set. All instances of test_and_set locks were refactored
to use clib_spinlock_t when possible. Some locks e.g. ssvm synchronize
between processes rather than threads, so they cannot directly use
clib_spinlock_t.

Type: refactor

Change-Id: Ia16b5d4cd49209b2b57b8df6c94615c28b11bb60
Signed-off-by: Jason Zhang <jason.zhang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Lijian Zhang <Lijian.Zhang@arm.com>
4 years agovppinfra: added lock performance test for clib_spinlock_t (test_spinlock.c) 59/20859/5
jaszha03 [Wed, 19 Jun 2019 19:07:05 +0000 (14:07 -0500)]
vppinfra: added lock performance test for clib_spinlock_t (test_spinlock.c)

Spawns a uniform number of threads across a number of cores where each
thread increments a global variable a specified number of times.

Type: test

Change-Id: I12b3a37708a199c297d022348d99dbb0e8349a9f
Signed-off-by: Jason Zhang <jason.zhang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Lijian Zhang <Lijian.Zhang@arm.com>
4 years agovcl: fix epoll chain validation 42/20942/4
Florin Coras [Tue, 30 Jul 2019 21:08:23 +0000 (14:08 -0700)]
vcl: fix epoll chain validation

Type:fix

Change-Id: I91dfe7e0ae2e632022fbf639ca16c93f570849de
Signed-off-by: Florin Coras <fcoras@cisco.com>
4 years agoapi papi: add alias for timestamp(datetime)/timedelta 01/20801/5
Paul Vinciguerra [Tue, 23 Jul 2019 13:53:06 +0000 (09:53 -0400)]
api papi: add alias for timestamp(datetime)/timedelta

Now that we have support for f64:
- create explicit types for timestamp(datetime)/timedelta
- update log_details to use timestamp and remove redundant string representation.
  If you need the string representation, in python do str(timestamp).
  If you prefer the raw f64 value, the client can pass in the
  _no_type_conversion option.

Type: feature

Change-Id: I547b5fa7122d2afa12628b7db0192c23babbbae8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
4 years agovppapigen: add endian_string for f64 44/20944/2
Paul Vinciguerra [Tue, 30 Jul 2019 22:24:41 +0000 (18:24 -0400)]
vppapigen: add endian_string for f64

Type: fix

Change-Id: I35838baea21ead4a3f45d998ff225a513781d7ee
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
4 years agotests: disable pg capture before enabling it 45/20845/23
Andrew Yourtchenko [Thu, 25 Jul 2019 10:03:51 +0000 (10:03 +0000)]
tests: disable pg capture before enabling it

In a lot of places within the unit tests pg_start() starts
the capture with an already existing capture running
for the same test.

If the pcap file already exists, then it is renamed and there
is no problem.

However, there is a potential for race if the previous
pg_start() has enabled the capture, but the check for
renaming it happened just slightly earlier than the first
packet has arrived.

Then a second call to pg_start() will hit a check that
a file exists, and will cause an error. This is especially
visible when running the tests in parallel due to increased
load.

Solution: disable the capture before enabling it.
This will flush the aready running capture and eliminate the race.

The additional delay that flushing of the pcap creates has exposed
several other race conditions:

NAT tests: Some of the NAT reassembly tests
verify that the entries were added to the reassembly data structures,
but do so by comparing the quantities of entries. With the default
timeout being 2s, some of the entries might timeout,
resulting in a bogus test failure.

Solution: Bump the timeout to 20s for the affected tests.

Punt tests: nr_packets == 3 makes test intermittently fail,
nr_packets > 3 make it reliably fail, and nr_packets = 2 works

Solution: set nr_packets == 2 for the time being

IGMP tests: the leave-group calls get a spurious packet
from the time the new groups were configured

Solution: add 1 second delay before starting to delete the groups

Type: test

Change-Id: I931182a7b2860cf670e030ee7da8038f6e87356d
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
4 years agotests: Split IPSec ESP into parameterized tests per engine 48/20948/2
Neale Ranns [Wed, 31 Jul 2019 07:13:18 +0000 (00:13 -0700)]
tests: Split IPSec ESP into parameterized tests per engine

Type: feature

Change-Id: Icb1bd3fce768aebf8919c63a104f771ca7fa1d6f
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agoip: Ensure reassembly runs before IPSec decrypt. 12/20912/2
Neale Ranns [Mon, 29 Jul 2019 14:49:52 +0000 (14:49 +0000)]
ip: Ensure reassembly runs before IPSec decrypt.

Type: fix

Change-Id: I01eeedf8d5015b07b9422c65afe78bfe8177c22c
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agofib: Add some path-list flags to its key 14/20914/2
Neale Ranns [Mon, 29 Jul 2019 12:45:27 +0000 (12:45 +0000)]
fib: Add some path-list flags to its key

Type: fix
Ticket: 1729

The flags that are permanently set on a path-list should form part of
its key in the path-list DB. Otherwise, if shared, they will not behave
as expected.

Change-Id: I0aa7c7c5d270c97b08014e4a47ddbdcee2358706
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agofib: fix calls to unformat_fib_path 13/20913/2
Neale Ranns [Mon, 29 Jul 2019 12:59:45 +0000 (12:59 +0000)]
fib: fix calls to unformat_fib_path

Type: fix
Ticket: 1728

Change-Id: I679c2b8c5b0f751c9476db3669ab3f6c26dcdd28
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agoipsec: Typo in flag name 49/20949/1
Neale Ranns [Wed, 31 Jul 2019 08:04:43 +0000 (01:04 -0700)]
ipsec: Typo in flag name

Type: fix

Change-Id: I0c9353598d3c9b7ea587ea8a2b6e1faa5454843d
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agoquic: fix cert loading 36/20936/2
Nathan Skrzypczak [Tue, 30 Jul 2019 14:14:34 +0000 (16:14 +0200)]
quic: fix cert loading

Type: fix

Change-Id: I29d24c8ec7b8e0613d4fbf5eedc72384326dc284
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
4 years agoquic: cleanup and refactorisation 53/20853/4
Aloys Augustin [Thu, 25 Jul 2019 15:08:32 +0000 (17:08 +0200)]
quic: cleanup and refactorisation

Change-Id: I031a60ac010b55110f32f0a08e19b1156aeda268
Type: refactor
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
4 years agovppinfra: refactor use of CLIB_MEMORY_BARRIER () 57/20857/3
jaszha03 [Wed, 12 Jun 2019 21:01:19 +0000 (16:01 -0500)]
vppinfra: refactor use of CLIB_MEMORY_BARRIER ()

All instances of test_and_set locks used the following sequence
to release the locks:

CLIB_MEMORY_BARRIER ();
p->lock = 0; // p is a generic struct with a TAS lock

Use clib_atomic_release to generate more efficient assembly code.

Type: refactor

Change-Id: Idca3a38b1cf43578108bdd1afe83b6ebc17a4c68
Signed-off-by: Jason Zhang <jason.zhang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Lijian Zhang <Lijian.Zhang@arm.com>
4 years agovlib: Fix packet tracing 37/20937/2
Neale Ranns [Tue, 30 Jul 2019 14:14:25 +0000 (07:14 -0700)]
vlib: Fix packet tracing

Type: fix
Fixes: 99536f4

Change-Id: Ica230ec9fa7f6fd36e2754e8b0b9db555460ca55
Signed-off-by: Neale Ranns <nranns@cisco.com>
4 years agotap: fix segv when host-if-name is not given 97/20897/2
Mohsin Kazmi [Mon, 29 Jul 2019 11:21:17 +0000 (13:21 +0200)]
tap: fix segv when host-if-name is not given

Type: fix
Fixes: c30d87e6139c64eceade54972715b402c625763d

Change-Id: I86b606b18ff6a30709b7aff089fd5dd00103bd7f
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
4 years agovppinfra: conformed spinlocks to use CLIB_PAUSE 56/20856/2
jaszha03 [Wed, 12 Jun 2019 21:01:19 +0000 (16:01 -0500)]
vppinfra: conformed spinlocks to use CLIB_PAUSE

Modified test-and-set spin locks to call CLIB_PAUSE () when spinning
for code consistency. Decreases the memory bandwidth consumed.

Type: fix

Change-Id: I1cca4f87f44f23f257c7a35466cd2e7767072f51
Signed-off-by: Jason Zhang <jason.zhang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Lijian Zhang <Lijian.Zhang@arm.com>
4 years agomisc: add vnet/pipeline.h example 84/20884/3
Dave Barach [Fri, 26 Jul 2019 15:58:16 +0000 (11:58 -0400)]
misc: add vnet/pipeline.h example

To the sample plugin. We should probably suggest that folks use the
pipeline.h coding model more often. It's really easy, and these days
the performance results are similar to quad-single loop coding.

Type: refactor

Change-Id: Ie2caa087972737e6d9c31c4ac79355f3d8ced282
Signed-off-by: Dave Barach <dave@barachs.net>