Compare commits

...

377 Commits

Author SHA1 Message Date
Andrew Yourtchenko fd9d936b3c misc: Initial changes for stable/2110 branch
Change-Id: Ib3bf8f46a987324be4c7f016b96027558e9d58ef
Type: docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-09-23 14:52:28 +02:00
Aloys Augustin 87f478be88 wireguard: fix wg-output-tun feature configuration
The removed code caused the feature to be wrongly removed on the wg
interface.

Type: fix
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Change-Id: I998e01ec231527128eaeae78bcc7576ac00e5b12
2021-09-23 12:16:03 +00:00
Florin Coras d60b432b13 svm: remove unused fifo functions
Type: refactor

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4525bc669d1c42c41dbc398cf239a093b6853298
2021-09-23 12:15:47 +00:00
Ray Kinsella 5161c4ab57 stats: revert stat_validate_counter_vector3 non-static
This reverts commit c30157811e.

Type: refactor

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: Id011c8e5acb1613e09fd339ce614159c0acd651a
2021-09-23 06:57:08 +00:00
Mohsin Kazmi a7d2aabae8 tap: remove cxq_vring from tap/tun
Type: fix

virtio_if_t is shared data struct between tap, tun and virtio pci.
cxq_vring is virtio pci specific element. It shouldn't be set or
accessed in tap driver.

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I8b34570f61b38d8b9d79d5b0669bda0f89ebc28c
2021-09-22 20:22:05 +00:00
Mohsin Kazmi e4efbe73a3 virtio: fix the type of argument in virtio_show()
Type: fix

virtio have three different interfaces (tap, tun and native virtio).
virtio_show() is used by CLI commands to show information about these
interfaces. It uses interface type to print interface specific information.
virtio_show() should use proper type for virtio interfaces (TAP, TUN, VIRTIO).

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I2043dc2cfe2e2f6c7c9348b8494aa4a27cab31f3
2021-09-22 20:19:45 +00:00
Artem Glazychev 0455431a00 ping: set fib_index for lookup_node
lookup node uses this field later to set fib_index for buffer

Type: fix

Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Change-Id: I993cf80296e1713b4f13fc6ccdf49ebeaf295467
2021-09-22 16:59:10 +00:00
Neale Ranns e619ada151 interface: allow an interface's index to be given in 'sh int'
Type: improvement

e.g.:
DBGvpp# sh int 3
              Name               Idx    State  MTU (L3/IP4/IP6/MPLS)     Counter          Count
loop2                             3     down         9000/0/0/0

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ie296167ab2b1b9576b46f6d4d9fb9546aef3a0da
2021-09-22 14:32:22 +00:00
Fan Zhang c0d64ace0e misc: update MAINTAINERS file
Type: improvement

Add myself as maintainer for crypto related components.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: Ib43bd30b69c52c6370e3dda9ad9ed9a04374d817
2021-09-22 14:30:58 +00:00
Mohsin Kazmi ef356f57b5 hash: fix the initialization warning error on gcc-10
Type: fix

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ic7d99154def71cd06e8faa64180912e5b844424e
2021-09-22 09:59:49 +00:00
Aloys Augustin 6e4cfb5068 ip: add ip_table_allocate to api
Set tableID = ~0 for auto selection unused ID

https://jira.fd.io/browse/VPP-1993

Type: improvement
Change-Id: I4eec2cc1d18fc025196cb6ac4c9a4b374388eb56
Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2021-09-22 09:02:18 +00:00
Damjan Marion c3b62d1d13 classify: improve vnet_classify_hash
Type: improvement
Change-Id: I8b129b71f91b12ab2d8b05fe3891a7ab8926f072
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-09-22 08:30:01 +00:00
Damjan Marion c31a234d5c classify: simplify vnet_classify_find_entry_inline
Type: improvement
Change-Id: I3de4450b95f6fa76705923d983cf93c21b02a635
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-09-22 08:29:48 +00:00
Damjan Marion ff011b2560 vppinfra: make default hugepage size configurable
i.e.

memory {
  default-hugepage-size 1G
}

Type: improvement
Change-Id: I822afb51712ae92f4e4992b8ffa33dcb15ccaef1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-09-22 08:29:23 +00:00
Mohammed Hawari 266929f2e4 interface: fix poll vector realloc
Change-Id: I60815b5827b4406228fd6b490f4ac1f874bac974
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: fix
2021-09-22 08:24:04 +00:00
Andrew Yourtchenko 5aa06abf24 pnat: fix the version of the PNAT plugin from the hardcoded 0.0.1
Type: fix
Change-Id: I35db6763f3c5bd73169a222a4a93a917e8f468e6
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Ole Troan <ot@cisco.com>
2021-09-21 15:35:07 +02:00
Arthur de Kerhor b2819dd20e vapi: compile vpp-api folder before the plugins
Allows to use vapi symbols in a plugin.

Type: feature
Change-Id: Ic4534f266964127af54651b7d19c3b611b277860
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2021-09-21 08:03:57 +00:00
Nathan Skrzypczak b3ea73e766 session: implement app_ns deletion
Type: feature

Change-Id: If0edbb21a0283d66c648a9e190d238c8cfa56353
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-09-21 05:13:26 +00:00
Damjan Marion a9f5f85c95 classify: improve find entry performance
Type: improvement
Change-Id: I5245fc3f35b7a70833916db2ebf33f7c87398915
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-09-20 17:44:10 +02:00
Damjan Marion 3bb2da9cb1 classify: avoid dependent read of classify mask
Type: improvement
Change-Id: I176f08c74eb58a78f7fbdb48fd4592e6ddf74d34
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-09-20 17:44:10 +02:00
Nathan Skrzypczak 3d5e74172d session: use table_format in sh app ns
Type: refactor

Change-Id: I99162d80280e0f45344671b18b1ea96db90d4282
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-09-20 14:57:11 +00:00
Nathan Skrzypczak 8430b8de1d vppinfra: format table improvements
This adds a way to define default fg, bg colors
and alignement for cell tables.
It also allows removing the table title by not
setting it.
It also removes the trailing newline, for usage
inside a format("%U", format_table, ...)

Type: improvement

Change-Id: I27d7a04c4a919b34d0170b04e24a56831f581ea1
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-09-20 11:26:03 +00:00
Mohsin Kazmi 41b23bc955 hash: add support for hashing infra
Type: feature

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I3652ae275385d9b1eb1b11f418e3a7e5fef2f556
2021-09-20 11:11:02 +00:00
Nick Brown e3cf4d0cf3 build: use GNUInstallDirs install destinations
So as to be compliant with distribution layouts, as recommend by:
https://cmake.org/cmake/help/latest/command/install.html#installing-files

Type: make
Change-Id: Ic46ace4f26aab1aa4902cbd013c40a92c480680d
Signed-off-by: Nick Brown <nickbroon@gmail.com>
2021-09-17 20:25:49 +00:00
Benoît Ganne 8b99777263 dpdk: enable ENA tx offload
Type: improvement

Change-Id: Ic7c2ac4237ecd192def7c3530ae5f788c62cf9ad
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-09-17 20:12:22 +00:00
Nathan Skrzypczak 0e6584014a vppinfra: move format_table from perfmon
This code seems really usefull for reuse in
other plugins, for pretty table formatting

Type: feature

Change-Id: Ib5784a0dfc81b7d5a5d1f5ccdd02072e460a50fb
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-09-17 20:10:59 +00:00
Damjan Marion a274c3a2ed misc: put devtools plugins into separate component/package
Type: make
Change-Id: I2958e9eddadee6434766ecd3cdb3b9cea742ed64
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-09-17 15:04:28 +00:00
Mohammed Hawari 9db198556c ebuild: cleanup of DPDK options in external.mk
With the move to meson, most DPDK options in external.mk are not used
anymore

Type: improvement
Change-Id: I603ccd30c9e52bdc89a69aa4bece2394b3eed1fe
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2021-09-17 14:59:23 +00:00
Steven Luong d26a582759 memif: avoid double pool_put on a clib_file
When memif CP processes the socket connection error, it may go through
the following code paths which may eventually cause double pool_put on a
clib_file

memif_master_conn_fd_error:633 -> memif_disconnect ->
memif_socket_close -> memif_file_del_by_index ->
clib_file_del_by_index -> clib_file_del -> pool_put

After memif_master_conn_fd_error:633, the code continues on

memif_maser_conn_fd_error:651 -> memif_file_del -> clib_file_del ->
pool_put

The fix is to skip calling memif_file_del in
memif_master_conn_fd_error:651 if uf->file_descriptor == ~0 to catch
problem from all possible paths in memif_master_conn_fd_error

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I0960998db1ff358a8ddd4a5e22188a244eccd270
2021-09-17 14:57:33 +00:00
Florin Coras 91db3538c9 dpdk: fix checksum offload
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I89fb738903ee74ffcb7c77a041391f0388df6991
2021-09-16 20:50:12 -07:00
Benoît Ganne 895def45c8 avf: fix RSS hash key
Toeplitz hash key must respect certain properties, it cannot be purely
random. Use the default one from i40e.

Type: fix

Change-Id: Ic8e67a0426de8adfecc1fcdaa99879e13ae38cc9
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-09-16 14:23:53 +00:00
Nathan Skrzypczak 1a9e2f96d4 session: Add sock_name option to add_ns
This adds a new API call to add session namespaces
It now takes a netns and a sock_name.
(1) If no netns is passed, sock_name will be used as
socket path. Defaulting to /run/vpp/app_ns_sockets/${ns_id}
(2) If a netns is passed, the sock_name has to be
abstract (i.e. start with '@'). It will default to
`@vpp/session/${ns_id}` and will be created in the provided
netns.

Type: feature

Change-Id: I90e9a8e5ecca2cabe7c05335663e33c8506dc9e7
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-09-16 14:14:38 +00:00
Mohsin Kazmi 4fd9f10c45 vxlan: improve to use the hardware offload
Type: improvement

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ic0fa4f83048a280a7d1b04198c0f903798562d2d
2021-09-16 10:43:56 +00:00
Mohsin Kazmi 64dd1720e5 dpdk: add support for outer udp and ipv4 checksums
Type: improvement

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I10141033030342881298d70742fa5bdea402b4c9
2021-09-16 10:42:59 +00:00
Mohsin Kazmi 82f9444dbe dpdk: fix the outer ipv4 checksum
Type: fix

Change-Id: Ibc476b807ba0310f0cc926b0e386831ef0cbcc25
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-09-16 10:40:15 +00:00
Mohsin Kazmi cebb477339 ip6-nd: add ip6-nd proxy
Type: feature

Change-Id: I91f72f5802db195d1a15424d67c1b6e518168f9f
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-09-16 07:12:13 +00:00
Damjan Marion ef4ddfa482 vlib: add option to plugin registration to prefer deep binding
Type: improvement
Change-Id: I9ce7e1ee7e7afe8e9befe36ae8c59291beaaaf36
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-09-15 15:15:40 +02:00
Duncan Eastoe 764a8780c2 tap: set device name on creation via TUNSETIFF
Type: fix

Currently when a new TAP/TUN device is created from tap_create_if()
via the TUNSETIFF ioctl(), a name is allocated by the kernel (eg.
tap0). If the caller supplied a name this is subsequently set via
netlink, after the device has been created.

Now we request the kernel to create the new device with the caller's
requested name in the first instance, thus avoiding the need to
rename the device, and therefore avoiding a window where the device
exists with a different name.

This can be beneficial, for example, when writing systemd-udevd link
files [1]. Having the TAP/TUN devices created with the requested name
ensures they can be correctly matched by the OriginalName option.

Writing link files might be necessary, for example, to avoid VPP and
systemd-udevd racing to set the MAC address on a newly created TAP
interface. systemd-udevd can be configured to not manipulate the MAC
addresses of matched interfaces.

These changes also resolve an issue where the created device would not
be renamed if the caller requested it be moved to a different network
namespace, since vnet_netlink_set_link_name() was not called in that
case.

[1] https://www.freedesktop.org/software/systemd/man/systemd.link.html

Signed-off-by: Duncan Eastoe <duncan@graphiant.com>
Change-Id: I3d657632856d03979d6b914225c3c841c379e0a1
2021-09-15 12:58:35 +00:00
Pierre Pfister c26cc72edf vlib: add graceful termination with status
This commit allows a non-VPP thread to request VPP to gracefully
shutdown and return a specific process status value.

Type: improvement
Change-Id: I9bf52b789e7ee28eb272630eaea495fd94349f79
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2021-09-14 14:42:07 +00:00
Mohammed Hawari 46e020183e misc: volunteer as extra maintainer for DPDK
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Change-Id: I97fa566612641f78c2e9850a251cfe9f2d7cfde1
Type: docs
2021-09-14 06:52:10 +00:00
Nathan Skrzypczak 7854b46f77 interface: fix init fib_index_by_sw_if_index
Type: fix

The init of fib_index_by_sw_if_index wasn't
setting default value to 0. Which we now
need for setting interfaces unnumbered

Change-Id: Ie5be9b5e5373ef055557a871ad4d1c45fbfc1dee
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-09-13 13:54:59 +00:00
Tianyu Li 006bbc4945 snort: fix epoll_wait unsigned return value
When epoll_wait return -1, access array epoll_events[i] out of bound
and lead to segmentation fault.

1. Change return value to signed return value
2. Skip non fatal error e.g. EINTR

Type: fix
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I4ece118999402ec6054baf0efb52419151655def
2021-09-13 13:44:24 +00:00
Florin Coras 596c45b222 tcp session: initialize sw_if_index at connect time
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id0e67a9ce9c5d8bca2cd7a30493f03a02a46dc46
2021-09-13 13:39:18 +00:00
Tianyu Li db79ac0502 dpdk: fix prefetch assert on Arm
CLIB_PREFETCH (cop[1], CLIB_CACHE_LINE_BYTES * 3, STORE);

Note on 64 bytes cache line size arm machines,
CLIB_CACHE_LINE_BYTES 128
CLIB_CACHE_PREFETCH_BYTES 6

above CLIB_PREFETCH () macro will be expand to
ASSERT ((size) <= 4 * CLIB_CACHE_PREFETCH_BYTES);
it will hit assert due to size (i.e. 3 * 128) > 4 * 64

Solution:
Change to CLIB_PREFETCH (cop[1], sizeof(*cop[1]), STORE);

Type: fix
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Reviewed-by: Lijian Zhang <lijian.zhang@arm.com>
Change-Id: Id0981fd5bd2b25ff71db4197b25578d0b7a9803e
2021-09-13 13:38:36 +00:00
Nathan Skrzypczak 14b472e373 ip: show ip table CLI
Type: feature

Thought this might be useful when using
many VRF to get the list of allocated
VRFs and corresponding names

Change-Id: If9d2c6612d4215e7576315d66d1eb130fcecfa13
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-09-13 13:37:03 +00:00
Nick Brown ae4ed3265f build: verbose dpdk build requiring meson 0.55
allow verbose dpdk build to be enabled. Useful for tools, like debian
blhc, that want to inspect build logs.
The '--verbose' option to 'meson compile' requires at least version
0.55.

Type: make
Change-Id: I54e91298f632e2b91247680d9295701b05353abe
Signed-off-by: Nick Brown <nickbroon@gmail.com>
2021-09-13 13:21:23 +00:00
Neale Ranns ea8adf7637 ip-neighbor: Handle local MAC address change for incomplete adjacencies
Type: fix

When the local MAC address of an interface changes the rewrite strings
of all adjacency types need to be updated - this patch fixes the missing
case of incomplete adjacencies.
I moved the update of all adj types into the adj module, since if the
complete adjs were done by the ip-neighbour module and incomplete ones
by adj module, that would mean two walks of the adj DB, as it is not
possible to walk only a specific type.
UT is updated to include the missing case.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Signed-off-by: Ivan Shvedunov <ivan4th@gmail.com>
Change-Id: I36af94976c645bdd0d4d3bc0093b24d7d077e9d7
2021-09-13 08:36:08 +00:00
liuyacan cba87100f1 vcl: avoid duplicated events in epoll lt
1. Filter event ACCEPTED for lt (same as event RX)
2. Do lt check before vppcom_epoll_wait_xxx to avoid
delivering duplicated events.

Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: Ib41c880ceb5072d49e11ab42e31e54398703c0b5
2021-09-10 21:28:44 +00:00
Florin Coras 8cc9321f38 vcl: fix free segments assert
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I837820fd1759cab55f42c54950e991a215234737
2021-09-10 11:37:12 -07:00
Benoît Ganne 10bb21fb13 vlib: fix vlib_buffer_enqueue_to_next() overflow
vlib_buffer_enqueue_to_next() requires to allow overflow of up to 63
elements of 'buffer' and 'nexts' array.
 - add helper to compute the minimum size
 - fix occurences in session and async crypto

Type: fix

Change-Id: If8d7eebc5bf9beba71ba194aec0f79b8eb6d5843
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-09-09 22:22:53 +00:00
Andrew Yourtchenko 2ac5c11cd3 nat: Revert "nat: nat44-ed add session timing out indicator in api"
This reverts commit f059a3452c, which broke the build.

https://s3-logs.fd.io/logs/production/vex-yul-rot-jenkins-1/vpp-merge-master-debian10-x86_64/1344/console.log.gz

Change-Id: I16fece8128fa9973495c587d105a8db57738e8f2
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-09-09 20:19:53 +00:00
Florin Coras 2abbdecc9b srtp: fix header len assert
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ie7b04b11987caadde0942483f171a318ce852228
2021-09-09 19:03:27 +00:00
Alexander Chernavin f059a3452c nat: nat44-ed add session timing out indicator in api
Type: improvement

Currently, NAT44-ED users sessions details are returned for both active
and timed out NAT sessions. It may confuse users that expect to see only
active sessions in the response and make them think that timeouts for
NAT sessions do not work.

With this change, introduce an indicator of timing out for NAT sessions
returned in NAT44-ED user session details.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Change-Id: Ib81ed90369d4b495117538f521e5112e289cf7e6
2021-09-09 16:29:49 +00:00
Ray Kinsella 296f4a3056 stats: revert enable/disable segments polls
This reverts commit 034bd1067e.

Type: refactor

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: Icce6052d6cf9616f7eac3185b4c9aace234aa59f
2021-09-09 16:07:19 +00:00
Benoît Ganne 0bb670eb66 session: fix non-NULL terminated string
vlib_unix_recursive_mkdir () expects a NULL-terminated C-string.

Type: fix

Change-Id: I412b48443d0792307d611c466747c0aa5e423417
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-09-09 14:18:27 +00:00
Klement Sekera c479457096 flowprobe: simplify test logic
Type: refactor
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I9a3923ec1ff1371e870bc57ade4035de07bfbbcb
2021-09-09 14:07:52 +00:00
Benoît Ganne 10355d60db linux-cp: fix non-NULL terminated string
lip->lip_host_name is a non-NULL terminated vector.

Type: fix

Change-Id: Ic154ad7f57f0b507204e55f78995cc0e89132e57
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-09-09 13:20:40 +00:00
Pim van Pelt b89c1ddcb3 linux-cp: Complete interface creation logic
Linux Control Plane interface creation logic is currently only able to
create untagged interfaces, and dot1q VLAN sub-interfaces. This change
makes it possible to create dot1ad VLAN sub-ints, and Q-in-AD as well
as Q-in-Q sub-interfaces as well.

It makes the plugin a bit more robust by catching a few common errors,
such as creating an lcp on a sub-interface without its parent having
one, and creating an lcp on a sub-interface that is not exact-match.

This change has a bunch of smaller improvemnets as well. I documented
my work in this post:
  https://ipng.ch/s/articles/2021/08/12/vpp-1.html

It shows that after the change is merged, all VPP interface types now
create and operate cleanly as LCP interfaces as well.

Type: improvement
Signed-off-by: Pim van Pelt <pim@ipng.nl>
Change-Id: I322669f7316d44c227090b83d6a574fb9c00e76a
2021-09-09 13:02:34 +00:00
Pim van Pelt 7b46e4bc57 linux-cp: fix crash on failed vlib_buffer_copy
Type: fix


Signed-off-by: Pim van Pelt <pim@ipng.nl>
Change-Id: I390282ecc63600728cf11413510c0169178e305c
2021-09-08 22:08:28 +00:00
Matthew Smith 0d56f60c8c vrrp: fix source address on advertisements
Type: fix

Advertisements are dropped by anti spoofing check in some situations.

When a VR has "accept mode" enabled, we must add the virtual IP addresses
to the interface when the VR transitions to master state. When this
happens, fib_sas4_get() starts selecting the newly added virtual IP
address as the source address for packets sent on the interface, so
advertisements are sent with that source address.

When the virtual IP address is being used as a NAT pool address on a peer
in the backup state, the peer sees the address as a local address and
drops incoming advertisements with that source address.

RFC 5798 section 5.1.1.1 says advertisements should use the primary
IPv4 address of the interface they are being sent on as the source
IP address. Since the virtual IP address is only temporarily added
while the VR is in the master state, the virtual IP address should
probably not be considered the primary address of the interface. The
definition of Primary IP Address in section 1.6 says that selecting
the first address is a valid selection algorithm. Do that instead of
calling fib_sas4_get().

Change-Id: Id92f0e3237c7fd491dd8d695bb27307d494f8573
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-09-08 14:40:23 +00:00
Steven Luong f49734d3b9 interface: add custom interface name support
add CLI "set interface name <current-int-name> <new-int-name>
and the corresponding binary API to allow custom interface name
setting for any interface.

Type: feature

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I2b39da59879fd4526bcb5aa5854b6bd21e72ea73
2021-09-08 14:35:54 +00:00
Zachary Leaf 0c373fc928 perfmon: sort 'show perfmon bundle' output
This patch sorts 'show perfmon bundle' output in alphabetical order.

Type: improvement
Signed-off-by: Zachary Leaf <zachary.leaf@arm.com>
Change-Id: I26b379b5d6766b9f87f9a3a5013ea92b207fb5d4
2021-09-08 14:34:44 +00:00
Mohammed Hawari 2f8174ff51 interface: fix coverity issue
Change-Id: I5bb1ab3a57097bf03e7de5541cc8496655bc728f
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: fix
Fixes: 5b22339973
2021-09-08 14:33:03 +00:00
Ray Kinsella 710bdef43c perfmon: add membw-bound bundle
Added memory bandwidth boundedness bundle, closely related to cache-hierarchy.
This bundle works on ICX only, due to an ICX specific counter.

Type: improvement

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: Id385bd5f4e645ac020774e311c623afb64b79b1e
2021-09-08 14:30:03 +00:00
Ray Kinsella c3cb2075de perfmon: adding support for papi TMAM
Adding support for Linux papi TMAM on Intel Snowridge. Adds the ability to
indicate that a bundle should be thread or node bundle type based on available
cpu features (rdpmc support).

Type: feature

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: Ib871b2644fdb2410fbb580e0d21c3a8e2be13aba
2021-09-08 14:30:03 +00:00
Klement Sekera 6f98d9900d nat: remove unusued parameters and use correct parameter types
Type: improvement
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I4f7b3d5354a7658d7271c28444f2f4641f05b28b
2021-09-08 11:38:37 +00:00
Klement Sekera 1dc146efae tests: fix DEBUG=attach multiple worker config
Type: fix
Change-Id: Ie7920c0c699904de0f68ddb749725887b569f295
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-09-08 11:22:45 +00:00
Mohammed Hawari 6d1b079bf3 dpdk: fix coverity
Coverity does not seem happy about exotic control
flows in switch/case statements

Change-Id: Ie006190058f811aacf85125ebc58330d9c53510f
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: fix
Fixes: 0b42ac565b
2021-09-08 10:41:25 +02:00
Mohammed Hawari eed6fc9a98 devices: restore regular af-packet tx path
This change restores the af_packet tx path prior
in use prior to Change
Idf0bdd88990254a614962c2f7bc3e0292ccfd61a but
fixes the stalling issue by ensuring that the next
tx frame pointer is only incremented when a new tx
frame is used. This change also enables the
af_packet PACKET_QDISC_BYPASS option, for better
performance.

Change-Id: I65dde648ed66d21654847a900ceda5a8980ae6ec
Type: improvement
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2021-09-07 17:14:36 +00:00
Mohammed Hawari 0b42ac565b dpdk: lro support
Change-Id: Ifa09dcdfd567ac3c2afab4bd3bd468260f766e1d
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: improvement
2021-09-07 17:13:45 +00:00
Maxime Peim 5b22339973 interface: full poll vector on adaptive mode
When an input supports adaptive mode and enters
in polling, some rx queues may be missing from
the node's rx_poll_vector. To solve the issue,
a full poll vector is being computed in
vnet_hw_if_update_runtime_data, and returned
by vnet_hw_if_get_rxq_poll_vector when the
node is polling in adaptive mode.

Type: fix
Signed-off-by: Maxime Peim <mpeim@cisco.com>
Change-Id: I249bcb20ae0dd28afb0a5ca32993092bafd2f6b1
2021-09-07 15:48:37 +02:00
Ahmed Abdelsalam 277ae8ba43 sr: fixing typo in srv6 End.AS Proxy documentation
Type: docs

Signed-off-by: Ahmed Abdelsalam <ahabdels@cisco.com>
Change-Id: I0cbc1b21f156425e067e9ce90769a62983ca5d01
2021-09-03 16:48:04 +00:00
Filip Varga 4d41f954ab nat: NAT44 ED improvements and fixes
Fixed FIB entry per interface, pool and
static mapping registrations in NAT control plane.
Improved FIB configuration handling in NAT -
added functions to generalize handling of FIB & NAT,
cleaned up interface callback functions. Changed "is_"
macros to inline functions for easier debugging.

Type: improvement

Change-Id: I68a17761a975dd819139ae94e52a8a85d3f27ffc
Signed-off-by: Filip Varga <fivarga@cisco.com>
2021-09-02 14:06:42 +00:00
liuyacan 0242fd81ca udp: fill rmt info if session is connection less
The app may send packet to different remote via sendto() with
same socket (without calling connect()). In such scenario, remote
address need to be filled in.

Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: I49deb308668c05442f237e97acc9bfa239782482
2021-09-01 14:08:00 +00:00
Florin Coras 99e4145fa5 vcl: ignore rx events for sessions in epoll lt list
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I75f935cda00c335d0aefe02bff6fa8505dd931a8
2021-09-01 14:03:41 +00:00
Dave Barach eb2e1f9d33 classify: improve "show classify table" output
Print header for each table.

Type: improvement

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I54ca04d6000a98afb4ad3d2f24caae3349548f23
2021-09-01 13:56:24 +00:00
Florin Coras 4c45d6fef4 vcl: switch part of the tests to sock api
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I427af3be604783d36080c284ed32fb1df525bf54
2021-08-31 21:16:37 +00:00
fangtong 33b18d40c7 vlib: fixed the issue of vpp crash caused by interface up/down
When the interface status changes, the api of vnet_hw_interface_set_flags_helper calls the event processing function (vlib_process_signal_event_helper) for event processing. When the opinter data_vec is NULL, the _ven_len operation of an illegal address will cause vpp crash.

Type:fix

Signed-off-by: fangtong <fangtong2007@163.com>
Change-Id: I7106b2aed7a1fc17f74bf6cb513912af97584f45
2021-08-31 21:06:17 +00:00
Steven Luong 29dc67b5cb vmxnet3: set RX interrupt pending only when needed
When an RX thread handles more than one RX queue and has a mix of
queues in interrupt mode and polling mode, the RX input routine is
naturally in polling mode. In that case, there is no need to set RX
interrupt pending when descriptor is available in the queue for
interrupt mode.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Iedbe57941eca3152c0e8ab9096cc81f315e0a915
2021-08-31 15:27:37 +00:00
Ole Troan 6b3eeebacf vat2: coverity errors in print_template
Dereferencing null pointer fix.
Add checking of return values for all calls in print_template()

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I00073b29ab2e76d5d06af9bd3f5ae2846de4d46d
2021-08-31 15:26:29 +00:00
Ole Troan 43eb6083c5 stats: check epoch in python vpp_stats ls
The VPP Stats Python binding was missing checking epoch.
Resulting it would not pick up changes in the directory.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I3226d71c77be2e80e24b5cd48fc9820833f7d30e
Signed-off-by: Ole Troan <ot@cisco.com>
2021-08-31 15:26:11 +00:00
Sivaprasad Tummala 7311f1863a misc: fix build error in handoffdemo
fix to pass right arguments to vlib_buffer_enqueue_to_thread

Type: fix

Signed-off-by: Sivaprasad Tummala <Sivaprasad.Tummala@intel.com>
Change-Id: I2521ac8d33135843263e8f99318988ec78effbaa
2021-08-31 15:25:46 +00:00
Piotr Bronowski da6520b4ed flow: add esp spi rss type
Type: feature

This patch adds IPsec ESP SPI as RSS key for better IPsec
inbound processing scaling. With this feature enabled,
The NIC will use the packets' SPI index as the RSS key
to distribute them to different queues.

The dpdk-input is also updated to support this feature.

Sample CLI command to enable Ipsec ESP SPI as RSS key:

test flow add src-ip any dst-ip any rss types esp
test flow enable eth0 index 0

Signed-off-by: Piotr Bronowski <piotrx.bronowski@intel.com>
Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com>
Change-Id: I8b7d01cfc065e9099fad33042ce76898e16ddbf0
2021-08-31 15:24:33 +00:00
Fan Zhang 8990f095a5 dpdk: bump to 21.08
Type: feature

This patch bumps dpdk version from 21.05 to 21.08

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: I8f655dae1489c11e7fb2ff86f8a91b597383bd99
2021-08-31 13:23:07 +00:00
Ray Kinsella 034bd1067e stats: enable/disable segments polls
Add an enable/disable field to stats segments poll. The is used by the
perfmon plugin to only poll for stats on an active bundle.

Type: improvement

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: I6404a7db50d8e922afea5da8ec15fdabe3d97157
2021-08-31 12:14:01 +00:00
Ray Kinsella c30157811e stats: stat_validate_counter_vector3 non-static
Make stat_validate_counter_vector3 usable outside of stats segement.  Is
used by the perfmon plugin to allocate a 2-dimension array of values.

Type: improvement

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: If4be2e14ba718c20bf939d162e580880eab1a6cb
2021-08-31 12:13:49 +00:00
Tianyu Li 40ba69271b session: fix prefetch out of struct bound on Arm
CLIB_PREFETCH (s->tx_fifo, 2 * CLIB_CACHE_LINE_BYTES, LOAD);
sizeof(svm_fifo_t) is 128 bytes

Note on 64B cacheline size Arm machine,
CLIB_CACHE_LINE_BYTES 128
CLIB_CACHE_PREFETCH_BYTES 6

above CLIB_PREFETCH () macro will be expand to
__builtin_prefetch(s->tx_fifo)
__builtin_prefetch(s->tx_fifo + 64)
__builtin_prefetch(s->tx_fifo + 128) << prefetch out of range
__builtin_prefetch(s->tx_fifo + 192) << the same here

Solution:
Change to CLIB_PREFETCH (s->tx_fifo, sizeof (*(s->tx_fifo)), LOAD);

Type: fix
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Reviewed-by: Lijian Zhang <lijian.zhang@arm.com>
Change-Id: I745cbce3dbe5afcab53c39189d18392f569df5aa
2021-08-30 18:53:14 +00:00
liuyacan 276675e2a3 vcl: fix vlsh conversion error
vlsh may not belong to the current vcl worker.

Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: I75f962313e538fcd2b1cc6dffca53997648ca43e
2021-08-30 18:46:09 +00:00
Florin Coras 98078ab88d session: close app wrk socket on delete
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I54fa6e8f12bb52988888e7019a88d6891017944c
2021-08-30 14:26:23 +00:00
Ofer Heifetz 18599c5861 tls: use default OpenSSL built-in DH parameters
Type: improvement

Motivation for this addition is to add support for cipher suites
that use Diffie-Hellman Ephemeral (DHE) for key exchange.

Using ephemeral DH key exchange yields forward secrecy as the
connection can only be decrypted when the DH key is known.
Configure OpenSSL to use the default built-in DH parameters for the
SSL_CTX object.

Change-Id: I31aadad047a6394ddf8bfa08471c239e0d1cd63c
Signed-off-by: Ofer Heifetz <oferh@marvell.com>
2021-08-30 14:05:05 +00:00
liuyacan 1b6b09bb51 tcp: Allow accepting session to send custom packet
Tcp may want to send acks in established, but the app
has not called accept() yet.

Type: improvement

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: I43b8cd386e533ca95c8ec260a0a1f695ea140358
2021-08-30 13:55:55 +00:00
Mohsin Kazmi 7da9b5be41 vppinfra: add compress functions for u64, u16 and u8
Type: improvement

Change-Id: I2640148b8959f9a8303520ba2815fe02f1e47928
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-08-27 17:48:42 +00:00
Steven Luong 17a6721858 vlib: vpp banner is outputted to non-interactive vppctl session
Running a batch file which contains many vppctl commands, occasionally,
VPP may spit out the banner for some of the commands. This happens
when VPP erroneously views the vppctl session as interactive.

A simple way to recreate the problem is to run a batch script as followed
while [ 1 ]
do
     vppctl create loopback interface
     vppctl delete loopback interface intfc loop0
done

We have two processes which may display the banner,
unix_cli_new_session_process and unix_cli_process. Normally,
unix_cli_process parses the input tokens and displays the banner after
it negotiates the terminal type with the vppctl app.
unix_cli_new_session_process only displays the banner just in case the
client fails to negotiate terminal type. It runs on a timer and expires
in 1 second to display the banner if by then the terminal type is still
not yet negotiated.

The problem is when the session is killed or exitted, VPP does not remove
the element that was enqueued for cli_new_session_process. The index
for the connection (cf) is recycled. The timer for the queue element
continues to run. When the timer expires for the queue element, it
finds the wrong new session due to index recycling. If the new
session has not had negotiated the terminal type, the banner is printed
erroneously to the new session from cli_new_session_process.

The fix is to clean up the queue element to stop cli_new_session_process
from processing the wrong connection when the session is killed.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Ife2f1b1c95661e442f0fc6b73505e330e6641fc1
2021-08-27 14:57:44 +00:00
Sivaprasad Tummala ba46778f55 snort: fix incorrect data length for snort inspection
set the right data length to decode the packet properly.

Type: fix

Signed-off-by: Sivaprasad Tummala <Sivaprasad.Tummala@intel.com>
Change-Id: I6a35fa54851496d0a958f1a64a547b7f08bb4c19
2021-08-27 14:07:59 +00:00
Benoît Ganne e09a2337b8 bufmon: add buffer monitoring plugin
This plugin allow to keep track of buffer usage in VPP graph nodes. The
main use is to detect buffer leakages.

Type: feature

Change-Id: Iadcf4ab98207fab6e2fa375060879bc2a25b711e
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-27 10:05:31 +00:00
Sivaprasad Tummala a13100f3aa snort: fix snort hang issue when interrupted
fix vpp daq to break out-of-loop when interrupted.

Type: fix

Signed-off-by: Sivaprasad Tummala <Sivaprasad.Tummala@intel.com>
Change-Id: I04594a0b872d16f803d7d7c3b7d9bb60e94bc707
2021-08-27 09:01:11 +00:00
Steven Luong ce5075823f vhost: migrate to new TX infra
Take advantage of the new TX infra and support manual thread placement

Type: improvement

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Id8023846a2eb59125fcf2f80f4f11eb681cf14dc
2021-08-26 14:48:54 +00:00
Benoît Ganne 1eaaba4198 ikev2: check for valid cipher + integrity
Type: improvement

Change-Id: Ic09b2c777a7c82e8d7074164280f817f9141529b
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-26 14:47:35 +00:00
Benoît Ganne 844e94f815 ikev2: fix DNS resolution overflow
VPP DNS resolver expects NULL-terminated C string, whereas the ikev2
plugin only uses non-NULL terminated vectors.

Type: fix

Change-Id: I4a2afffb9e1b6b5dd11842621d5f13bc5a145862
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-26 14:47:24 +00:00
Benoît Ganne 4fe2f4c29e af_xdp: fix stale rx/tx pointers in xsk objects
xsk objects keep pointers to the rx and tx objects. If we re-allocate
the rx and tx vectors after initializing the associated xsk object, the
pointers in the xsk object will be staled.
To avoid this, we allocate the vectors to the max expected size instead
of growing them.

Type: fix

Change-Id: If30433a28c186787d66c12dbab34bf210c95b519
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-26 14:44:39 +00:00
Ahmed Abdelsalam ad8b82d839 sr: extend the srv6 sid list structure
Extend the srv6 sid list structure with policy type to support
different SR policy types

Type: feature
Signed-off-by: Ahmed Abdelsalam <ahabdels@cisco.com>
Change-Id: I6a8cf82b1269e1c46f3757df0047b306f613112b
2021-08-26 14:44:28 +00:00
Tianyu Li c6b6816bed acl: fix prefetch out of struct bound on Arm
fa_session_t *sess;
  CLIB_PREFETCH (sess, 2 * CLIB_CACHE_LINE_BYTES, STORE);

sizeof(fa_session_t) is 128 bytes

i) on 64B cacheline size Arm machine,
above CLIB_PREFETCH () macro will be expand to
__builtin_prefetch(sess)
__builtin_prefetch(sess + 64)
__builtin_prefetch(sess + 128) <<  prefetch is out of range of *sess.
__builtin_prefetch(sess + 192) <<

ii) on 128B cacheline size Arm machine, CLIB_PREFETCH () expands to
__builtin_prefetch(sess)
__builtin_prefetch(sess + 128) << still out of bound

Solution:
Change to CLIB_PREFETCH (sess, sizeof(*sess), STORE);

Type: fix
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Reviewed-by: Lijian Zhang <lijian.zhang@arm.com>
Change-Id: I4b3d4fc55747f3d9ad1bcf24f8834601a03ef55e
2021-08-26 10:28:17 +08:00
jxm ee04de552d fib: fix source address get error for p2p if
Type: fix
Signed-off-by: jxm <jiangxiaoming@outlook.com>
Change-Id: I5a6a1ce9f232d4ed0fd4707cd5aa9b46cc8a2a5a
2021-08-25 21:22:16 +00:00
arikachen a3f93e2fe3 af_xdp: fix xsk_socket__delete left un-cleanup
Type: fix

while xsk fd closed by clib_file_del_by_index fisrt,
xsk_get_mmap_offsets will get wrong off in xsk_socket__delete,
so munmap wrong place.

Signed-off-by: arikachen <eaglesora@gmail.com>
Change-Id: I95464e9b4eec99814bd32d7402c0d60a0605cef5
2021-08-23 13:45:21 +08:00
Stanislav Zaikin b31fbc47f5 ip: check if interface has link-local address
Type: fix

Change-Id: I9d3344374738f8cf883cffb4715c76b50bb4bfce
Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com>
2021-08-20 16:32:49 +02:00
Matthew Smith 48a13f38fa build: include vat2 in RPM file list
Type: fix

Building an RPM with 'make pkg-rpm' fails because /usr/bin/vat2 is
installed but is not included in %files. Add it.

Change-Id: I686b291e4419d39141f0f87da963b413d11ab0f8
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-08-20 11:37:19 +00:00
Benoît Ganne 37665ea1c1 ikev2: fix use-after-free
Type: fix

Change-Id: Ia3bacefdad674807de873b5c457b8470f66193f3
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-20 11:36:51 +00:00
Benoît Ganne ea1f491314 rdma: decrease inlining
Remove aggressive inlining outside of the main loop to improve build
time (from 146s to 22s).

Type: refactor

Change-Id: I3824516a85b5e8d02894e66f19d891569c1a68fb
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-20 11:25:27 +00:00
Benoît Ganne 42e2140dd9 vppinfra: fix clib_random_buffer_get_data caching
When using cached bytes:
 - do not overflow
 - do not return the same bytes twice

Type: fix

Change-Id: I2a87b47a79300e56a2201b8fc3cb6cb15b592e28
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-20 11:24:52 +00:00
Benoît Ganne 1a19552eee buffers: fix buffer linearization
vlib_buffer_chain_linearize() truncates partial data in chained buffers
in corner cases when current_data is negative.
Strengthen test cases to reproduce the errors and fix it.

Type: fix

Change-Id: Ida621923711c5755508224bdc3842b31003c6c0b
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-20 11:23:40 +00:00
Benoît Ganne 4e3af51a66 perfmon: fix perf event user page read
When mmap()-ing perf event in userspace, we must adhere to the kernel
update protocol to read consistent values.
Also, 'offset' is an offset to add to the counter value, not to apply
to the PMC index.

Type: fix

Change-Id: I59106bb3a48185ff3fcb0d2f09097269a67bb6d6
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-20 11:22:29 +00:00
Benoît Ganne 03f2a01599 vlib: add format_vnet_buffer_no_chain
- add format_vnet_buffer and format_vnet_buffer_no_chain to mirror
   format_vlib_buffer and format_vlib_buffer_no_chain
 - format_vnet_buffer used to be the "no chain" version, replace all of
   its current use with the corresponding format_vnet_buffer_no_chain
 - add a function to dump vnet buffer details from gdb

Type: improvement

Change-Id: I143ce845f80e7ef937ea33a557b6e3b5988c5b8f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-20 11:20:36 +00:00
Benoît Ganne 6d020c215a ikev2: decrease inlining
IKEv2 is not optimized for dataplane processing and do not really
benefit from aggressive inlining. Let the compiler decide to improve
build time (from 205s to 30s).

Type: refactor

Change-Id: I5286880b35d338d669ec9382bf049d4486c04947
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-20 11:19:22 +00:00
Benoît Ganne fccced8cdd build: fix external plugin build
Type: fix
Fixes: 88b2e3682b

Change-Id: I4b29924246e2cdc307cf238c5cb8624f14317452
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-20 11:18:57 +00:00
Matthew Smith ad51075029 nat: handle ED in2out ICMP errors with workers
Type: fix

With endpoint dependent NAT44, When there are multiple workers we look
for a flow which matches the packet in order to figure out which worker
should handle the packet. If the packet is an ICMP error, it may be
associated with an existing flow by inspecting the L3/L4 headers that
are included in the message payload.

This was not being done for in2out packets in
nat44_ed_get_in2out_worker_index(), so some packets which were related
to an open session were not being associated with that session and were
being passed to a different thread than the one where the session was
created. Later on, when the packet was processed by the fast path in2out
node, the L3/L4 headers in the payload are inspected and the fast path
node finds the existing session. Since that session is owned by a
different thread than the one the packet is being processed by, the
in2out fast path node can potentially access the wrong session and/or
memory adjacent to the session pool. This can cause a SEGV.

Make nat44_ed_get_in2out_worker_index() look at the inner headers when
processing an ICMP error. THis is already done in
nat44_ed_get_out2in_worker_index() and in the fast path in2out node.

Change-Id: Icdc1abebcbce452ee7be7cb23fc563e09bf575f2
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-08-19 15:52:18 +00:00
Andrew Yourtchenko 1d342b9c8f acl: add API call for setting the toggle to select between linear and bihash-based lookups
In some cases (ACL of a few lines long with a lot of different subnet masks), linear lookup
may be more efficient than the hash-based lookup. Expose the API to allow the control plane
to choose what lookup algorithm to use.

Type: improvement
Change-Id: I540dd1b4ce63c5106a556d550f911f3a578b33e0
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-08-19 08:42:00 +00:00
Steven Luong 38071b1331 vhost: interrupt mode support with mq
vhost interrupt mode support with mq does not work when coalesce frame
is not configured to 0.

When packed-ring is configured, we were also setting the wrong flag
for want-interrupt.

No need to trigger an interrupt to RX infra if there is at least one
queue in the same thread that is doing polling.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I8e64250f2aa6bf611a777a53e4d2c1076d83305f
2021-08-18 12:25:34 +00:00
Ole Troan 91144fbf54 vat2: add shared memory argument
Add prefix argument to specifiy shared memory segment.
Add long arguments.
Add argument to dump apis.
Add help.
Add template argument

E.g:
vat2 --template sw_interface_add_del_address
{
	"_msgname":	"sw_interface_add_del_address",
	"sw_if_index":	0,
	"is_add":	false,
	"del_all":	false,
	"prefix":	"0.0.0.0"
}

Usage: vat2 [OPTION] <message-name> <JSON object>
Send API message to VPP and print reply

-d, --debug       Print additional information
-p, --prefix      Specify shared memory prefix to connect to a given VPP instance
-f, --file        File containing a JSON object with the arguments for the message to send
--dump-apis       List all APIs available from connected VPP instance

Type: improvement
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I2d32483a727bc16990c9a30dfa9bc1fa7b1fa85a
Signed-off-by: Ole Troan <ot@cisco.com>
2021-08-18 08:05:16 +00:00
Alexander Chernavin 4de12b9c62 nat: fix counters increment for output feature
Type: fix

The NAT plugin stores packet counters and a counter represents a vector
indexed by interface index. When an interface is assigned a NAT role,
the counters are validated to be long enough for the given interface
index.

When a packet traverses NAT in2out and output feature is disabled, the
appropriate counters are updated by the RX interface index. In this
case, translation happens on the inside interface and its index was
ensured to be valid in all of the counters during NAT role assignment.

When a packet traverses NAT in2out and output feature is enabled, the
appropriate counters are updated by the RX interface index too. In this
case, translation happens on the outside interface and the packet could
be received on any interface, even with no NAT role assigned. If that's
the case and its index is greater than the greatest index validated in
the counters, a new counter value will be written to memory that does
not belong to the counter. As a result, a crash will occur at some
point.

With this change, use TX interface index to update the counters when
output feature is enabled. TX interface is an actual interface where
translation happens and its index is always valid in the counters.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Change-Id: I53a52af949fe96419e1b5fef4134ab4062198f51
2021-08-17 21:32:14 +00:00
Dave Wallace b93782b366 docs: fix missing dependency on pip-tools for docs-venv
Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Iadb72fd0cb434a7ca2f6cbda7d78209f0746f0c6
2021-08-17 15:11:43 -04:00
Klement Sekera 42cec0e451 ip: reassembly cleanup
Remove unused parameters and fix warnings.

Type: fix
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I2d0e7b84b56817999283ecb6be606159dcb26a28
2021-08-17 16:15:08 +00:00
Mohammed Hawari 6da3769651 build: install ethernet/ethernet_types_api.h
ip/ip_types_api.h is already installed by the build system

Change-Id: Iec43e0ad50e32473d93ea8f7281b5a6477ddc87f
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
Type: improvement
2021-08-17 09:55:05 +00:00
Andrew Yourtchenko 12eb837fc9 build: remove dh-systemd from dependencies
b8e7a45d56 has removed dh-systemd from the DEB_DEPENDS,
however this causes the make pkg-deb to fail on a clean lxd or docker install of debian10 as follows:

dpkg-buildpackage: info: source package vpp
dpkg-buildpackage: info: source version 21.10-rc0~252-g76b19ceaf
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by fd.io VPP <vpp-dev@fd.io>
dpkg-buildpackage: info: host architecture amd64
 dpkg-source --before-build .
dpkg-checkbuilddeps: error: Unmet build dependencies: dh-systemd
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
FAILED: CMakeFiles/pkg/CMakeFiles/pkg-deb
cd /root/t/t/vpp/build-root/build-vpp-native/vpp/CMakeFiles && dpkg-buildpackage -us -uc -b
ninja: build stopped: subcommand failed.
make[1]: *** [/root/t/t/vpp/build-data/packages/vpp.mk:46: vpp-package-deb] Error 1

Thanks to Nick Brown for the help!

Type: fix
Fixes: b8e7a45d56
Change-Id: I08b3a1efcdf6e6096b4ab28263764c1d66be43ef
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-08-17 09:26:28 +00:00
Matthew Smith fc1f3ef76a dpdk: patch i40e PMD to disable source pruning
Type: improvement

X710/XL710 devices have source pruning enabled by default and DPDK
provides no option to disable it. This prevents VRRP from working
properly.

Disable source pruning while setting up the main VSI.

Change-Id: Iaf89f7dae8992e3bd0b9fae83878daa27a5bb931
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-08-16 15:25:26 +00:00
Pim van Pelt 76b19ceafc ip: Fix crash in ip address add on sub-int without exact-match
Type: fix

Creating a sub-int without exact-match set, and subsequently adding an
IPv4 or IPv6 address will crash VPP. This fix catches this situation and
refuses to allow the caller to add an IPv4 or IPv6 address on an
ethernet sub-int that does not have exact-match set.

TESTED:
Before this change, the following crashes VPP:

```
DBGvpp# cre sub TenGigabitEthernet3/0/0 1 dot1q 10
TenGigabitEthernet3/0/0.1
DBGvpp# set interface ip address TenGigabitEthernet3/0/0.1 2001:db8::1/64
<crash>
```

After the change, VPP refuses to act:

```
DBGvpp# cre sub TenGigabitEthernet3/0/0 1 dot1q 10
TenGigabitEthernet3/0/0.1
DBGvpp# set interface ip address TenGigabitEthernet3/0/0.1 192.0.2.1/30
set interface ip address: sub-interface without exact-match doesn't support IP addressing
DBGvpp# set interface ip address TenGigabitEthernet3/0/0.1 2001:db8:1/64
set interface ip address: sub-interface without exact-match doesn't support IP addressing
```

Signed-off-by: Pim van Pelt <pim@ipng.nl>
Change-Id: I42997db314225cd186ebb54013b5717ace7f7bd6
2021-08-14 12:05:39 +00:00
Nathan Skrzypczak 2a1783fd6a ip: punt redirect add nh in api
Type: feature

Change-Id: Ia970f444ba2f38b7a42ea94942c906f1b541511b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-08-13 18:29:23 +00:00
Ole Troan 8034a36a9c ip: source address selection
Implement a simple source address selection algorithm
for IPv4 and IPv6.
IPv6 does not yet implement RFC6724 but supports link-locals.
ping now chooses correct source address for link-local destination.
Added ping support for link-local multicast (e.g. allnodes).

Type: feature
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I1a3382c1f7d4ace0386c2c19e4e47b045b73a3ed
Signed-off-by: Ole Troan <ot@cisco.com>
2021-08-13 18:07:23 +00:00
Dave Wallace d170681b24 tests docs: upgrade python packages
- Upgrade python package requirements for test & docs
- Clean up docs generation warnings
- Consolidate python requirements for docs in test
  requirements specs.
- Upgrade pip

Type: make

Change-Id: I74a3924b43ed93d15b32ec9f6fc41ed1ba95b69b
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-08-13 15:57:21 +00:00
Gabriel Oginski 078d258034 wireguard: add flag to check hmac for decryption
Type: fix

Originally the decryption doesn't check the hmac for chacha20-poly1305.

This patch fixes the problem by adding flag to crypto op to check hmac.

Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com>
Change-Id: I63e06fc011b288b1c9dc1b96a92923f224ef656b
2021-08-13 08:36:09 +00:00
Andrew Yourtchenko 3ea8c5c453 misc: 21.06 Release Notes
Change-Id: Iedd1263a971e50aceb2d579982484dd8873814dc
Type: docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
(cherry picked from commit fc83f8cc67)
2021-08-12 21:09:45 +00:00
Filip Varga 5ae454312c nat: NAT44ED configuration refactor
Refactoring and cleaning up address allocation functions &
ip table update callbacks.

Type: refactor

Change-Id: I9a11700a5f335b64d0d84e04d8e16d040624e01b
Signed-off-by: Filip Varga <fivarga@cisco.com>
2021-08-12 19:08:47 +00:00
Alexander Skorichenko c06d660aba nat: correct pool ops when disable nat44 plugin
Type: fix

Replace vec ops with pool ops when iterating over pool of
interfaces in plugin_disable() functions.
With this change plugin disabling function and interface role
disabling functions iterate over identical sets of registered
interfaces, preventing 'interface couldn't be found' errors.

Signed-off-by: Alexander Skorichenko <askorichenko@netgate.com>
Change-Id: I4e191bcc5322ff1f9f7730c6fda5e6af86a8eec9
2021-08-12 16:26:03 +00:00
Florin Coras e191d76d24 session vcl: cert key add/del with socket api
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I70791285cbf427479d2dcbf70ffdce2253add2fb
2021-08-12 14:47:31 +00:00
Ofer Heifetz 8c7f5c809f tls: add start_listen openssl API return value check
Type: improvement

Check SSL_CTX_use_* API return value and exit on error.
Check BIO_new return code.
Release allocated BIO on error cases.

Change-Id: I9c48e91727e0eeba5d7d74d06fc37634e3c20978
Signed-off-by: Ofer Heifetz <oferh@marvell.com>
2021-08-12 14:26:22 +00:00
Nick Brown b8e7a45d56 build: consistent debhelper 10 support
Type: fix

debian/compat contents were set to 10, but debhelper build dependency,
which is the same thing, was set to only 9. Both are not needed,
debian/compat being deprecated, so use only the latter.
At compat level 10, dh-systemd is integrated directly into debhelper, so
build dependency not needed (And in Debian Bullseye dh-systemd
transitional package is completely removed).
See: https://manpages.debian.org/testing/debhelper/debhelper.7.en.html#COMPATIBILITY_LEVELS

Signed-off-by: Nick Brown <nickbroon@gmail.com>
Change-Id: I5809b739334076d7fa8389b076a97f1648726e6e
2021-08-12 12:24:40 +00:00
Florin Coras afbb33aaf2 svm: make more fifo segment header fields private
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Idab0f455b52a38efd2cf3781497d8cc7f57bfa42
2021-08-11 14:41:32 +00:00
Neale Ranns a70b015cee fib: Compiile time option to use 8-8-8-8 stride tries for FIB rather
than 16-8-8-8

Type: feature

the memory trade-off is:

for 8-8-8-8 tries

DBGvpp# sh ip fib mtrie mem
ipv4-VRF:0 mtrie:8068 hash:3499
totals: mtrie:8068 hash:3499 all:11567

for 16-8-8

DBGvpp# sh ip fib mtrie mem
ipv4-VRF:0 mtrie:333056 hash:3499
totals: mtrie:333056 hash:3499 all:336555

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I5271a4322d786de6e47613cff9bd432762dbed2a
2021-08-11 08:48:42 +00:00
Neale Ranns d6953332db fib: A 16-8-8 and a 8-8-8-8 versions of an ip4_fib_t
Type: feature

The difference being the MTRIE type they contain.
THE FIB continues to use the 16-8-8 version.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I5a54d4e6e6cc639f18a3fb65ef2925507a7ef1de
2021-08-11 08:48:42 +00:00
Neale Ranns 7244a70643 ip: [re]introduce the 8-8-8-8 stride MTRIE
Type: improvement

there's a time-space trade-off between the 16-8-8 and 8-8-8-8 stride.
FIB continues to use the 16-8-8. Other features are now free to make the
choice.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I6691a163486ce62e75e629f6ef0c990f253df8e5
2021-08-11 08:48:42 +00:00
Neale Ranns 6bb2db0ea8 ip: Rename the ip4 mtrie function to be 16_8_8 specific
Type: improvement

the existing mtrie functions use the existing 16_8_8 mtrie. Rename them
to make that explicit. Then we can add the 8_8_8_8 types and functions
alongside.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: If5ce7a282d5d3742dc65bcd0523220235d9c510d
2021-08-11 08:48:42 +00:00
Nathan Skrzypczak a8c720e301 vppinfra: Fix bihash del warning
Type: fix

When freeing an uninstantiated bihash
created with dont_add_to_all_bihash_list = 1
we get a warning. This removes the
warning & the search for the bihash on
cleanup.

Change-Id: Iac50ce7e30b97925768f7ad3cb1d30af14686e21
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-08-10 22:55:20 +00:00
Florin Coras 384bd33e04 tls: picotls optimize rx path
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I0dfa8d60739bc781c37e0d8fced8280b9af93367
2021-08-10 19:24:58 +00:00
Florin Coras 74f0f97ddf tls: picotls optimize writes
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I76a1cd516849cfe5bc87ed2b3707c6f2257126d2
2021-08-10 18:43:32 +00:00
Benoît Ganne 1433185908 misc: do not capture tx packets twice
When a packet goes through interface-output, whether it should be
captured or not will be evaluated twice: in interface-output and in
interface-output-template (<interface_name>-out) node.
interface-output should only capture packets if there is an interface
filter, otherwise it should defer evaluation to
interface-output-template.

Type: fix

Change-Id: Ia720c5d184a236335e1d7d44d8c04caf87af5630
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-10 15:03:13 +00:00
Neale Ranns 31a4aa7b35 ip: Use the IP4 lookup functions
Type: refactor

as opposed to wrtiing out the mtrie steps one by one each time.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I1248861350f9189f9a67ac6e68940813af279e03
2021-08-10 14:45:51 +00:00
Neale Ranns 625a1f1824 ip: Remove the 'test lookup' CLI command
Type: fix

There's no such thing as a conflict between the FIB and adj tables. This
is code that should have been removed way back in 16.04.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I4524e7921b03b89106dd1f35aa1171d0945367cf
2021-08-10 14:45:36 +00:00
Ole Troan 5d280d5b51 ip6-nd: only respond to RS if sending RA is enabled
Even when periodic RAs are disabled VPP would respond to
router solicitations. Making it impossible to have an IPv6
enabled interface with hosts connected to it without VPP
acting as a default router.

This change drops RS messages if the radv_info->send_radv is
off.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I9a68f8e12c93c1c00125b54f8fd454f48fa22caa
Signed-off-by: Ole Troan <ot@cisco.com>
2021-08-09 18:40:23 +00:00
Florin Coras 1885f795ed tls: avoid picotls buffer allocs on rx
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I6cf0c141ab4a4f5a46feb6119fa142148366f0a6
2021-08-06 21:23:19 +00:00
Florin Coras a85a1c352b tls: avoid ptls ctx free on transport close
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I0537fa590b11abddf05550e42c7258549729f8a7
2021-08-06 20:22:17 +00:00
Benoît Ganne 4b9246ad20 classify: fix parsing for l4 match
l4 match parsing should not try to consume the whole input, otherwise
it breaks cli such as:
'classify session ... match l4 dst_port 22 action set-ip4-fib-id 2'

Type: fix

Change-Id: I81a1b5779811f7df8286a371f85fafe09c947b87
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-05 18:15:49 +00:00
Benoît Ganne 41a54f6a0b ip: fix ip punt redirect cli
- restore fib paths support for ip4
 - initialize payload_proto to the relevant default protocol so that
   'via <dev>' paths are supported
 - fix 'rx all'
 - fix temp path vector mem leak

Type: fix

Change-Id: I564d88dc4dce86884ff6791af69974e6d70ff7ca
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-08-05 14:01:23 +00:00
Filip Varga 2621acc510 nat: nat44-ed disable protection for api/cli
Return unsupported error if user calls one
of the configuration functions that can
run only after nat44-ed plugin is
enabled via appropriate api/cli
call.

Type: fix

Change-Id: I0d4ab0684ba5ae23fc2ecc668554a34537c2904a
Signed-off-by: Filip Varga <fivarga@cisco.com>
2021-08-05 08:26:44 +00:00
Mohsin Kazmi 992d996ff5 vppinfra: fix the array mask function
Type: fix
Fixes: 0ec7dad7a0

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I7fab80b3c7e86ac712a34c24ea3e526b0b5bb7ad
2021-08-04 09:19:43 +00:00
Artem Glazychev 3edae35198 memif: fix offset
signs were changed here when calculating the offset:
d78ba5aa01

Type: fix

Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Change-Id: I62b7a409caaf478e40efbdd6000922dcc7e92860
2021-08-04 06:59:49 +00:00
Aloys Augustin 7dbc8ebe54 quic: do not update crypto keys from workers
The vnet_crypto_key_add should only be called from the main thread.
This patch works around this limitation by allocating one key per worker
and updating it on the fly everytime we need to do a crypto operation.

This solution is far from ideal, but quicly has a strong assumption that
it can use a key immediately after determining it, so making the key
creation asynchronous is not a possibility.

Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Change-Id: I19fc5814195156003c36a73bb616738ba9d828f7
Type: fix
2021-08-03 17:09:18 +00:00
Florin Coras 8f174ad5b6 tls: picotls handle accept failures
Should also fix coverity warning.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I068b837377b329a22ace5b2235c6dd9f067ead77
2021-08-03 14:45:01 +00:00
liuyacan bc0c754116 vcl: fix sendto for dgrams
We need to set rmt address before sending connect, otherwise VPP
would connect to 0.0.0.0:0 and return invalid remote ip.

Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: I85ae6931c2ba9f2f77c9ab19a2f801f50745449c
2021-08-02 20:17:43 +08:00
liuyacan f71796e527 vcl: fix sleep time in ldp_pselect()
Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: Ic9c5b23be4bde88880972be35525f12fa2c6dc10
2021-08-02 10:06:10 +08:00
Sivaprasad Tummala fdcbd38dc1 vcl: fix ldp for __recv_chk socket calls
add ldp support for handling __recv_chk socket calls.

Type: fix

Signed-off-by: Sivaprasad Tummala <Sivaprasad.Tummala@intel.com>
Change-Id: I33221c465ac607bc665fcba500dd399a56b32df6
2021-07-31 21:55:11 +05:30
Florin Coras 7f347c13df tls: picotls rx fixes and improvements
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I9ea41b8b271e9123e676acdc581ef429072fe843
2021-07-30 01:15:20 +00:00
Florin Coras 2e2f9df2f1 vcl: move vls pool lock to process local state
We only support one vls worker per process and therefore should not
share lock between processes.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I57bb536cf3bf04e8de031b07cb885f80b4fa03c9
2021-07-29 18:19:18 +00:00
Florin Coras 5e6184317a vcl: vls cleanup and more docs
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: If32dd21842b99e176db1d4eb9f6c6a51fbff1bfe
2021-07-29 18:19:08 +00:00
Filip Tehlar abfe365ef6 ip: add api test file
Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I49c4183a443b7b39924328900e6a6ac2e09be426
2021-07-29 09:13:35 +00:00
Klement Sekera 254c803612 nat: fix ICMP checksum validation
Handle case where extra data is present in buffer which is not part of
IP/ICMP headers.

Type: fix
Fixes: 05b5a5b3b4
Change-Id: Icfef811470056d38c60fc45cc302139ed7594385
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-07-29 08:23:23 +00:00
Zachary Leaf b2d36784ac ipsec: move startup config to common file
The ipsec startup.conf config currently exists in ipsec_tun.c. This is
because currently the only ipsec{...} options are tunnel related.

This patch moves the ipsec config to a common file (ipsec.c) for future
extensibility/addition of non-tunnel related config options.

Type: refactor
Signed-off-by: Zachary Leaf <zachary.leaf@arm.com>
Change-Id: I1569dd7948334fd2cc28523ccc6791a22dea8d32
2021-07-29 07:30:33 +00:00
Stanislav Zaikin 328b5dadb3 gre: set proper fib index for unnumbered interfaces, unset fib index before forwarding gre payload
This commit introduces 2 fixes:
1) After GRE decapsulation sw_if_index[VLIB_TX] is set as fib index of GRE tunnel.
But since GRE tunnel can work on v4 endpoints and have v6 payload, we need to reset it.
In case we get IPv6 packet inside IPv4 GRE tunnel (or vice-versa) fib index can be (and usually is) invalid.
2) Check that ip-table and ip6-table are the same when setting interface as an unnumbered one.

Also, fix for the pipe test include setting the right unnumbered interface for the pipes

Type: fix

Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com>
Change-Id: Id13d239cfdd21e0db6b1c9725f01c40d4af4d800
2021-07-28 08:25:38 +00:00
Fan Zhang a44a0c038f dpdk: fix cryptodev raw data path dequeue
This patch fixes the dpdk cryptodev raw data path dequeue problem.
The fix involves DPDK QAT PMD changes and is to be upstreamed
as a patch. The patch is also sent to DPDK mailing list.

Type: fix

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: I1a9253c8a7fbc2aa43f19f90da45e64e2840356a
2021-07-28 07:54:04 +00:00
Damjan Marion 24d65a1c5a vppinfra: introduce CLIB_CACHE_PREFETCH_BYTES
Type: improvement
Change-Id: Ic07010f11ef303f5213a33b0faf24aaedb62f110
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-07-27 23:40:28 +00:00
Dave Barach 37579c3bcd vlib: don't ASSERT(vm) in worker thread bootstrap
Otherwise, threads declared with .no_data_structure_clone=1 crash on
startup.

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I5dcb25d1b61330fc9eee5427b815fcfcb9bf2153
2021-07-27 21:15:16 +00:00
Sivaprasad Tummala 39d25e5255 vcl: configure the cert-key pair from app
add the cert/key pair as selected by app.

Type: fix

Signed-off-by: Sivaprasad Tummala <Sivaprasad.Tummala@intel.com>
Change-Id: I3cef5bebadd8b192a65857d5f4aa6883c2a8d372
2021-07-27 19:48:11 +00:00
Nathan Skrzypczak 9218c60c2b vppinfra: fix sock init netns
Type: fix

Change-Id: I0ce8183ded601bdab031c9689ca361414fed165f
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-07-27 19:27:09 +00:00
Florin Coras 7743d6bde8 udp: add option to disable icmp unreachables
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I90c2a191ab34a2a7df3fb0a951e5fc78f40ccfe2
2021-07-27 15:43:29 +00:00
liuyacan 603e1a415e vcl: fix some risk after fork()
1.Not only the session in state VCL_STATE_LISTEN_NO_MQ
has no queue. Session in CLOSED also didn't.
2.Refresh vls->wrk_index in child process, or this value will
become invalid if parent exit.
3.Set vlsh->vls_wrk_index once vls_worker_alloc() is called, then
vls_get_worker_index() can be simplified.

Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: If4f5e134915eafd74ce38f585d65ce8836b2e553
2021-07-27 00:58:59 +00:00
liuyacan 6fc07b4326 vcl: fix shutdown deadlock issue
Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: I4974815ecb0e3bff01af983f086ca15d77fd6fb4
2021-07-25 01:58:40 +00:00
liuyacan 9609e26f87 session: avoid vpp deadlock due to app crash
In high traffic scenarios, if app crashed or hang on somewhere, app_mq
will quickly accumulate to full, after which vpp worker will try 100
times before giving up allocating slot for every msg. This will cause
vpp main thread barrier sync to fail.

Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: I2b2bf2b272c5b3ca7e4a56af179af12bbcde149d
2021-07-24 14:50:07 +08:00
Florin Coras 7cb471a027 session vcl: support abstract sockets for app ns
App namespaces can now be associated to a linux ip netns, e.g.:

app ns add id <ns_id> secret <n> sw_if_index <n> netns <netns>

If session layer's app sock api is enabled, this triggers the creation
of an abstract listening socket in the netns that has been configured.
For the example above that would be @vpp/session/<ns_id>.

Consequently, vcl, or other apps attaching to vpp, can connect to said
abstract socket from an ip netns without the need to share unix domain
socket files. In particular, for vcl it's enough to set app-socket-api
to @vpp/session/<ns_id> in the conf file.

Type: feature

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I26fdc626a760a3f423c5b8be4251623f6e9cd73a
2021-07-23 17:42:48 +00:00
Florin Coras f6e284b20c session vcl: explit mq indices in ctrl messages
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I8e80252b85dda9a8f5699109264dc1b913581442
2021-07-22 16:50:46 +00:00
Nathan Skrzypczak 4cef6de591 vppinfra: add abstract socket & netns fns
* Add clib_socket_init support for abstract sockets
if name starts with an '@'
* Add clib_socket_init_netns to open socket in netns
* Add clib_netns_open

Type: feature

Change-Id: I89637ad657c702ec38ddecb5c03a1673d0dfb104
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-07-22 15:22:22 +00:00
Filip Varga 2cf583e3d6 nat: nat44-ed configuration refactor & cleanup
Refactoring static mapping configuration
functions based on feature type.

Type: refactor

Signed-off-by: Filip Varga <fivarga@cisco.com>
Change-Id: I007d9b0e9717ced613fbcef2b11b6853f479be1e
2021-07-22 11:27:07 +00:00
Ole Troan 976a0ed6ac api: enable trace / replay flag on messages
For an unknown reason the trace/replay flags where missed
when moving API message registration code from manually
cut and pasted to aut-generated.

Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ib7625a57d3a263aac154682007459648953b1803
2021-07-22 08:59:24 +00:00
Neale Ranns 8561e73e55 interface: Byte swap the duplex value in interface details
Type: fix

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I6d9473a7b5ab0fbd460e80df36368dd43c5e4fee
2021-07-22 07:50:03 +00:00
Florin Coras c941fcbc78 session: fix unlisten rpc barrier release
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I9301fbbcd611033b4b6ad5313edbc66840f5bb3a
2021-07-21 23:41:16 +00:00
Florin Coras e71aeab392 hsa: separate ctrl and test session accept vcl server
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id6bcf6511c904c8625c0845cd9758539f35e6b50
2021-07-21 21:17:00 +00:00
Florin Coras bbc8faebf1 session: option to use memfd segs for builtin apps
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Iecb171c9451c0fa9a7c6ae4b3e9ab7774a4fe585
2021-07-19 22:22:12 +00:00
Klement Sekera 05b5a5b3b4 nat: harden ICMP handling
Verify that headers are not truncated and that checksums are valid.
Correct checksum computation in translation code.

Type: fix
Change-Id: I6acfcec4661411f83c86b15aafac90cd4538c0b5
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-07-19 17:46:33 +00:00
Damjan Marion 04572bea34 vppinfra: remove pool_foreach_old, pool_foreach_index_old, clib_bitmap_foreach_old
Type: refactor
Change-Id: Ifacdd001bdeb5d609d495406f53546090b86476d
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-07-16 12:59:24 +00:00
Damjan Marion f2912e02ce build: fix formatting of CMake config output
Type: make
Change-Id: I6e40817609d022cb70887f70aa3608dc759fcd76
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-07-16 12:25:46 +00:00
Mohsin Kazmi 537e955545 vlib: add tunnel offload flags for vlib_buffer_t
Type: improvement

Change-Id: Iaad50b2044702c46eff287708dfcb24e61022104
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-07-16 12:02:53 +00:00
Mohsin Kazmi 9a554eea0e dpdk: improve tx offload formatting
Type: improvement

Change-Id: I06eaf39b1e441045c3402cbf40339054ad26ade9
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-07-16 12:02:06 +00:00
Damjan Marion 839b1473e9 snort: snort3 plugin and DAQ
Zero copy interface which exposes VPP buffers to snort instance(s).
Includes VPP DAQ which is compiled only if libdaq 3 API headers are
available.

Type: feature
Change-Id: I96611b43f94fbae091e7391589e0454ae66de88b
Signed-off-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2021-07-16 11:36:32 +00:00
Mohsin Kazmi 0ec7dad7a0 vppinfra: add array mask func
Type: feature

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I6869221917f30f7e59709e20571b4615bc68dc8c
2021-07-16 11:31:27 +02:00
Mohsin Kazmi b31ddb5bb1 ip6-nd: refactor neighbour advertisement code
Type: refactor

Refactor neighbour advertisement code into inline function
to be used solely in feature nodes.

Change-Id: I1e84c54f9807b4e3d90c37526c78a7afcb0ba087
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-07-16 07:03:30 +00:00
Robert Shearman 9f2d8bbfa2 dpdk: enable RX interrupts for the virtio driver
Type: improvement

Request use of RX interrupts for virtio if the system will support it,
which is done by applying the same check as in the virtio driver,
namely whether multiple interrupts are supported. This allows the use
of RX adaptive/interrupt mode instead of just polling, which is useful
in virtualised environments where functionality may be more important
than performance and so using polling mode is wasteful.

Signed-off-by: Robert Shearman <robertshearman@gmail.com>
Change-Id: I29527b6f04b0b1d0c9f9424751b2bd252ed10505
2021-07-15 19:51:58 +00:00
Steven Luong 18991be8d3 ip-neighbor: GARP sent to bogus ip address
The function ip4_neighbor_advertise may be called with NULL addr. In
that case, it looks up addr from fib by calling fib_sas4_get which
returns true or false to indicate whether there is an ip address
associated with the interface or not. But the caller to fib_sas4_get
does not check the return code and blindly assumes there is always an
ip address associated with the interface. As a result, it ends up
sending GARP to the bogus ip address if there is no ip address
associated with the interface.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I7aa0270766c3943ed8ca8f8a092cae34567fd30e
2021-07-15 18:14:44 +00:00
Mohsin Kazmi 850106058f vppinfra: fix the vector funcs test for march variants
Type: fix

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I4208c2622817eb51a4b192cf420f9f1b5f193eef
2021-07-15 16:28:30 +00:00
Neale Ranns 5be3d4cc59 acl: Fix the CLI to accept IPv6 prefixes
Type: fix

DBGvpp# set acl-plugin acl src 1::1/128 dst 2::/64
DBGvpp# sh acl-plugin acl
acl-index 0 count 1 tag {cli}
          0: ipv4 permit src 1.1.1.1/32 dst 1.1.1.2/32 proto 0 sport 0-65535 dport 0-65535
acl-index 1 count 1 tag {cli}
          0: ipv6 permit src 1::1/128 dst 2::/64 proto 0 sport 0-65535 dport 0-65535

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ibb8e20dd4ec2792f423a61eefe7398175e45a577
2021-07-15 14:50:50 +00:00
Sergio Gonzalez Monroy 05698730e4 linux-cp: clear all db entries when deleting a pair
Type: fix

Change-Id: I5677cbb183b10c974a3a2e569d1a7a525a7eb45d
Signed-off-by: Sergio Gonzalez Monroy <sgmonroy@gmail.com>
2021-07-15 12:58:08 +00:00
Damjan Marion af7fb04b81 misc: replace CLIB_PREFETCH with clib_prefetch_{load,store}
Type: refactor
Change-Id: Id10cbf52e8f2dd809080a228d8fa282308be84ac
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-07-15 11:25:08 +00:00
Filip Varga 0aea808ac5 nat: nat44-ed sm fix
Fixing nat44-ed identity map in2out communication.
TCP packets would get dropped because of the order
of testing TCP state.

Type: fix

Change-Id: Ib11e7e75c66945224fecc0bb311733672e315c7d
Signed-off-by: Filip Varga <fivarga@cisco.com>
2021-07-15 11:17:29 +00:00
Filip Varga a0648b66df nat: adding support for icmp-error msg
Extending tests.

Type: test

Change-Id: I98cc1d214ead10ac53fed34a1492d9b5f37975a2
Signed-off-by: Filip Varga <fivarga@cisco.com>
2021-07-14 16:56:47 +00:00
Damjan Marion 45c1973378 vppinfra: remove old and unused vector macros and inlines
Type: refactor
Change-Id: Ic504bcfca6e7fbd85e858c3bc7a4f5e72d931789
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-07-14 14:40:46 +00:00
Xiaoming Jiang 405debc101 api: fix memory error in multi-thread environment
When reading vm->pending_rpc_requests in main thread,
the content may be changed by other workers.

Type: fix

Signed-off-by: Xiaoming Jiang <jiangxiaoming@outlook.com>
Change-Id: I27e9d357b5ecec0f97cd8b950019b35f72fc5f76
2021-07-14 14:33:56 +00:00
liuyacan 5cac2e8194 vcl:fix segfault when unshare NO_MQ session
Session in LISTEN_NO_MQ state has no vpp_evt_q.This
would cause a segfault when vcl try to send msg to
vpp.

Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: I0d21831dbed148cd1b0ca7c083aeeef9e813ef2f
2021-07-14 14:33:00 +00:00
Filip Varga 63e15818bb nat: refactoring NAT44ED cfg functions
Refactored & fixed NAT44ED configuration
functions used for handling interfaces and
nodes.

Type: refactor

Signed-off-by: Filip Varga <fivarga@cisco.com>
Change-Id: I6fbbb7f0fe35d572675997745d53290152987424
2021-07-14 12:46:42 +00:00
Damjan Marion a32416ded5 ip: fix check_adj_port_range_x1
Type: fix
Change-Id: I776bf797e07bb3cfd0510a4c09d8182edfa193bd
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-07-14 12:59:26 +02:00
Damjan Marion 62ed5435a0 classify: cheaper way to check if all elements are zero
Type: improvement
Change-Id: I5f4517c65c37c5d73fcd608dc29dfb1d25d4cd8d
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-07-14 10:44:59 +00:00
Damjan Marion 37e730651a ip: improve check_adj_port_range_x1
Type: improvement
Change-Id: I8337f81fdcd196fcb0e61f8129fec322e9a1e8f1
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-07-14 11:33:39 +02:00
Lijian.Zhang cec484f080 vppinfra: fix saturate add/sub NEON wrappers
Fix the saturate add/sub wrappers in vector_neon.h by using the correct
intrinsics.

Type: fix

Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.com>
Reviewed-by: Tianyu Li <Tianyu.Li@arm.com>
Change-Id: I38a85633948472d4bdb1c199a806633d3070013f
2021-07-13 21:24:04 +00:00
Damjan Marion d154a17989 vppinfra: put each vector function into own file
Type: refactor
Change-Id: I2dd9a18497992ac7e2686c14f5d17eccccda0cda
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-07-13 20:06:19 +00:00
Filip Tehlar b7e4d4487c misc: remove vnet_all_api_h and vnet_msg_enum
These file are no longer needed

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I34f8e0b7e17d9e8c06dcd6c5ffe51aa273cdec07
2021-07-13 19:27:22 +00:00
Neale Ranns 66edaf209f fib: Set the GLEAN flag on attached export routes so that the SAS works
correctly.

Type: fix

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I4bc2eb394a8f9d01c5a12de2ce963c22209d5439
2021-07-13 19:26:07 +00:00
Florin Coras 48057bd234 tcp session: next node config on connects
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ief06b1509d31b55efc8d1436b6ff9e01c6037a32
2021-07-13 17:20:09 +00:00
Miklos Tirpak 32ac2d92da mss_clamp: coverity test fix
Silence the coverity test with setting the interface index
in a variable before the boundary check.

Type: fix
Change-Id: I9bd6db08bfef93142581dada0b6a7d78b7de91e7
Signed-off-by: Miklos Tirpak <miklos.tirpak@gmail.com>
2021-07-13 17:19:51 +00:00
Bin Zhou (bzhou2) 8147559ff9 misc: fix init order to avoid startup warnings
Put plugin init order inside plugin instead of in vnet

Type: improvement

Signed-off-by: Bin Zhou (bzhou2) <bzhou2@cisco.com>
Change-Id: Icbacdb3f1cb4ac9d74e3f78458e8bc333793b4d6
2021-07-13 17:16:54 +00:00
Robert Shearman e3ef3f6aea dpdk: add base-virtaddr config option
Type: improvement

Allow the use of the base-virtaddr config option to be passed through
to DPDK. This is useful to allow use of devices with an IOMMU in
nested VMs without resorting to PA IOVA mode.

Signed-off-by: Robert Shearman <robertshearman@gmail.com>
Change-Id: I32b6513377e6d20bf155e12c45f902d51ea982c4
2021-07-13 16:51:50 +00:00
chenqijun f299dc487d vppinfra: fix SIGSEGV in clib_mem_vm_unmap
while one mprotect PROT_NONE on hdr->next or hdr->prev,
the other one with the PROT_NONE is unmap at the same time,
cause SIGSEGV.

Type: fix

Signed-off-by: arikachen <eaglesora@gmail.com>
Change-Id: I21c0497da140c9654b566e47f767a90346715ed8
2021-07-13 16:50:59 +00:00
Ole Troan 041372b79b papi: remove shared memory transport
This patch removes the papi transport shared memory plugin.
It also removes any dependency on CFFI.

Type: feature
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ia81701c0dc506871e511495d837e41420e1fdf72
Signed-off-by: Ole Troan <ot@cisco.com>
2021-07-12 10:41:10 +00:00
Filip Tehlar 0046e97eb9 session: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Iacc58d27ac51c8a1c571087f98297e046b3477c2
2021-07-12 10:36:46 +00:00
Mohsin Kazmi 0972edc1c2 gso: add ipsec tunnel tests
Type: test

Change-Id: I831bc8c21f8ce869054eafcb14542508039c1b82
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-07-09 13:50:20 +00:00
Florin Coras a4d0956082 session: allow listen in any fib if default namespace
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: If0712f01bdd6f2fc892bcbe4e2cee28affd02520
2021-07-08 21:43:34 +00:00
Steven Luong 8e3f109a06 interface: unable to to assign tx queue to last worker thread
Using the cli "set interface tx-queue", it is not possible to assign
tx queue to the last worker thread.

The reason is that vdm->first_worker_thread_index is 1. Adding that
to clib_bitmap_last_set (bitmap) exceeds vdm->last_worker_thread_index
when the CLI specifies the last worker thread.

Also make the threads argument optional to enable user to unbind a queue
from any thread.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I796259c20f571289c8f5a97b9418caf452d0ab3d
2021-07-08 16:53:17 +00:00
Neale Ranns 0cc23b7dde tap: Set the MTU on the TUN deivce
Type: fix

For a TAP device the MTU is set via the ethernet_register for TUN we
need to do it explicitly (like we do for other tunnel types).

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ie6a13c795acb35b53f8d99b05c70c3e73a7b428e
2021-07-08 15:52:46 +00:00
Florin Coras 647acd5eb4 tcp: use tcp output for half open connections
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I05be39671a9ed0688d4e006f0f9354aa6560a41b
2021-07-06 22:30:28 +00:00
Florin Coras 57b2e4acb1 tcp: use main thread pool for half-opens
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4b3427b966f9ff1ba8895fed7db662d56650f3f5
2021-07-06 14:53:44 -07:00
Benoît Ganne 3169e9ff1e l3xc: reset dpo on delete
When removing a l3xc path we must release the corresponding dpo.

Type: fix

Change-Id: Ib6309797cb11374264c786e064f262ad13c6f0a1
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-07-06 15:43:20 +00:00
wanghanlin 72228a259b vcl: fix packetdrill test error
Type: fix

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: I36d9affa5ee7160e95ee0ed463595bef752bbe9a
2021-07-06 14:28:52 +00:00
wanghanlin 85207e699c vcl: print current app state for timeout
Type: fix

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: Id701b1a1bee4e41b76d324ea05beb07ca57f825c
2021-07-06 14:24:32 +00:00
wanghanlin 97c6e0d4d1 vcl: fix return value check for ldp_fd_to_vlsh
Type: fix

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: Iaad4022e84f4979016bb46c2ff5cfc5d43d6ff50
2021-07-06 14:23:42 +00:00
Rajaselvam 8cc66b55ae vrrp: Fix for test-all testcases failure.
Failure due to the method vrrp_adv_packet scope and self reference.

Type: fix
Signed-off-by: rajaselvam <rajaselvam@gmail.com>
Change-Id: I4ec14ea37928142651eb08fcc5736bc9c24ab062
2021-07-06 13:02:35 +00:00
Damjan Marion a5167edc66 build: remove unused files and sections
Type: make
Change-Id: Ia1d8c53c5fb02f7e5c86efab6e6ccd0fdb16bc96
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-07-02 16:18:33 +00:00
Neale Ranns 9de8028a0b ipsec: ADD/update IPSec documentation
Type: docs

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Ica576e13953a3c720a7c093af649d1dd380cc2c0
2021-07-02 15:45:21 +00:00
Filip Tehlar 0577ff1c39 interface: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I189bfcca2d5fa1f37d05a72c92d04bf260343043
2021-07-02 15:43:33 +00:00
Filip Tehlar 63c0fd334e sr: do not use vnet_all_api.h
.. as it is going to be removed.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Id3a4a4ea1e1b7361d43735bfa5470c28fc65209f
2021-07-02 15:41:28 +00:00
Tianyu Li 70b1cbdf2b vlib: fix buffer pool alignment size
Alignment size should be CLIB_CACHE_LINE_BYTES(64)
instead of CLIB_LOG2_CACHE_LINE_BYTES(6)

Type: fix

Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: If2d5ae324093be64454377866297f5e76ccddc93
2021-07-02 14:28:24 +00:00
Benoît Ganne ecadf6a539 crypto: fix sw async crypto with chained buffers
When a buffer in the chain comes with a negative current_data offset,
the conversion to sgl will skip it because of resetting offset to 0.
Moreover, crypto_start_offset is relative to the 1st buffer data pointer
so we should not check it against subsequent buffers anyway.

Type: fix

Change-Id: Id177a90bfda242a5372c7e8836cf6668e98c780e
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-07-02 09:21:20 +00:00
Neale Ranns e40e7542a9 misc: Don't IPv[46] enable local0, it doesn't receive packets.
Type: improvement

local0 exists just to burn sw_if_index=0 so we catch common API errors.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I2901bb7d36d4c512e6698134a807bf9516ee05db
2021-07-02 07:41:32 +00:00
Steven Luong a57a7005d6 vmxnet3: support manual thread assignment to tx queue
Thread assignment to tx queue has always been automatic and there
was no way to modify it. With this patch, it is now possible to use
the cli "set interface tx-queue" to change the thread assignment to
tx queue for vmxnet3 interface, thanks to the new tx infra.

Type: feature

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I1544e3557f70251d4bd423cc3d9f28ee1d44db4a
2021-07-01 12:55:29 +00:00
Filip Tehlar 5ff59a1f8b ip: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I4b6d881571c158b7a69a78b9680732d090c4f8b5
2021-07-01 10:10:35 +00:00
Benoît Ganne b946b209b9 memif: fix tx desc length for chained buffers in copy mode
When enqueuing chained buffer, we must update the descriptor length for
each fragment descriptor in addition to the last.

Type: fix

Change-Id: I9bc95fe557a049eeea4abd41c695153632d52a52
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-30 18:59:12 +00:00
Benoît Ganne 41e64e76d2 rdma: fix chained buffer tx path in dv mode
When switching to the direct verb chain buffer tx path, we must account
for all remaining packets, including the packets that would wrapped
around.
Previously we were using the 'n' counter but ignoring the 'n_wrap'
counter: if some packets would have wrapped around in the default path,
it would be ignored by the chained buffer tx path.
Compute the correct number of remaining packets based on the old and
current txq tail instead.
Also simplify the chained tx function parameters.

Type: fix

Change-Id: If12b41a8f143fda80290342e2904792f7501c559
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-30 18:58:42 +00:00
Benoît Ganne 44d524f941 memif: fix chain buffer length in zero-copy mode
The total_length_not_including_first_buffer field must be reset before
being updated otherwise it will quicly grows as stale values are reused.

Type: fix

Change-Id: Ic48c0822660998b0dfc0b5fdeadae6071b2d03f7
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-30 18:57:59 +00:00
Florin Coras 734268f484 vcl: coverity fixes
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I290e4b0dff6afe7ce755074f3aaaf945dbbf3e09
2021-06-30 14:51:19 +00:00
Neale Ranns 53dd08c59e ipsec: Derive the TUNNEL_V6 flag from the configured address types
Type: improvement

There's no need for the user to set the TUNNEL_V6 flag, it can be
derived from the tunnel's address type.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I073073dc970b8a3f2b2645bc697fc00db1adbb47
2021-06-30 14:05:55 +00:00
Florin Coras 595724a490 session: free ctrl event data on connect rpc
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I56c4682aef59ed0e69073f9001341c425e65bd48
2021-06-29 20:22:51 +00:00
Neale Ranns 5b8911020e ipsec: Fix setting the hi-sequence number for decrypt
Type: fix

two problems;
 1 - just because anti-reply is not enabled doesn't mean the high sequence
number should not be used.
   - fix, there needs to be some means to detect a wrapped packet, so we
use a window size of 2^30.
 2 - The SA object was used as a scratch pad for the high-sequence
number used during decryption. That means that once the batch has been
processed the high-sequence number used is lost. This means it is not
possible to distinguish this case:
      if (seq < IPSEC_SA_ANTI_REPLAY_WINDOW_LOWER_BOUND (tl))
	{
	  ...
	  if (post_decrypt)
	    {
	      if (hi_seq_used == sa->seq_hi)
		/* the high sequence number used to succesfully decrypt this
		 * packet is the same as the last-sequnence number of the SA.
		 * that means this packet did not cause a wrap.
		 * this packet is thus out of window and should be dropped */
		return 1;
	      else
		/* The packet decrypted with a different high sequence number
		 * to the SA, that means it is the wrap packet and should be
		 * accepted */
		return 0;
	    }
  - fix: don't use the SA as a scratch pad, use the 'packet_data' - the
same place that is used as the scratch pad for the low sequence number.

other consequences:
 - An SA doesn't have seq and last_seq, it has only seq; the sequence
numnber of the last packet tx'd or rx'd.
 - there's 64bits of space available on the SA's first cache line. move
the AES CTR mode IV there.
 - test the ESN/AR combinations to catch the bugs this fixes. This
doubles the amount of tests, but without AR on they only run for 2
seconds. In the AR tests, the time taken to wait for packets that won't
arrive is dropped from 1 to 0.2 seconds thus reducing the runtime of
these tests from 10-15 to about 5 sceonds.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Iaac78905289a272dc01930d70decd8109cf5e7a5
2021-06-29 17:12:28 +00:00
liuyacan 3871bd3a07 tcp: add ACK flag to RST packet
According to RFC 793, the ACK control bit is always sent once
the connection is established.

Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: Id0fe19114a0cc468dbce4c0938b345c2ac339e73
2021-06-29 15:32:49 +00:00
Florin Coras fa3884f8a1 vcl: improvements to epoll lt
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: If585b9c48f67599c56a8c4b4a5139375bc4287f6
2021-06-29 15:22:05 +00:00
Zachary Leaf fbab65bc1c ipsec: increment SPD policy counters for bypass and discard actions in ipsec4_input_node
ipsec_spd_policy_counters are incremented only for matched inbound
PROTECT actions (:273 and :370). BYPASS + DISCARD actions also have
SPD policy counters that should be incremented on match.

This fix increments the counters for inbound BYPASS and DISCARD actions.

Type: fix
Signed-off-by: Zachary Leaf <zachary.leaf@arm.com>
Change-Id: Iac3c6d344be25ba5326e1ed45115ca299dee5f49
2021-06-29 14:52:41 +00:00
wanghanlin b940fd4d5a vcl: Don't use app_socket_api to notify VPP in parent when child exited
Type: fix

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: Icd2fc3cc2d0a0a6060abfb262044cf9e09ab4ba2
2021-06-29 14:30:01 +00:00
wanghanlin 9e42cc285f vcl: Don't memset events to optimize CPU usage
In stress test case, memset may consume a lot of CPU because
vls_epoll_wait is called very frequently.

Type: improvement

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: I9b4e1d6e1c4d7217cf0b2529d8efed792dea7b40
2021-06-29 14:22:13 +00:00
Florin Coras 87f7600dd6 vcl: epoll fix postponed evt handling
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3d208f8ef4638e7557929f4b2bca4d640af85baa
2021-06-28 19:13:29 -07:00
Neale Ranns ff2e4138cc ipsec: Split the SA add_del API into an separate add and del
Type: improvement

the rationale being that the del only requires the SA's ID, so it's a
bit mean to require the client to fill out all the other information as
well.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ibbc20405e74d6a0e1a3797465ead5271f15888e4
2021-06-28 21:26:30 +00:00
Neale Ranns 9c23ff8c8a ipsec: Enable the extended Sequence Number IPSec tests for GCM
Type: test

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ie691b1c8841f5e195525bfff990f12ab918ba394
2021-06-28 13:32:40 +00:00
Jon Loeliger dabdc19798 vrrp: prevent segfault in multicast join due to missing LL Addr
If an IPv6 Link Layer Address is missing from an interface,
treat it as a down interface.  While this fails to send a
VRRP multicast group join, it also prevents a seg fault.

Type: fix
Fixes: 39e9428b90
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Change-Id: Iebf69bb30604a96de6587655eb872aa818158a56
2021-06-26 07:39:10 +00:00
Arthur de Kerhor 905c15319c stats: reverts part of a fix on Python client
Puts return statements back inside code blocks under the lock

Type: fix

Change-Id: I76d426f336200035026b92bcb0ffe2b472a3142d
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2021-06-25 23:26:40 +00:00
Beno�t Ganne 7816403eb2 stats: revert "add a retry mechanism in a symlink test"
This reverts commit d70777aa60.

Reason for revert: wrong fix

Type: fix

Change-Id: Ibff1b977eae8d2cc85888165ebf83c42eb661698
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-25 17:59:18 +02:00
Arthur de Kerhor c9ae8cfacc stats: fix race conditions in vpp-api stats client
Type: fix

Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Ie5c197f6ec0d41d5e405b22662701d83ad94d29e
2021-06-25 01:04:16 +00:00
Xiaoming Jiang 806709fc7c session: fix session formated str output truncated in cli
Type: fix
Signed-off-by: Xiaoming Jiang <jiangxiaoming@outlook.com>
Change-Id: I2c2b739a5aa246bbf53d6663efd403c3aee9dddd
2021-06-24 18:11:13 +00:00
Alexander Chernavin 959613b5d7 linux-cp: stop managing adjacencies for tunnels
Type: fix

Outbound packets which arrive on tun/L3 interfaces use a default
adjacency for the interface & address family from the corresponding
interface pair. However, there are entries in the linux-cp adj table
that are created for them. Managing these entries might cause a
segfault because the rewrite data might exceed the reserved space for
it of 28 bytes in the linux-cp adj key (e.g. in case of GRE IPv6).

With this change, stop creating adjacencies for tun/L3 interfaces in
the linux-cp adj table and delegating them.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Change-Id: I4bcd685860053ab87c65064c182e3ed53fd4fae9
2021-06-24 10:46:19 -04:00
Tianyu Li 1ef38743fd svm: fix asan check failed @svm_map_region on arm
==283032==AddressSanitizer CHECK failed: compiler-rt/lib/asan/asan_mapping.h:366
          "((AddrIsInMem(p))) != (0)" (0x0, 0x0)
    #0 0x49c128 in __asan::AsanCheckFailed
    #1 0x4ae8dc in __sanitizer::CheckFailed
    #2 0x495dec in __asan::ShadowSegmentEndpoint::ShadowSegmentEndpoint
    #3 0x495e48 in __asan_unpoison_memory_region
    #4 0xfffff4e851f8 in svm_map_region /home/vpp/src/svm/svm.c:611:7
    #5 0xfffff4e86d9c in svm_region_init_internal /home/vpp/src/svm/svm.c:797:8
    #6 0xfffff4e87ce4 in svm_region_init_args /home/vpp/src/svm/svm.c:880:3
    #7 0xfffff7f30d30 in vlibmemory_init /home/vpp/src/vlibmemory/memory_api.c:974:3
    #8 0xfffff4fd5368 in vlib_main /home/vpp/src/vlib/main.c:1986:16

svm_global_region_base_va 0x200000000000 is not in the aarch64 mapping range,
leading check failure and vpp cannot start.

aarch64 asan mapping
|| `[0x201000000000, 0xffffffffffff]` || HighMem    ||
|| `[0x041200000000, 0x200fffffffff]` || HighShadow ||
|| `[0x001200000000, 0x0411ffffffff]` || ShadowGap  ||
|| `[0x001000000000, 0x0011ffffffff]` || LowShadow  ||
|| `[0x000000000000, 0x000fffffffff]` || LowMem     ||

x86 asan mapping
|| `[0x10007fff8000, 0x7fffffffffff]` || HighMem    ||
|| `[0x02008fff7000, 0x10007fff7fff]` || HighShadow ||
|| `[0x00008fff7000, 0x02008fff6fff]` || ShadowGap  ||
|| `[0x00007fff8000, 0x00008fff6fff]` || LowShadow  ||
|| `[0x000000000000, 0x00007fff7fff]` || LowMem     ||

Type: fix

Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I55ddbdcd361d66d4cfaf6459b2fa20fd8b64af37
2021-06-24 14:40:58 +00:00
liuyacan cde1769a83 vcl: fix vcl_session_write_ready when connecting
Applications like curl will poll the fd after a non-blocking
connect, so we need to avoid returning the wrong event.

Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: I7ea146fc954fda631b3d88b46bb80adfbcdf137c
2021-06-24 14:37:17 +00:00
Filip Tehlar 5a9d2a1758 l2: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I7b84767e75d5f8310ec071036a5780fa4530f79f
2021-06-24 08:30:43 +00:00
Matthew Smith 2d9ae462ea linux-cp: add callbacks for pair management
Type: improvement

Allow callbacks to be registered which will be called when an
interface pair is added or deleted.

Change-Id: I1c413ac2ada802021f9e56e2f878ce67e5eda2f5
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-06-24 07:14:16 +00:00
Filip Tehlar 9f562cd9e6 virtio: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I4f9316b16f16a48e2042aa17db596bfd181bd314
2021-06-23 22:28:11 +00:00
Jon Loeliger c6fe1e87c6 mss_clamp: iterate enabled direction as a vector, not pool
Type: fix
Fixes: bf55e9931c
Signed-off-by: Jon Loeliger <jdl@netgate.com>
Change-Id: I5410a7a5a8cdc1d41abcc42fe5b42e6e2991dc06
2021-06-23 20:29:12 +00:00
Klement Sekera e506fbc9fe nat: ICMP handling fixes
If ICMP comes from a router on path, source address must not be
rewritten in o2i path to avoid getting wrong checksum.

Fix ICMP checksum computations.

Type: fix
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I035debccf966d7dbd63c364cb1e43380d641f708
2021-06-23 17:18:35 +00:00
Filip Tehlar da5088c930 mpls: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I148022278a792b3687402b6915fe6fb513858a2a
2021-06-23 13:41:21 +00:00
Filip Tehlar 6f6663f3ba span: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I7ec4bbb21a079c6f6adfb4f954054b2b07bf19c5
2021-06-23 13:31:58 +00:00
Filip Tehlar 667bc42009 syslog: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I0971f12b7b82d5134d06ed0539d41624429c992b
2021-06-22 22:33:02 +00:00
Filip Tehlar ec61e1057c tcp: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I3c06e9cb3fabdcdce9c17e93cfedfd771295f589
2021-06-22 20:39:03 +00:00
Florin Coras c53eb72931 session: avoid reordering unlisten and connect msg
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ibe32f7965f8cf457c39845713b029c8a4647ee55
2021-06-22 14:39:14 -07:00
Filip Tehlar 4f348df8cf virtio: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I047310b8c9fcc51dcfb187710ff59b7895abe217
2021-06-22 19:54:55 +00:00
Filip Tehlar ce74c6f016 misc: punt: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I13dae61ddb7150c7fe9a7fd0eae73055ff3f2816
2021-06-22 19:54:55 +00:00
Matthew Smith 6fc9cb2ed5 dpdk: enable igc devices
Type: improvement

Set port type and supported flow actions on 2.5G Intel NICs which are
managed by the igc PMD.

Change-Id: Id144eaa158e24a3f10effb6b517d1c62fba0d2e8
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-06-22 18:09:07 +00:00
Filip Tehlar 1eb9cd36b9 devices: af_packet api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Ic7979755494a2fd23b9fa3d74e14f6b9ea0a46d0
2021-06-22 14:44:46 +00:00
Filip Tehlar db767d6ed5 qos: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I39505763371c98b75ff7b697dacd3eeb0d41d40a
2021-06-22 14:44:32 +00:00
Benoît Ganne f017b81d05 api: asan: use vec_set_len() so ASan can keep track of buffer len
ASan poison/unpoison vectors based on the vector length, but _vec_len()
bypass ASan annotations, contrary to vec_set_len().

Type: fix

Change-Id: I5265a5adcddef1aa11c77e0c3827346b1a66c306
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-22 14:31:38 +00:00
wanghanlin 5788a34be6 vcl: validate vep handle when copying sessions on fork
When copying sessions from parent on fork, we should validate vep handle
in order to EPOLL_CTL_DEL in vcl_session_cleanup correctly when child
exit.

Type: fix

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: I7696ecd898460c9a296d2800e46c7140e2218ed7
2021-06-22 14:30:15 +00:00
wanghanlin d72a034bf9 vcl: move child wrk cleanup from sighandler to vls_epoll_wait
Main process may enter sighandler with a lock, such as lock in localtime
or in mspace_free, and child wrk cleanup may try to get such locks and
cause deadlock.
The patch move cleanup to vls_epoll_wait to wait app's next call.

Type: fix

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: I9b208038a0f49b0ace44684189234aeac9d94730
2021-06-22 14:28:31 +00:00
Filip Tehlar 3808ec06c4 devices: tapv2 api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I0a2c1cbbe798ddf9d08da78bf0b458a0f54fa13a
2021-06-22 14:12:29 +00:00
Filip Tehlar e2fc003f46 sr: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I0bdf870e2e9b0ebc11a3ce252fbd0667a83de4e6
2021-06-22 13:54:23 +00:00
Filip Tehlar 36d5c97985 devices: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I03f51393a92bae45608d9fc9f53164f3b0add3cd
2021-06-22 13:54:09 +00:00
Filip Tehlar 116a1e5277 bonding: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I1de45c4db57444d2d2c9fb91b8a66a4f01be699b
2021-06-22 13:53:56 +00:00
Klement Sekera 79699b00c1 nat: don't drop packet with ttl=1 if output feature
TTL was already decremented in ip4-rewrite so it's okay if it's 1.

Type: fix
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I587dc343737c15247eb62837a06d5e44c0d11acc
2021-06-22 13:23:38 +00:00
Filip Tehlar c73f3299ad ipsec: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I0db7343e907524af5adb2f4771b45712927d5833
2021-06-22 11:24:27 +00:00
Filip Tehlar 41ff1eb5dd ethernet: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Iacaefbf04834f000a14f151c4b848f280ac46d63
2021-06-22 10:04:33 +00:00
Filip Tehlar 102e8a5d60 policer: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I5dd30870443a22a7da65f6b5a6d3967991e2aceb
2021-06-22 10:00:57 +00:00
Filip Tehlar d2e5cf2f1b bfd: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I7a0a189ce635a4a74e63ac4cb133686b8b7ba53a
2021-06-22 10:00:41 +00:00
Arthur de Kerhor d70777aa60 stats: add a retry mechanism in a symlink test
When creating a new node, a corresponding node symlink is created when
the nodes counters update. To be sure we are able to access this
symlink, a retry mechanism was added.

Type: fix

Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Change-Id: Ieb08d8554b4fd13d01e79062b5f820b235be9a13
2021-06-22 10:00:27 +00:00
jiangxiaoming 5ab7dc45b5 build: vpp-ext-deps rpm version check may fail if system language is not English
Type: fix

Signed-off-by: Xiaoming Jiang <jiangxiaoming@outlook.com>
Change-Id: Ib691d8f66b0d6047d23a0bdc4f3d15e6380f31eb
2021-06-22 02:47:22 +00:00
Dave Barach bfb9a66fab vlib: fix coverity warning
Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ib563e2c09d46cc26fb983ffde3d5fcb88166f6a5
2021-06-21 18:23:08 +00:00
Benoît Ganne d4721b2152 vppinfra: asan: fix overflow support
In some part of VPP we are accessing memory past what was allocated for
efficiency when we know it is safe to do so. We need to tell ASan about
it so it does not complain.
The initial attempt was too simple and could not manage cases where the
poisoned memory was scattered. This new attempt is more robust as we
save and restore the full shadow state.
Note it will still not work properly if we poison/unpoison memory while
in an overflow context, but this should not be a big issue as overflow
should only be temporary.

Type: fix

Change-Id: I636f44eb59aa8455a4d13929a3791b56619af7b4
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-21 17:13:05 +00:00
Filip Tehlar 3006289a07 udp: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I0994241df94ad7536be323b9d7c48caf38cc4267
2021-06-21 16:31:23 +00:00
Filip Tehlar bf8c54ad87 feature: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I76be91715953c7cbe704961d1a56c48334656e19
2021-06-21 16:31:02 +00:00
Filip Tehlar 83e5a116ec pg: api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Idf0c24c9c8f8f3c267285c6a231c9c1a364a902a
2021-06-21 16:29:24 +00:00
Filip Tehlar 53dea2792b misc: ipfix api cleanup
Use autogenerated code.
Does not change API definitions.

Type: improvement

Change-Id: I864979ce490651bf1f5fed107620e9bc4ca4bf93
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2021-06-21 12:16:13 +00:00
Filip Tehlar 9597f08f57 flow: api cleanup
Use autogenerated code

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I02f53486723f7ac7e9026ff092b63e86dff13232
2021-06-21 10:59:35 +00:00
Filip Tehlar 7ea3f06936 gso: api cleanup
Use autogenerated code

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Id373c7828d77cca0121baf9c7635cfe2c5f938d7
2021-06-21 10:56:00 +00:00
Filip Tehlar 26c8a7f4c2 vxlan: api cleanup
use autogenerated code

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I163eefa86f3248260481181818d70fa1b6eaa220
2021-06-21 10:55:46 +00:00
Filip Tehlar 43428dbfbb classify: api cleanup
Use autogenerated code.

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: Id7d4d23e4fe707f7049828fec44df7ff0419d23c
2021-06-21 10:54:57 +00:00
Filip Tehlar 52d80c55d6 bier: api cleanup
use autogenerated code

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I86459d918ac46bed523e847db9f9c7179147d022
2021-06-21 10:54:26 +00:00
Neale Ranns 5b71bf3f85 fib: Add unit test for RR source using covers labels
Type: test

UT for patch: 4fc68ee

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I96fac9a6407a7f3ebeecc5e68a7683e541063de7
2021-06-21 07:20:57 +00:00
Florin Coras 6973c73131 session: improve ct locking with multiple workers
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id91c3be57d49745cb3db6c768a8d5d14133f899e
2021-06-18 16:51:42 -07:00
jxm 5de9772c14 session: udp accept session state should be updated by app
Type: fix
Signed-off-by: jxm <jiangxiaoming@outlook.com>
Change-Id: I6fb2620e7076e1e38a2ab85a70febe614b079e67
2021-06-18 03:49:36 +00:00
Florin Coras da78c5abc8 session: optimize ct fifo segment allocations
Allocate per app pair segments with space for more than one fifo.

Type: feature

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ib96fe12b899cb14ff20c0be607814011e2c3fc6a
2021-06-17 14:29:47 +00:00
jxm 975fde82b1 tls: increase engine bits room in handle to support custom engine type
Type: improvement
Signed-off-by: jxm <jiangxiaoming@outlook.com>
Change-Id: I80a51e841f9727b68d1de713b6b6d51675ef53c5
2021-06-17 14:17:57 +00:00
Arthur de Kerhor 55d46df4be fib: changing parsing order to avoid corner case
mfib interface flags are parsed before the interface name. For some
specific names, this creates a bug when adding routes.

ex: ip route add 10.0.2.0/24 via FortyGigabitEthernetd8/0/0
The 'F' at the beginnig of the interface name is parsed as the
"Forward" flag. Because of that, the interface name parsed is
"ortyGigabitEthernetd8/0/0" which results in a parsing error.

Type: fix

Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Change-Id: Ib76c2f86416455841f910f7b466b467001072b70
2021-06-17 10:32:56 +00:00
Neale Ranns 91adf2449f tests: Tests for cross AF routing
Type: test

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Iebee39d0974c6f458863ce6144c6a83bc3cf4cb7
2021-06-17 08:46:00 +00:00
Neale Ranns de0b3b5718 mpls: CLI to show the MPLS forwarding state of an interface
Type: improvement

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I28b98154bbff36e8391a09a2b30302dda4349946
2021-06-17 07:58:41 +00:00
Florin Coras 8eb8d50ecf vcl: fix fifo sharing
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Iec1fe8315a057214901250d5fb06d1c1e33dda46
2021-06-16 23:23:50 +00:00
Florin Coras cba215dad3 vcl: fix worker cleanup
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I575068df56623f24c0290fa42b8d301548a089d4
2021-06-16 22:19:46 +00:00
Florin Coras fe286f7d17 vcl: basic support for epoll level-triggered evts
Type: feature

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I2d5039cd35edd02ffa2439bcac119d0647234385
2021-06-16 22:11:32 +00:00
Stanislav Zaikin 4fc68ee54a fib: copy the path extentions when creating fib src rr entry
Type: fix
Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com>
Change-Id: Ib4957bfc03b0dfc90fd28689d5b32cc3d82e7b74
2021-06-16 14:31:45 +00:00
Alexander Chernavin d52a8921b8 nat: test all intf addrs in is_interface_addr()
Type: fix

Currently, is_interface_addr() tests if a given IPv4 address belongs to
an interface by a given sw_if_index. However, there are several issues:
 * only the first found address on the interface is actually tested,
 * sw_if_index is always cached even if the interface hasn't been
   assigned any addresses yet.

With this change, is_interface_addr() tests all IPv4 addresses on an
interface by a given sw_if_index and caches sw_if_index only if there
are addresses present.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Change-Id: If1acc4a534647a5f0ce8e9b565b867c92a016dc3
2021-06-16 07:58:39 +00:00
Alexander Chernavin b862f1dd52 nat: fix crash when translate unknown proto packets
Type: fix

Currently, there might be a crash in NAT ED mode:
 * if a session for an unknown proto packet cannot be created in2out,
 * if a session for an unknown proto packet cannot be found out2in.

With this change, translate packets only if a session is given in NAT
ED mode.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Change-Id: Iafb332db1ae9a3e76435964ad636037d1b8a51e8
2021-06-16 07:58:17 +00:00
Benoît Ganne 26c6fffa7a stats: fix counters name overflow
sm_directory_vector_by_name is a C-string hashtable, make sure the names
are NULL-terminated.

Type: fix

Change-Id: If44456ef9da69ed012f2b981b58ce732663af67d
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-16 07:41:31 +00:00
Filip Tehlar c863a91340 api: remove custom dump
Type: improvement
Change-Id: I4b9b2be8817be10e46accc19219deb2b544f266b
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2021-06-16 07:26:05 +00:00
Benoît Ganne 217ba5a9de ipsec: fix length check when adding footer+icv
Length check must also take current_data into account.

Type: fix

Change-Id: I7a1b1752868892d40f59490d05452ef24565cca6
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-15 13:37:41 +00:00
liuyacan 7e78119c25 tcp: prevent timer handler being called frequently
In the current implement, tcp would start or up an one tick
retransmit timer for that connection if vlib_buffer_alloc()
return 0. Now the tick is 0.1ms, this means that if VPP is
in a buffer shortage state, there would be a large number of
burst timer expirations.

This commit limits the minimum interval of the retransmission
timer to 100ms.

Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: Ia11d693fe46119c5dc16b24ca93c30c31109057a
2021-06-15 05:27:32 +00:00
Filip Tehlar 4d37bf9821 nsh: api cleanup
use autogenerated code

Type: improvement

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I91a55412f96b138c3c00cbb8943d271c8a6452c9
2021-06-14 16:19:59 +00:00
liuyacan 55c952ed5f vcl: improve shutdown()
This commit does following:

- Change the behavior of shutdown() with SHUT_RDWR flag.
- Check SHUT_RD flag when read()
- Change the errno when write() after SHUT_WR
- Remove unused code

All the above modification passed the packetdrill test.

Type: improvement

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: I0c81f52e563562e58580d70976526b898e65e915
2021-06-14 14:35:04 +00:00
Neale Ranns 89d939e52c linux-cp: Add tests for tun devices
Type: test

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Iec69d8624b15766ed65e7d09777819d2242dee17
2021-06-14 13:13:13 +00:00
Neale Ranns 6197cb730e pg: A Tunnel mode variant of a pg interface
Type: feature

this allows VPP to simulate linux tun devices.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I3adf38b49a254804370f78edd5d275d192fd00a6
2021-06-14 13:12:34 +00:00
Dave Barach 52c33d60bc vlib: fix dangling reference in node_by_name hash
When recycling a debug CLI process node, unix_cli_file_add() needs to
delete and recreate the related node_by_name hash table entry.

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I635da4918509d5b22eae37627c2d9b3608380ca6
2021-06-13 17:42:07 +00:00
Florin Coras ba02641cc7 session: fix listener ct transport retrieval on accept
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ied2608e7a28c59c908803ca676abbe93072fadb8
2021-06-12 21:35:32 +00:00
Florin Coras 41a6fbada1 tcp: fix proto in port reuse check
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I338e61654a62ed6308ecd8bb15e1a8b13cd859b9
2021-06-12 18:51:09 +00:00
Florin Coras 6bd54caf46 session: half-open free only on main thread
TCP and (D)TLS clean up half-opens on main without a lock/barrier so
cleanup initiated from first worker, e.g., cut-throughs, can corrupt the
session pool.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I2e5162831c0e201b22454f17fe55bfac44b85fa9
2021-06-11 14:24:39 +00:00
Mohsin Kazmi 8758a94317 gso: fix the gro re-ordering for packets with PSH
Type: fix

This prevents reordering when a push flag is received.
GRO appends the segment with the push flag to the existing
flow and flushes it immediately.

Change-Id: I61b36209b3381f340594a9cb3ed816d43b02bdff
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-06-11 14:14:49 +00:00
Dave Barach 3db2c670a1 docs: cleanup, remove stale material
Point https://fd.io/docs/vpp/master/links/index.html at docs.fd.io/vpp
instead of at one specific stale release

Remove https://fd.io/docs/vpp/master/featuresbyrelease/index.html

Remove https://fd.io/docs/vpp/master/events/index.html

Remove dead projects from
https://fd.io/docs/vpp/master/relatedprojects/index.html

Remove unsupported distros from
https://fd.io/docs/vpp/master/whatisvpp/supported.html

Reduce (doxygen) list of test framework doc files to actively
supported releases

Type: docs

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I179966fbbe09ac123e5f2647787a8dea93190b5c
2021-06-11 11:50:09 +00:00
Damjan Marion 6195c834ed memif: fix crash with zero-copy slave
Type: fix
Change-Id: I456cc0b0a6f2dc32b14791baf9d4a7f67279e8df
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-06-11 01:19:39 +00:00
Florin Coras f1ddeeb155 vcl: touch fifo on epoll del only if session open
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I0971c18a183319d09486459b0da08d44ce38acef
2021-06-10 15:27:31 +00:00
fangtong dc92159038 memif: fix the spinlock and unlock issue.
when the configuration of tx queues is larger than the worker-threads,
the clib_spinlock_lock_if_init will not be executed, and then this function
will executed the clib_spinlock_unlock_if_init, so this may caused the issue.

Type: fix

Signed-off-by: fangtong <fangtong2007@163.com>
Change-Id: I3ce244cd5e1f410e9f14bd060b929238f069b9fa
2021-06-10 15:13:39 +00:00
Tianyu Li 07d04f7b03 l2: fix vrrp prefix mac comparison
VRRP prefix length is 5 bytes, doesn't make sense
to compare with 6 bytes mac address

Type: fix

Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I70a9c9ca769f34a81cd568f9e6b9a3538e6ec710
2021-06-09 13:47:09 +00:00
Nathan Skrzypczak 8afa5d3ccd cnat: fix spinlock
Type: fix

Change-Id: Id6406702061ada54e51ebcf5c367328605de2b6b
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-06-09 12:16:54 +00:00
Benoît Ganne e9d7b0982d fib: make sure dpo is valid even when path pool expands
The path pool can expand during in fib_path_attached_next_hop_get_adj()
when calling adj_nbr_add_or_lock(). If dpo points to a path->fp_dpo, its
reference becomes stale.
Use a temporary copy instead.

Type: fix

Change-Id: Ie966cb5f3f7b416425964dca12f1f586bfc2010c
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-08 18:53:01 +02:00
Benoît Ganne 9f10edbb46 fib: make sure adj is valid during walk
The adj can be deleted during fib_walk_sync(), make sure it can happen
only after clearing the SYNC_WALK_ACTIVE flag.

Type: fix

Change-Id: I68be00e9602e2783d9dced71c51547c38b7e8a00
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-08 16:44:19 +00:00
Matthew Smith 51d56bab70 ipsec: fix async crypto frame leak
Type: fix

If an async crypto frame is allocated during ESP encrypt/decrypt but
a buffer/op is not subsequently added to the frame, the frame leaks. It
is not submitted if the count of async ops is zero nor is it
returned to the frame pool. This happens frequently if >= 2 worker
threads are configured and a vector of buffers all have to be handed
off to other threads.

Wait until it is almost certain that the buffer will be added to the
frame before allocating the frame to make it more unlikely that an
allocated frame will not have any operations added to it.

For encrypt this is sufficient to ressolve the leak. For decrypt there
is still a chance that the buffer will fail to be added to the frame, so
remove the counter of async ops and ensure that all frames that were
allocated get either submitted or freed at the end.

Change-Id: I4778c3265359b192d8a88ab9f8c53519d46285a2
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-06-08 16:05:37 +00:00
Dave Barach 4de5f9be88 vppinfra: pool_free_elts() now supports fixed-size pools
Test added to the unittest plugin / test_vlib.py

Type: improvement
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I73445e57918347c102ff6f5e8c9ddb9bd96f1407
2021-06-08 15:23:15 +00:00
Florin Coras 0b0d28e9bf vcl: accept zero length writes
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I84985f59274e77219a38ea6ac865fc73ac635d72
2021-06-07 15:24:40 +00:00
Florin Coras 2336831806 vcl: avoid multiple reads on peek
Only try once and return what was found.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I50b1d26babf1b7431d36f6b7472a1fb01475bb35
2021-06-07 15:24:21 +00:00
Simon Zhang 778b3186fc tls: change picotls plugin crypto module to accommodate new version picotls
Type: fix

Change-Id: I58931e235535be7d596ca578790f389b64a4fbd2
Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
2021-06-07 15:14:30 +00:00
Neale Ranns 68d48d94a8 pg: Reduce the inclusion of pg.h
Type: style

reduce the number of files recompiled after changing pg.h from 1110 to
102.

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I50611eba818eeb3a2dffd437a3c72c77766bed80
2021-06-07 07:19:00 +00:00
Florin Coras 2645f68985 vcl: epoll error handling fixes and improvements
- return VPPCOM_EEXIST if attempting to re-add a session
- return VPPCOM_ENOENT if the session to be removed is not epolled
- generate EPOLLIN if adding it through a mod operation on a session
that has data and did not have the event previously set.

Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I728a06b8cf84af8d8c1dea7406e284de8886dffc
2021-06-05 21:25:39 +00:00
Dave Wallace e20d3c8c00 build: fix centos-8 cmake missing package dependency
Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I199fea4607cf38a127ed31b2ddf1dd993a2462ba
2021-06-05 15:46:15 +00:00
Benoît Ganne e631ece4aa ipsec: fix crypto ops in esp decrypt
When both chained and non-chained buffers are processed in the same
vector, make sure the non-chained buffers are processed as non-chained
crypto ops.

Type: fix

Change-Id: I19fc02c25a0d5e2e8a1342e2b88bbae3fe92862f
Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-06-04 18:38:08 +00:00
pibr d838e533f1 dpdk: silence coverity warning on use of uninitialized value
Type: fix

Signed-off-by: Piotr Bronowski <piotrx.bronowski@intel.com>
Change-Id: I76923ad5035498aae821db4fd42a127617476fbb
2021-06-04 18:49:15 +02:00
Tianyu Li 0b65213475 build: fix build error after make wipe
ninja: error: '/home/vpp/src/vpp-api/vapi/fake.api.json',
needed by 'CMakeFiles/vpp-api/vapi/fake.api.vapi.h',
missing and no known rule to make it

Recent fake.api.json has been moved from test/ to src/,
update make wipe to reflect the movement.

Type: fix

Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I1e8ef414a3f8a2fce11767e0778fe21e14d54e6f
2021-06-04 18:06:43 +08:00
jinshaohui dcd7e24037 policer: fix vnet/policer cli <policer bind [unbind] name <name> <worker>> handle
an exception

Type: fix

Signed-off-by: jinshaohui <jinsh11@chinatelecom.cn>
Change-Id: I67b7d0b52c33a5b13ace8fe2d918139d2820e9bf
2021-06-04 08:43:12 +00:00
Florin Coras 5f33d0d437 vcl: avoid updating errno on ldp init check
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I7f5887865aa29c9881b5063be1d7d42369a493c1
2021-06-03 21:47:43 +00:00
Dave Wallace 18c17cb8af build: fix install-deps on centos-8
- Required to fix CI jobs failing due to errant
  upgrade of glibc-devel which cannot be found.

Type: fix

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Iea5ae51de25b7ade1f75e3ce34d8383ed97f12ef
2021-06-03 17:37:27 -04:00
Florin Coras 324d161963 svm: release mem order for fifo chunk list CAS
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Ifad679f46abd6e9c18a3eaf7e55800a09f3791ab
2021-06-03 17:17:43 +00:00
Florin Coras 821b5002bf session: avoid ct connects loop
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I99af136ecab9be1f9e00de6d197b8f1c74ab4b20
2021-06-03 14:25:17 +00:00
Florin Coras 67c90a32b7 session: lcl transport info on accept
Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia46b0b8afed30f84b244c06f0457303f9e8832cd
2021-06-03 14:25:00 +00:00
Matthew Smith 8dd0d75b55 linux-cp: use default adjacency
Type: fix

Outbound packets from the host have an adjacency lookup performed so
buffer metadata can be filled in and output features can be applied.
If no adjacency is found for a packet, it gets dropped. This breaks
DHCP and possibly other things since the DHCP reply to a discover
request is sent to a destination MAC address that is determined by
the contents of the request packet rather than any existing neighbor
table entry.

If adjacency lookup for outbound packets does not find an entry, use
the default adjacency for the interface & address family.

Change-Id: Ia53a4df3a5bad2991768cfe4a84c560b879e656f
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2021-06-03 14:13:44 +00:00
Arthur de Kerhor c5e3a41bbe fib: fix flags updates when adding routes with a udp encap path
When adding a route via a udp encap instance, FIB_ENTRY_FLAG_IMPORT
should not be set. In particular, fib_route_attached_cross_table should
always return false for such paths.
Modified test_udp_encap to leverage the bug that needed to be fixed.

Type: fix
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Change-Id: Iaa9489e96d1cff09751f92c62caf7999d924fd7f
2021-06-03 14:12:54 +00:00
Arthur de Kerhor 9cfbd3b786 misc: bug fixes and improvements for stats Fuse fs
Added syslogs
Added support for symlinks
Relocated make commands in a local Makefile
Dumping stats on index instead of paths
Updated README
Added go.mod and go.sum with relevant dependencies for the module

Type: fix
Change-Id: I2c91317939b2f4d765771ab7038372ae27d3109d
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2021-06-03 07:25:04 +00:00
Florin Coras 2f64790c59 vcl: ldp placeholder for SO_LINGER
Make sure we don't return error if app tries to setsockopt it.

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I1a9a6a8da03380b0b6a6d01efed9b672a3f0b1f9
2021-06-02 15:20:52 +00:00
Florin Coras 427feb6fdd srtp: cleanup build and default to disabled
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I62fb56257445a05105e556d1ea6cc6280b5eeccc
2021-06-01 18:19:02 +00:00
Arthur de Kerhor 7aeb647c69 udp: calculate inner checksums if needed before udp encap
We do not want to encap headers containing wrong checksums.

Additionnally, this clears the checksums offlads flags, which
was something missing since the outer headers checksums were
calculated during the encap. Hence, those should not be
recalculated afterwards.

Type: fix
Change-Id: I7fd07987b4f13f76c6990a1c08dc2f960bdd8de1
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2021-06-01 12:03:47 +02:00
Ruslan Babayev 90f7008dc0 nat: fix broken nat44-ed cli
snat_set_frame_queue_nelts has been replaced with
nat44_ed_set_frame_queue_nelts.

Type: fix
Signed-off-by: Ruslan Babayev <ruslan@babayev.com>
Change-Id: I8d970be71376fdbb2bfd383d4d5824a8def93bb3
2021-05-31 20:23:57 -07:00
Dave Barach 64d20e76b9 interface: fix vnet_sw_interface_update_unnumbered
Unless a software interface is actually unnumbered, do not set
ip[46]_main.lookup_main.if_address_pool_index_by_sw_if_index [sw_if_index]
to ~0

Fixes this scenario:

loop create
set int state loop0 up
create sub-interface loop0 1
set interface ip addr loop0.1 192.168.1.1/24
delete sub-interface loop0.1
set int ip addr loop0 192.168.1.1/24

Type: fix

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I46141d862fa57d70b93d7bb0c105403708165264
2021-05-31 16:23:38 +00:00
Florin Coras 71ee375f72 tls: fix handling of failed connects
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ifbf43dd69aa07be485fe7fa01c917512e423036e
2021-05-29 19:51:58 +00:00
Arthur de Kerhor 8a6f5d394c udp: add udp decapsulation
Possibility to register a port via CLI or API to decap incoming UDP
packets:
 - For CLI, a user needs to specify the inner protocol (only MPLS
   supported for now)
 - For API, the protocol is specified by index
Added unittests

Type: feature
Change-Id: Ifedd86d8db2e355b7618472554fd67d77a13a4aa
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
2021-05-29 18:13:01 +00:00
Florin Coras b740fdc8ff hsa: proxy listener support addition of fifo segments
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I59218f784140ef5ecb8468af6aebfe25fd7703a4
2021-05-29 16:46:03 +00:00
Florin Coras b6fe52f3da tls: fix handling of failed accepts
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I34b53dcaf4f049157b538ea40a39033d43e525a5
2021-05-28 18:48:22 -07:00
Dave Wallace 5c520919e8 svm: fix inadequate atomic load for chunk mgr
- Fixes intermittent LDP cut thru iperf3 test
  failure on AARCH64

Type: fix

Change-Id: Id21a078d642e03d974bacacd1f4d0faa42fb6652
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2021-05-28 16:08:09 +00:00
Damjan Marion d63360cacc build: bash set in ./configure
Type: make
Change-Id: I29dce242579d130afe031715b328d6bba73ec6dd
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-28 17:33:49 +02:00
Mohsin Kazmi 79e087fb0a gso: fix the error handling
Type: fix

Change-Id: I7ada1b780b5c40261f6b14cfadc3f382e4e39086
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-05-28 07:24:10 +00:00
Damjan Marion c0d9ca7fe1 vlib: handoff rework
Type: improvement
Change-Id: I1e199ae31e969154319e94c5cd286b8d8adc6660
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-27 20:54:20 +00:00
Damjan Marion 7cf80af582 build: kindly ask python not to polute src/
Type: make
Change-Id: I1ec82e0f3c19dee79f942996339240c73d4e380c
Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-27 20:53:50 +00:00
Fan Zhang 9303b10897 dpdk: bump to 21.05
Type: feature

This patch bumps DPDK version to 21.05 and updated VPP to
accomodate the changes in DPDK latest version.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: If217441f70c9ab531196dca7ec7a486ec9931cff
2021-05-27 19:38:04 +00:00
Mohsin Kazmi 005605f9b4 interface: add tx-queue cli support for new tx infra
Type: improvement

set interface tx-queue tap1 queue 2 threads 1-2
show hardware-interfaces tap1
              Name                Idx   Link  Hardware
tap1                               2     up   tap1
  Link speed: unknown
  RX Queues:
    queue thread         mode
    0     vpp_wk_1 (2)   polling
  TX Queues:
    queue shared thread(s)
    0     no     0
    1     no     1
    2     yes    1-2
    3     no     3
    4     no     4
  Ethernet address 02:fe:09:3a:48:ff
  VIRTIO interface
     instance 1

set interface tx-queue tap0 queue 4 threads
show hardware-interfaces tap0
              Name                Idx   Link  Hardware
tap0                               1     up   tap0
  Link speed: unknown
  RX Queues:
    queue thread         mode
    0     vpp_wk_0 (1)   polling
  TX Queues:
    queue shared thread(s)
    0     no     0
    1     no     1
    2     no     2
    3     no     3
    4     no
  Ethernet address 02:fe:03:6a:66:fc
  VIRTIO interface
     instance 0

Change-Id: I6154476ec9ff0b14287098529c88a14b779371a5
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-05-27 12:53:02 +00:00
Neale Ranns dfef64b4cd ip: allow the 'ip6 enable' on tunnel interface types
Type: feature

This was limited to HW interface types (for historical reason AFAICT)

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I3785a356ae31722fa60d84f64ec9aa53ebdd615f
2021-05-27 12:06:57 +00:00
Fan Zhang 3f3da0d27d dpdk: fix missing symbol
Type: fix

This patch fixes the missing symbol of dpdk_plugin.so when
creating symmetric key. The solution is to add dependency
of libssl to dpdk cryptodev and disable cryptodev engine
when libssl is not presented.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: I30aa6e3e3af1faefa82883bad613e1d82235a2ec
2021-05-26 21:06:34 +00:00
Florin Coras 57e0af924b vppinfra: explicit blocking mode for sock connects
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I3a33230de13fef613dc9523cf24a9968d200c2e5
2021-05-26 18:47:41 +00:00
Neale Ranns 46cb4c4094 tests: Fix 'test-wipe'
Type: fix

Error:
vagrant@ ~/vpp (make-test-wipe) $ make test-wipe
make[1]: Entering directory '/home/vagrant/vpp/test'
make[2]: Entering directory '/home/vagrant/vpp/test'
make[2]: *** ext: No such file or directory.  Stop.
make[2]: Leaving directory '/home/vagrant/vpp/test'
make[1]: *** [Makefile:239: wipe] Error 2
make[1]: Leaving directory '/home/vagrant/vpp/test'
make: *** [Makefile:440: test-wipe] Error 2

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: I3615a962882d5d56c394aa628e9942fed07cde84
2021-05-26 18:44:08 +00:00
Andrew Yourtchenko 91d6a94845 misc: Initial 21.10-rc0 commit
- Add 21.10 Release Notes placeholder
- Add test framework link

Type:docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Change-Id: I30770a0968bb7215f2727afec4cdc4ef87e49a5e
2021-05-26 11:37:38 +00:00
642 changed files with 25811 additions and 29673 deletions
+1
View File
@@ -2,3 +2,4 @@
host=gerrit.fd.io
port=29418
project=vpp
defaultbranch=stable/2110
+28 -2
View File
@@ -188,6 +188,7 @@ VNET IPSec
I: ipsec
M: Neale Ranns <neale@graphiant.com>
M: Radu Nicolau <radu.nicolau@intel.com>
M: Fan Zhang <roy.fan.zhang@intel.com>
F: src/vnet/ipsec/
VNET Crypto Infra
@@ -219,8 +220,14 @@ F: src/plugins/crypto_openssl/
Plugin - Crypto - ipsecmb
I: crypto-ipsecmb
M: Neale Ranns <neale@graphiant.com>
M: Fan Zhang <roy.fan.zhang@intel.com>
F: src/plugins/crypto_ipsecmb/
Plugin - Crypto - sw_scheduler
I: crypto-sw-scheduler
M: Fan Zhang <roy.fan.zhang@intel.com>
F: src/plugs/crypto_sw_scheduler/
VNET L2
I: l2
M: John Lo <lojultra2020@outlook.com>
@@ -361,6 +368,12 @@ I: flow
M: Damjan Marion <damarion@cisco.com>
F: src/vnet/flow/
VNET Hash
I: hash
M: Mohsin Kazmi <sykazmi@cisco.com>
M: Damjan Marion <damarion@cisco.com>
F: src/vnet/hash/
VPP Main App
I: vpp
M: Dave Barach <vpp@barachs.net>
@@ -412,13 +425,15 @@ F: src/plugins/dispatch-trace
Plugin - DPDK
I: dpdk
M: Damjan Marion <damarion@cisco.com>
M: Mohammed Hawari <mohammed@hawari.fr>
F: src/plugins/dpdk/
Plugin - DPDK Crypto
I: dpdk-ipsec
I: dpdk-cryptodev
M: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@outlook.com>
M: Radu Nicolau <radu.nicolau@intel.com>
F: src/plugins/dpdk/ipsec/
M: Fan Zhang <roy.fan.zhang@intel.com>
F: src/plugins/dpdk/cryptodev/
Plugin - flowprobe
I: flowprobe
@@ -632,6 +647,11 @@ M: Florin Coras <fcoras@cisco.com>
Y: src/plugins/quic/FEATURE.yaml
F: src/plugins/quic/
Plugin - snort plugin
I: snort
M: Damjan Marion <damarion@cisco.com>
F: src/plugins/snort/
libmemif
I: libmemif
M: Damjan Marion <damarion@cisco.com>
@@ -725,6 +745,7 @@ F: src/plugins/cnat
Plugin - Wireguard
I: wireguard
M: Artem Glazychev <artem.glazychev@xored.com>
M: Fan Zhang <roy.fan.zhang@intel.com>
F: src/plugins/wireguard
VPP Config Tooling
@@ -759,6 +780,11 @@ I: srtp
M: Florin Coras <fcoras@cisco.com>
F: src/plugins/srtp/
Plugin - bufmon
I: bufmon
M: Benoît Ganne <bganne@cisco.com>
F: src/plugins/bufmon/
cJSON
I: cjson
M: Ole Troan <ot@cisco.com>
+4 -32
View File
@@ -63,7 +63,7 @@ endif
# +libganglia1-dev if building the gmond plugin
DEB_DEPENDS = curl build-essential autoconf automake ccache
DEB_DEPENDS += debhelper dkms git libtool libapr1-dev dh-systemd dh-python
DEB_DEPENDS += debhelper dkms git libtool libapr1-dev dh-python
DEB_DEPENDS += libconfuse-dev git-review exuberant-ctags cscope pkg-config
DEB_DEPENDS += lcov chrpath autoconf libnuma-dev
DEB_DEPENDS += python3-all python3-setuptools check
@@ -131,7 +131,7 @@ else ifeq ($(OS_ID)-$(OS_VERSION_ID),centos-8)
RPM_DEPENDS += compat-openssl10 openssl-devel
RPM_DEPENDS += python2-devel python36-devel python3-ply
RPM_DEPENDS += python3-virtualenv python3-jsonschema
RPM_DEPENDS += cmake
RPM_DEPENDS += libarchive cmake
RPM_DEPENDS_GROUPS = 'Development Tools'
else
RPM_DEPENDS += yum-utils
@@ -220,7 +220,6 @@ help:
@echo " docs - Build the Sphinx documentation"
@echo " docs-venv - Build the virtual environment for the Sphinx docs"
@echo " docs-clean - Remove the generated files from the Sphinx docs"
@echo " stats-fs-help - Help to build the stats segment file system"
@echo ""
@echo "Make Arguments:"
@echo " V=[0|1] - set build verbosity level"
@@ -296,7 +295,7 @@ else ifeq ($(OS_ID)-$(OS_VERSION_ID),centos-8)
@sudo -E dnf config-manager --set-enabled \
$(shell dnf repolist all 2>/dev/null|grep -i powertools|cut -d' ' -f1)
@sudo -E dnf groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
@sudo -E dnf install $(CONFIRM) $(RPM_DEPENDS)
@sudo -E dnf install --skip-broken $(CONFIRM) $(RPM_DEPENDS)
else ifeq ($(OS_ID),centos)
@sudo -E yum install $(CONFIRM) centos-release-scl-rh epel-release
@sudo -E yum groupinstall $(CONFIRM) $(RPM_DEPENDS_GROUPS)
@@ -362,7 +361,7 @@ wipedist:
.PHONY: wipe
wipe: wipedist test-wipe $(BR)/.deps.ok
$(call make,$(PLATFORM)_debug,$(addsuffix -wipe,$(TARGETS)))
@find . -type f -name "*.api.json" ! -path "./test/*" -exec rm {} \;
@find . -type f -name "*.api.json" ! -path "./src/*" -exec rm {} \;
.PHONY: rebuild
rebuild: wipe build
@@ -669,33 +668,6 @@ featurelist: centos-pyyaml
checkfeaturelist: centos-pyyaml
@extras/scripts/fts.py --validate --all
# Build vpp_stats_fs
.PHONY: stats-fs-install
stats-fs-install:
@extras/vpp_stats_fs/install.sh install
.PHONY: stats-fs-start
stats-fs-start:
@extras/vpp_stats_fs/install.sh start
.PHONY: stats-fs-cleanup
stats-fs-cleanup:
@extras/vpp_stats_fs/install.sh cleanup
.PHONY: stats-fs-help
stats-fs-help:
@extras/vpp_stats_fs/install.sh help
.PHONY: stats-fs-force-unmount
stats-fs-force-unmount:
@extras/vpp_stats_fs/install.sh unmount
.PHONY: stats-fs-stop
stats-fs-stop:
@extras/vpp_stats_fs/install.sh stop
#
# Build the documentation
#
+1278 -5
View File
File diff suppressed because it is too large Load Diff
+2 -17
View File
@@ -29,28 +29,13 @@ ifneq ($(DPDK_MLX5_PMD),)
DPDK_MAKE_ARGS += DPDK_MLX5_PMD=y
endif
DPDK_MLX_IBVERBS_DLOPEN=$(strip $($(PLATFORM)_uses_dpdk_ibverbs_link_dlopen))
ifneq ($(DPDK_MLX_IBVERBS_DLOPEN),)
DPDK_MAKE_ARGS += DPDK_MLX_IBVERBS_DLOPEN=y
endif
DPDK_MLX4_PMD=$(strip $($(PLATFORM)_uses_dpdk_mlx4_pmd))
ifneq ($(DPDK_MLX4_PMD),)
DPDK_MAKE_ARGS += DPDK_MLX4_PMD=y
endif
DPDK_PLATFORM_TARGET=$(strip $($(PLATFORM)_dpdk_target))
ifneq ($(DPDK_PLATFORM_TARGET),)
DPDK_MAKE_ARGS += DPDK_TARGET=$(DPDK_PLATFORM_TARGET)
endif
ifneq (,$(TARGET_PLATFORM))
DPDK_MAKE_ARGS += DPDK_AARCH64_GENERIC=n
endif
DPDK_MAKE_EXTRA_ARGS = $(strip $($(PLATFORM)_dpdk_make_extra_args))
ifneq ($(DPDK_MAKE_EXTRA_ARGS),)
DPDK_MAKE_ARGS += DPDK_MAKE_EXTRA_ARGS="$(DPDK_MAKE_EXTRA_ARGS)"
ifeq ("$(V)","1")
DPDK_MAKE_ARGS += DPDK_VERBOSE=1
endif
external_configure = echo
-5
View File
@@ -26,11 +26,6 @@ libmemif_cmake_args += -DCMAKE_C_FLAGS="$($(TAG)_TAG_CFLAGS)"
libmemif_cmake_args += -DCMAKE_SHARED_LINKER_FLAGS="$($(TAG)_TAG_LDFLAGS)"
libmemif_cmake_args += -DCMAKE_PREFIX_PATH:PATH="$(PACKAGE_INSTALL_DIR)/../vpp"
# Use devtoolset on centos 7
ifneq ($(wildcard /opt/rh/devtoolset-9/enable),)
libmemif_cmake_args += -DCMAKE_PROGRAM_PATH:PATH="/opt/rh/devtoolset-9/root/bin"
endif
libmemif_configure = \
cd $(PACKAGE_BUILD_DIR) && \
$(CMAKE) -G Ninja $(libmemif_cmake_args) $(call find_source_fn,$(PACKAGE_SOURCE))$(PACKAGE_SUBDIR)
-5
View File
@@ -30,11 +30,6 @@ sample-plugin_cmake_args += -DCMAKE_C_FLAGS="$($(TAG)_TAG_CFLAGS)"
sample-plugin_cmake_args += -DCMAKE_SHARED_LINKER_FLAGS="$($(TAG)_TAG_LDFLAGS)"
sample-plugin_cmake_args += -DCMAKE_PREFIX_PATH:PATH="$(PACKAGE_INSTALL_DIR)/../vpp"
# Use devtoolset on centos 7
ifneq ($(wildcard /opt/rh/devtoolset-9/enable),)
sample-plugin_cmake_args += -DCMAKE_PROGRAM_PATH:PATH="/opt/rh/devtoolset-9/root/bin"
endif
sample-plugin_configure = \
cd $(PACKAGE_BUILD_DIR) && \
$(CMAKE) -G Ninja $(sample-plugin_cmake_args) \
-11
View File
@@ -30,16 +30,6 @@ vpp_cmake_args += -DCMAKE_PREFIX_PATH:PATH="$(vpp_cmake_prefix_path)"
ifeq ("$(V)","1")
vpp_cmake_args += -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
endif
ifeq (,$(TARGET_PLATFORM))
ifeq ($(MACHINE),aarch64)
vpp_cmake_args += -DVPP_LOG2_CACHE_LINE_SIZE=7
endif
endif
# Use devtoolset on centos 7
ifneq ($(wildcard /opt/rh/devtoolset-9/enable),)
vpp_cmake_args += -DCMAKE_PROGRAM_PATH:PATH="/opt/rh/devtoolset-9/root/bin"
endif
ifneq ($(VPP_EXTRA_CMAKE_ARGS),)
vpp_cmake_args += $(VPP_EXTRA_CMAKE_ARGS)
@@ -49,7 +39,6 @@ vpp_configure_depend += external-install
vpp_configure = \
cd $(PACKAGE_BUILD_DIR) && \
$(CMAKE) -G Ninja $(vpp_cmake_args) $(call find_source_fn,$(PACKAGE_SOURCE))
#vpp_make_args = --no-print-directory
vpp_build = $(CMAKE) --build $(PACKAGE_BUILD_DIR) -- $(MAKE_PARALLEL_FLAGS)
vpp_install = $(CMAKE) --build $(PACKAGE_BUILD_DIR) -- install | grep -v 'Set runtime path'
-45
View File
@@ -1,45 +0,0 @@
# Copyright (c) 2016 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# vector packet processor
arm32_arch = native
arm32_native_tools = vppapigen
arm32_uses_dpdk = yes
arm32_uses_openssl = no
arm32_root_packages = vpp vlib vlib-api vnet svm vpp-api-test \
gmod
vlib_configure_args_arm32 = --with-pre-data=128
vnet_configure_args_arm32 = --with-dpdk --without-libssl
vpp_configure_args_arm32 = --with-dpdk --without-libssl
arm32_dpdk_arch = "armv7a"
arm32_dpdk_target = "arm-armv7a-linuxapp-gcc"
arm32_dpdk_make_extra_args = "CPU_CFLAGS='-mfloat-abi=hard' \
CONFIG_RTE_EAL_IGB_UIO=y \
CONFIG_RTE_LIBRTE_E1000_PMD=y \
CONFIG_RTE_MAX_LCORE=4 \
CONFIG_RTE_MAX_NUMA_NODES=1"
arm32_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -DVLIB_MAX_CPUS=4 -march=armv7-a \
-fstack-protector-all -fPIC -Werror
arm32_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -DVLIB_MAX_CPUS=4 -march=armv7-a \
-fstack-protector-all -fPIC -Werror
arm32_TAG_CFLAGS = -g -O2 -D_FORTIFY_SOURCE=2 -DVLIB_MAX_CPUS=4 -march=armv7-a \
-fstack-protector -fPIC -Werror
arm32_TAG_LDFLAGS = -g -O2 -D_FORTIFY_SOURCE=2 -DVLIB_MAX_CPUS=4 -march=armv7-a \
-fstack-protector -fPIC -Werror
-87
View File
@@ -1,87 +0,0 @@
# Copyright 2018 NXP
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Configuration for NXP DPAA1/DPAA2 ARM64 based platform
MACHINE=$(shell uname -m)
dpaa_mtune = cortex-A72
dpaa_march = "armv8-a+fp+simd+crc+crypto"
ifeq ($(MACHINE),aarch64)
dpaa_arch = native
else
dpaa_arch = aarch64
dpaa_os = linux-gnu
dpaa_target = aarch64-fsl-linux
dpaa_cross_ldflags = \
-Wl,--dynamic-linker=/lib/ld-linux-aarch64.so.1 \
-Wl,-rpath=/usr/lib64 \
-Wl,-rpath=./.libs \
-Wl,-rpath=$(OPENSSL_PATH)/lib
endif
# Re-write Default configuration, if requied
ifneq ($(CROSS_PREFIX),)
# like: aarch64-linux-gnu
dpaa_target = $(CROSS_PREFIX)
endif
ifneq ($(CPU_MTUNE),)
# like: cortex-A53
dpaa_mtune = $(CPU_MTUNE)
endif
dpaa_native_tools = vppapigen
dpaa_root_packages = vpp
# DPDK configuration parameters
dpaa_uses_dpdk = yes
# Compile with external DPDK only if "DPDK_PATH" variable is defined where we have
# installed DPDK libraries and headers.
ifeq ($(PLATFORM),dpaa)
ifneq ($(DPDK_PATH),)
#dpaa_dpdk_shared_lib = yes
dpaa_uses_external_dpdk = yes
dpaa_dpdk_inc_dir = $(DPDK_PATH)/include/dpdk
dpaa_dpdk_lib_dir = $(DPDK_PATH)/lib
else
# compile using internal DPDK + NXP DPAA2 Driver patch
dpaa_dpdk_arch = "armv8a"
dpaa_dpdk_target = "arm64-dpaa-linuxapp-gcc"
dpaa_dpdk_make_extra_args = "CONFIG_RTE_KNI_KMOD=n"
endif
endif
# Disable the unused plugins in order to decrease the VPP pacakage size.
vpp_configure_args_dpaa = --without-ipv6sr --with-pre-data=128 --without-libnuma
# Other optional vpp_configure_args
ifneq ($(VPP_CFG_ARGS),)
vpp_configure_args_dpaa += $(VPP_CFG_ARGS)
endif
dpaa_debug_TAG_CFLAGS = -g -O0 -DCLIB_DEBUG -fPIC -fstack-protector-all -mtls-dialect=trad \
-march=$(MARCH) -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 -I$(OPENSSL_PATH)/include
dpaa_debug_TAG_LDFLAGS = -g -O0 -DCLIB_DEBUG -fstack-protector-all \
-march=$(MARCH) -Werror -DCLIB_LOG2_CACHE_LINE_BYTES=6 -L$(OPENSSL_PATH)/lib
# Use -rdynamic is for stack tracing, O0 for debugging....default is O2
# Use -DCLIB_LOG2_CACHE_LINE_BYTES to change cache line size
dpaa_TAG_CFLAGS = -g -Ofast -fPIC -march=$(MARCH) -mcpu=$(dpaa_mtune) -mtls-dialect=trad \
-mtune=$(dpaa_mtune) -funroll-all-loops -DCLIB_LOG2_CACHE_LINE_BYTES=6 -I$(OPENSSL_PATH)/include
dpaa_TAG_LDFLAGS = -g -Ofast -fPIC -march=$(MARCH) -mcpu=$(dpaa_mtune) \
-mtune=$(dpaa_mtune) -funroll-all-loops -DCLIB_LOG2_CACHE_LINE_BYTES=6 -L$(OPENSSL_PATH)/lib
-47
View File
@@ -1,47 +0,0 @@
# Copyright (c) 2015 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Qemu "p-series" powerpc64
qppc_os = linux-gnu
qppc_cross_ldflags = \
-Wl,--dynamic-linker=/lib64/ld64.so.1
qppc_arch = powerpc
qppc_root_packages = vppinfra vlib vlib-api vnet svm \
vpp vpp-api-test
vnet_configure_args_qppc = \
--without-libssl
vpp_configure_args_qppc = \
--without-libssl
vlib_configure_args_qppc = --with-pre-data=128
qppc_march=powerpc64
# native tool chain additions for this platform
qppc_native_tools = vppapigen
qppc_uses_dpdk = no
qppc_debug_TAG_CFLAGS = -m64 -g -O0 -DCLIB_DEBUG -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec
qppc_debug_TAG_LDFLAGS = -m64 -g -O0 -DCLIB_DEBUG -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec
qppc_TAG_CFLAGS = -m64 -g -O2 -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec
qppc_TAG_LDFLAGS = -m64 -g -O2 -DCLIB_LOG2_CACHE_LINE_BYTES=6 -maltivec
-3
View File
@@ -16,9 +16,6 @@
MACHINE=$(shell uname -m)
vpp_arch = native
ifeq ($(TARGET_PLATFORM),thunderx)
vpp_dpdk_target = arm64-thunderx-linuxapp-gcc
endif
vpp_root_packages = vpp
-112
View File
@@ -1,112 +0,0 @@
# Copyright (c) 2015 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
######################################################################
# glibc
######################################################################
# glibc needs this for cross compiling
libc_cv_forced_unwind=yes
libc_cv_c_cleanup=yes
libc_cv_ssp=no
# fixes gentoo build; not sure why?
libc_cv_uname_release=""
libc_cv_uname_version=""
ac_cv_header_cpuid_h=yes
######################################################################
# bash
######################################################################
# Bash configure.in uses this to work around an autoconf 2.53 bug
ac_cv_func_setvbuf_reversed=no
ac_cv_rl_version=5.1
bash_cv_termcap_lib=libncurses
# These mostly come from debian bash-2.05b changes
# They are needed to make a functioning bash. Without these
# settings gdbserver exiting would cause the invoking bash to
# exit also.
bash_cv_have_mbstate_t=yes
bash_cv_dup2_broken=no
bash_cv_pgrp_pipe=no
bash_cv_sys_siglist=yes
bash_cv_under_sys_siglist=yes
bash_cv_opendir_not_robust=no
bash_cv_printf_declared=yes
bash_cv_ulimit_maxfds=yes
bash_cv_getenv_redef=yes
bash_cv_getcwd_calls_popen=no
bash_cv_func_strcoll_broken=no
bash_cv_must_reinstall_sighandlers=no
bash_cv_type_quad_t=yes
bash_cv_func_sigsetjmp=present
bash_cv_job_control_missing=present
bash_cv_sys_named_pipes=present
bash_cv_type_rlimit=long
bash_cv_printf_a_format=yes
bash_cv_unusable_rtsigs=no
######################################################################
# Apache
######################################################################
ac_cv_func_setpgrp_void=yes
apr_cv_process_shared_works=yes
apr_cv_tcp_nodelay_with_cork=yes
ap_void_ptr_lt_long=no
case ${host_cpu} in
x86_64 | alpha)
ac_cv_sizeof_ssize_t=8
ac_cv_sizeof_size_t=8
ac_cv_sizeof_pid_t=4
;;
*)
ac_cv_sizeof_ssize_t=4
ac_cv_sizeof_size_t=4
ac_cv_sizeof_pid_t=4
;;
esac
######################################################################
# gdb
######################################################################
gdb_cv_func_ptrace_args=int,int,long,long
######################################################################
# dpkg
######################################################################
dpkg_cv_va_copy=yes
######################################################################
# coreutils
######################################################################
ac_cv_search_clock_gettime=no
gl_cv_fs_space=yes
######################################################################
# tcpdump
######################################################################
ac_cv_linux_vers=2
ac_cv_func_pcap_findalldevs=no
######################################################################
# flex
######################################################################
ac_cv_func_malloc_0_nonnull=yes
ac_cv_func_realloc_0_nonnull=yes
######################################################################
# tar
######################################################################
tar_gl_cv_func_mknod_works=yes
+1 -1
View File
@@ -106,7 +106,7 @@ endif
RPM_VER := $(PKG_VERSION)
RPM_ARCH=$(shell rpm --eval "%{_arch}" 2> /dev/null)
DEV_RPM=vpp-ext-deps-$(RPM_VER)-$(PKG_SUFFIX).$(RPM_ARCH).rpm
INSTALLED_RPM_VER=$(shell rpm -q --queryformat '%{VERSION}-%{RELEASE}' vpp-ext-deps 2> /dev/null | grep -v "not inst")
INSTALLED_RPM_VER=$(shell rpm -q --queryformat '%{VERSION}-%{RELEASE}' vpp-ext-deps 2> /dev/null | grep -v "vpp-ext-deps")
.PHONY: build-rpm install-rpm check-rpm
+11 -6
View File
@@ -22,10 +22,11 @@ DPDK_FAILSAFE_PMD ?= n
DPDK_MACHINE ?= default
DPDK_MLX_IBV_LINK ?= static
dpdk_version ?= 21.02
dpdk_version ?= 21.08
dpdk_base_url ?= http://fast.dpdk.org/rel
dpdk_tarball := dpdk-$(dpdk_version).tar.xz
dpdk_tarball_md5sum_21.02 := 2c3e4800b04495ad7fa8656a7e1a3ec1
dpdk_tarball_md5sum_21.08 := de33433a1806280996a0ecbe66e3642f
dpdk_tarball_md5sum_21.05 := a78bba290b11d9717d1272cc6bfaf7c3
dpdk_tarball_md5sum := $(dpdk_tarball_md5sum_$(dpdk_version))
dpdk_url := $(dpdk_base_url)/$(dpdk_tarball)
dpdk_tarball_strip_dirs := 1
@@ -64,7 +65,7 @@ DPDK_DRIVERS_DISABLED := baseband/\*, \
net/softnic, \
net/thunderx, \
raw/ifpga, \
net/af_xdp
net/af_xdp
DPDK_LIBS_DISABLED := acl, \
bbdev, \
@@ -168,8 +169,8 @@ define dpdk_config_cmds
mkdir -p ../dpdk-meson-venv && \
python3 -m venv ../dpdk-meson-venv && \
source ../dpdk-meson-venv/bin/activate && \
(if ! ls $(PIP_DOWNLOAD_DIR)meson* ; then pip3 download -d $(PIP_DOWNLOAD_DIR) -f $(DL_CACHE_DIR) meson==0.54 setuptools wheel pyelftools; fi) && \
pip3 install --no-index --find-links=$(PIP_DOWNLOAD_DIR) meson==0.54 pyelftools && \
(if ! ls $(PIP_DOWNLOAD_DIR)meson* ; then pip3 download -d $(PIP_DOWNLOAD_DIR) -f $(DL_CACHE_DIR) meson==0.55 setuptools wheel pyelftools; fi) && \
pip3 install --no-index --find-links=$(PIP_DOWNLOAD_DIR) meson==0.55 pyelftools && \
PKG_CONFIG_PATH=$(dpdk_install_dir)/lib/pkgconfig meson setup $(dpdk_src_dir) \
$(dpdk_build_dir) \
$(DPDK_MESON_ARGS) \
@@ -181,10 +182,14 @@ define dpdk_config_cmds
$(call dpdk_config_def,USE_LIBBSD)
endef
ifeq ("$(DPDK_VERBOSE)","1")
DPDK_VERBOSE_BUILD = --verbose
endif
define dpdk_build_cmds
cd $(dpdk_build_dir) && \
source ../dpdk-meson-venv/bin/activate && \
meson compile -C . | tee $(dpdk_build_log) && \
meson compile $(DPDK_VERBOSE_BUILD) -C . | tee $(dpdk_build_log) && \
deactivate
endef
@@ -0,0 +1,40 @@
From 154843b968e98e7d4683f1540631ca324c337073 Mon Sep 17 00:00:00 2001
From: Fan Zhang <roy.fan.zhang@intel.com>
Date: Tue, 27 Jul 2021 16:27:36 +0100
Subject: [dpdk-dev] crypto/qat: fix failed raw data path dequeue
This patch fixes the raw data path dequeue burst fail problem.
Previously the in case the queue is full and not all packets
asked to be dequeued are processed, the dequeue burst will
never happen.
Fixes: c21574edc52a ("cryptodev: add dequeue count parameter in raw API")
Cc: roy.fan.zhang@intel.com
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
---
drivers/crypto/qat/qat_sym_hw_dp.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/drivers/crypto/qat/qat_sym_hw_dp.c b/drivers/crypto/qat/qat_sym_hw_dp.c
index 4305579b54..ac9ac05363 100644
--- a/drivers/crypto/qat/qat_sym_hw_dp.c
+++ b/drivers/crypto/qat/qat_sym_hw_dp.c
@@ -744,14 +744,6 @@ qat_sym_dp_dequeue_burst(void *qp_data, uint8_t *drv_ctx,
n = get_dequeue_count(resp_opaque);
if (unlikely(n == 0))
return 0;
- else if (n > 1) {
- head = (head + rx_queue->msg_size * (n - 1)) &
- rx_queue->modulo_mask;
- resp = (struct icp_qat_fw_comn_resp *)(
- (uint8_t *)rx_queue->base_addr + head);
- if (*(uint32_t *)resp == ADF_RING_EMPTY_SIG)
- return 0;
- }
} else {
if (unlikely(max_nb_to_dequeue == 0))
return 0;
--
2.25.1
@@ -0,0 +1,55 @@
From cbff9112647213bf4376a0c78032d15585a3b5b6 Mon Sep 17 00:00:00 2001
From: Mohsin Kazmi <mohsin.kazmi14@gmail.com>
Date: Thu, 17 Jun 2021 14:57:01 +0200
Subject: [PATCH] net: fix Intel-specific Prepare the outer IPv4 hdr for
checksum
Preparation of the headers for the hardware offload
misses the outer IPv4 checksum offload.
It results in bad checksum computed by hardware NIC.
This patch fixes the issue by setting the outer IPv4
checksum field to 0.
Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")
Cc: stable@dpdk.org
Signed-off-by: Mohsin Kazmi <mohsin.kazmi14@gmail.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
---
lib/net/rte_net.h | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/lib/net/rte_net.h b/lib/net/rte_net.h
index 434435ffa2..42639bc154 100644
--- a/lib/net/rte_net.h
+++ b/lib/net/rte_net.h
@@ -125,11 +125,22 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
* Mainly it is required to avoid fragmented headers check if
* no offloads are requested.
*/
- if (!(ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_L4_MASK | PKT_TX_TCP_SEG)))
+ if (!(ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_L4_MASK | PKT_TX_TCP_SEG |
+ PKT_TX_OUTER_IP_CKSUM)))
return 0;
- if (ol_flags & (PKT_TX_OUTER_IPV4 | PKT_TX_OUTER_IPV6))
+ if (ol_flags & (PKT_TX_OUTER_IPV4 | PKT_TX_OUTER_IPV6)) {
inner_l3_offset += m->outer_l2_len + m->outer_l3_len;
+ /*
+ * prepare outer IPv4 header checksum by setting it to 0,
+ * in order to be computed by hardware NICs.
+ */
+ if (ol_flags & PKT_TX_OUTER_IP_CKSUM) {
+ ipv4_hdr = rte_pktmbuf_mtod_offset(m,
+ struct rte_ipv4_hdr *, m->outer_l2_len);
+ ipv4_hdr->hdr_checksum = 0;
+ }
+ }
/*
* Check if headers are fragmented.
--
2.17.1
@@ -0,0 +1,43 @@
From 7f12cf029c8be96314711bd02b3ea8b2d180d8ca Mon Sep 17 00:00:00 2001
From: Matthew Smith <mgsmith@netgate.com>
Date: Fri, 2 Jul 2021 15:09:25 -0500
Subject: [PATCH] net/i40e: disable source pruning on pf
VRRP advertisement packets are dropped on X710 and XL710 devices
because when a MAC address is added to a device, packets originating
from that MAC address are dropped. We disable source pruning to work
around that issue.
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
---
drivers/net/i40e/i40e_ethdev.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index dd61258739..f5d2a262ec 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -5794,6 +5794,20 @@ i40e_vsi_setup(struct i40e_pf *pf,
* interrupt from device side only.
*/
+ /* disable source pruning */
+ memset(&ctxt, 0, sizeof(ctxt));
+ ctxt.seid = vsi->seid;
+ ctxt.pf_num = hw->pf_id;
+ ctxt.vf_num = 0;
+ ctxt.info.valid_sections |=
+ rte_cpu_to_le_16(I40E_AQ_VSI_PROP_SWITCH_VALID);
+ ctxt.info.switch_id =
+ rte_cpu_to_le_16(I40E_AQ_VSI_SW_ID_FLAG_LOCAL_LB);
+ ret = i40e_aq_update_vsi_params(hw, &ctxt, NULL);
+ if (ret != I40E_SUCCESS) {
+ PMD_DRV_LOG(ERR, "Failed to disable source pruning");
+ }
+
/* Get default VSI parameters from hardware */
memset(&ctxt, 0, sizeof(ctxt));
ctxt.seid = vsi->seid;
--
2.30.1 (Apple Git-130)
@@ -0,0 +1,55 @@
From cbff9112647213bf4376a0c78032d15585a3b5b6 Mon Sep 17 00:00:00 2001
From: Mohsin Kazmi <mohsin.kazmi14@gmail.com>
Date: Thu, 17 Jun 2021 14:57:01 +0200
Subject: [PATCH] net: fix Intel-specific Prepare the outer IPv4 hdr for
checksum
Preparation of the headers for the hardware offload
misses the outer IPv4 checksum offload.
It results in bad checksum computed by hardware NIC.
This patch fixes the issue by setting the outer IPv4
checksum field to 0.
Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")
Cc: stable@dpdk.org
Signed-off-by: Mohsin Kazmi <mohsin.kazmi14@gmail.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
---
lib/net/rte_net.h | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/lib/net/rte_net.h b/lib/net/rte_net.h
index 434435ffa2..42639bc154 100644
--- a/lib/net/rte_net.h
+++ b/lib/net/rte_net.h
@@ -125,11 +125,22 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
* Mainly it is required to avoid fragmented headers check if
* no offloads are requested.
*/
- if (!(ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_L4_MASK | PKT_TX_TCP_SEG)))
+ if (!(ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_L4_MASK | PKT_TX_TCP_SEG |
+ PKT_TX_OUTER_IP_CKSUM)))
return 0;
- if (ol_flags & (PKT_TX_OUTER_IPV4 | PKT_TX_OUTER_IPV6))
+ if (ol_flags & (PKT_TX_OUTER_IPV4 | PKT_TX_OUTER_IPV6)) {
inner_l3_offset += m->outer_l2_len + m->outer_l3_len;
+ /*
+ * prepare outer IPv4 header checksum by setting it to 0,
+ * in order to be computed by hardware NICs.
+ */
+ if (ol_flags & PKT_TX_OUTER_IP_CKSUM) {
+ ipv4_hdr = rte_pktmbuf_mtod_offset(m,
+ struct rte_ipv4_hdr *, m->outer_l2_len);
+ ipv4_hdr->hdr_checksum = 0;
+ }
+ }
/*
* Check if headers are fragmented.
--
2.17.1
Vendored
+1
View File
@@ -1,4 +1,5 @@
#!/usr/bin/env bash
set -o pipefail -o errtrace -o nounset -o errexit
# Experimental script, please consult with dmarion@me.com before
# submitting any changes
-50
View File
@@ -1,50 +0,0 @@
.. _archive:
########
Archive
########
.. toctree::
*****
2018
*****
`<https://docs.fd.io/vpp/18.11>`_
`<https://docs.fd.io/vpp/18.10>`_
`<https://docs.fd.io/vpp/18.07.1>`_
`<https://docs.fd.io/vpp/18.04>`_
`<https://docs.fd.io/vpp/18.01.2>`_
`<https://docs.fd.io/vpp/18.01.1>`_
`<https://docs.fd.io/vpp/18.01>`_
*****
2017
*****
`<https://docs.fd.io/vpp/17.10>`_
`<https://docs.fd.io/vpp/17.07.01>`_
`<https://docs.fd.io/vpp/17.07>`_
`<https://docs.fd.io/vpp/17.04>`_
`<https://docs.fd.io/vpp/17.01.1>`_
`<https://docs.fd.io/vpp/17.01>`_
*****
2016
*****
`<https://docs.fd.io/vpp/16.09>`_
`<https://docs.fd.io/vpp/16.12>`_
+3 -3
View File
@@ -19,8 +19,8 @@
# -- Project information -----------------------------------------------------
project = u'The Vector Packet Processor'
copyright = u'2018-2020, Linux Foundation'
author = u'John DeNisco'
copyright = u'2018-2021, Linux Foundation'
author = u'FD.io VPP Community'
# The short X.Y version
version = u'master'
@@ -109,7 +109,7 @@ html_static_path = ['_static']
def setup(app):
app.add_stylesheet('css/rules.css')
app.add_css_file('css/rules.css')
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
-36
View File
@@ -1,36 +0,0 @@
alabaster==0.7.12
attrs==19.3.0
Babel==2.8.0
certifi==2019.11.28
chardet==3.0.4
commonmark==0.9.1
docutils==0.16
idna==2.9
imagesize==1.2.0
importlib-metadata==1.5.0
Jinja2==2.11.1
jsonschema==3.2.0
MarkupSafe==1.1.1
packaging==20.3
pyaml==20.3.1
pyenchant==3.0.1
Pygments==2.6.1
pyparsing==2.4.6
pyrsistent==0.15.7
pytz==2019.3
PyYAML==5.3.1
recommonmark==0.6.0
requests==2.23.0
six==1.14.0
snowballstemmer==2.0.0
Sphinx==2.4.4
sphinx-rtd-theme==0.4.3
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==1.0.3
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.4
sphinxcontrib-spelling==4.3.0
urllib3==1.25.8
zipp==3.1.0
@@ -1,23 +0,0 @@
.. _2016_04_28_pariseventproposal:
.. toctree::
########################################
2016 May 31st Paris FD.io event proposal
########################################
Event
-----
This presentation was held on May 31st 206.
Speakers
--------
Pierre Pfister
Presentation
------------
`Powerpoint <https://wiki.fd.io/images/d/d1/2016_May_Paris_FD.io_Traing_proposal.pptx>`_
-15
View File
@@ -1,15 +0,0 @@
.. _TSCmeeting:
.. toctree::
########################
April 2016 - TSC Meeting
########################
.. toctree::
:maxdepth: 1
2016_04_28_pariseventproposal.rst
@@ -1,22 +0,0 @@
.. _2017_04_25_buildingincontainerspoc:
.. toctree::
##########################
Building In Containers PoC
##########################
Event
-----
This presentation was held on April 27, 2017
Speakers
--------
Ed Kern
Presentation
------------
`PDF <https://wiki.fd.io/images/a/a8/Building_in_Containers_PoC.pdf>`_
-14
View File
@@ -1,14 +0,0 @@
.. _VPPCall:
.. toctree::
#####################
April 2017 - VPP Call
#####################
.. toctree::
:maxdepth: 1
2017_04_25_buildingincontainerspoc.rst
@@ -1,22 +0,0 @@
.. _2017_06_26_vppcontainernetwork:
.. toctree::
#########################################
VPP and container networking at 110Gbps
#########################################
Event
-----
This presentation was held on June 26th, 2017.
Speakers
--------
Keith Burns
Slideshow
---------
`Powerpoint Presentation <https://wiki.fd.io/images/7/7b/Cisco_Live_VPP_and_container_networking_%28BRKSDN-2119%29.pptx>`_
@@ -1,12 +0,0 @@
.. _CiscoLiveUS:
.. toctree::
#########################
June 2017 - Cisco Live US
#########################
.. toctree::
:maxdepth: 1
2017_06_26_vppcontainernetwork.rst
@@ -1,22 +0,0 @@
.. _2016_08_24_introfdio:
.. toctree::
##############
Intro to FD.io
##############
Event
-----
This presentation was held on August 24th, 2016.
Speakers
--------
Ed Warnicke
Presentation
-------------
`Powerpoint <https://wiki.fd.io/images/8/87/Fd.io_intro_-_Linuxcon_NA_2016.pptx>`_

Some files were not shown because too many files have changed in this diff Show More