vpp.git
5 years agovxlan:offload RX flow 53/12553/16
eyal bari [Tue, 17 Apr 2018 08:20:27 +0000 (11:20 +0300)]
vxlan:offload RX flow

ip4 vxlan cli/api (using flow infra) to create flows and enable them on
different hardware (currently tested with i40e)

to offload a vxlan tunnel onto hw:
set flow-offload vxlan hw TwentyFiveGigabitEthernet3/0/0 rx vxlan_tunnel1

to remove offload:
set flow-offload vxlan hw TwentyFiveGigabitEthernet3/0/0 rx vxlan_tunnel1 del

TODO:ipv6 handling

Change-Id: I70e61f792ef8e3f007d03d7df70e97ea4725b101
Signed-off-by: Eyal Bari <ebari@cisco.com>
5 years agoavf: fix crash if device is busy 87/12987/4
Jakub Grajciar [Mon, 11 Jun 2018 10:22:46 +0000 (12:22 +0200)]
avf: fix crash if device is busy

Change-Id: I170d78c8e5f7e16a264c9f226a09693109aece5e
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
5 years agotcp: add close-wait state flags 96/12996/2
Florin Coras [Mon, 11 Jun 2018 20:15:11 +0000 (13:15 -0700)]
tcp: add close-wait state flags

Change-Id: I35508d5251633396393f52842d1b58bc1c1463f6
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoMTU assigning to itself (Coverity) 00/13000/1
Ole Troan [Tue, 12 Jun 2018 09:39:15 +0000 (11:39 +0200)]
MTU assigning to itself (Coverity)

Change-Id: Iee8de25ab3c68ae3698c79852195dc336050914c
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agovom: Add support for af-packet dump 65/12965/3
Mohsin Kazmi [Fri, 8 Jun 2018 14:57:33 +0000 (16:57 +0200)]
vom: Add support for af-packet dump

Change-Id: I0a1fc36ac29f6da70334ea3b5a5cf0e841faef76
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agotcp: cleanup connection/session fixes 31/12931/11
Florin Coras [Thu, 7 Jun 2018 00:55:02 +0000 (17:55 -0700)]
tcp: cleanup connection/session fixes

- Cleanup session state after last ack and avoid using a cleanup timer.
- Change session cleanup to free the session as opposed to waiting for
delete notify.
- When in close-wait, postpone sending the fin on close until all
outstanding data has been sent.
- Don't flush rx fifo unless in closed state

Change-Id: Ic2a4f0d5568b65c83f4b55b6c469a7b24b947f39
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoudp: fix for multiple workers and add test 80/12980/4
Florin Coras [Sun, 10 Jun 2018 21:41:23 +0000 (14:41 -0700)]
udp: fix for multiple workers and add test

Since the main thread is not used for session polling anymore, when vpp
is started with multiple wokers, allocate connections on the first. Also
add a simple udp make test.

Change-Id: Id869f5d89e0fced51048f0384fa86a5022258b7c
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoMTU: Software interface / Per-protocol MTU support 30/12930/6
Ole Troan [Thu, 7 Jun 2018 08:17:57 +0000 (10:17 +0200)]
MTU: Software interface / Per-protocol MTU support

This patch separates setting of hardware interfaec and software
interface MTU. Software MTU is L2 payload MTU (i.e. not including L2
header). Per-protocol MTU for IPv4, IPv6 and MPLS can also be set.
Currently only IP4, IP6 are enabled in adjacency / rewrite code.

Documentation in src/vnet/MTU.md

Change-Id: Iee2fd6f0bbc8210748dd8e073ab9fab87d323690
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoFix multiple NAT translation with interface address as external 64/12964/2
Alexander Chernavin [Fri, 8 Jun 2018 15:28:27 +0000 (11:28 -0400)]
Fix multiple NAT translation with interface address as external

Change-Id: Idd65c6d0489bf83984a2c34d22d3f94000fc7018
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
5 years agoIGMP: use simple u32 bit hash key 79/12979/1
Neale Ranns [Mon, 11 Jun 2018 01:01:49 +0000 (18:01 -0700)]
IGMP: use simple u32 bit hash key

some IGMP hashse use only a u32 key, which is not stored in the object, so don't use memory based hash

Change-Id: Iaa4eddf568ea0164bc2a812da4cc502f1811b93c
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agocli: Disable XON/XOFF in the tty 77/12977/3
Chris Luke [Sun, 10 Jun 2018 17:42:45 +0000 (13:42 -0400)]
cli: Disable XON/XOFF in the tty

- CLI history forward-search is bound to ^S which is common, but
  that is also the tty's default control byte to pause output.
  So we disable XON/XOFF in the tty so that we can use ^S.

Change-Id: I61717c77a11733d64eed7f8119677e7cd2e20029
Signed-off-by: Chris Luke <chrisy@flirble.org>
5 years agocli: Fix reverse-line-wrap in terminals (VPP-1295) 69/12969/3
Chris Luke [Wed, 6 Jun 2018 03:50:19 +0000 (23:50 -0400)]
cli: Fix reverse-line-wrap in terminals (VPP-1295)

- Terminals do not reverse-line-wrap when the cursor is at the left
  edge and \b tries to make it go left.
- Instead, we have to track the cursor position if we need to emit \b's
  and if we are at the left edge emit an ANSI sequence to relocate
  the cursor. Previously we usually simply calculated the new cursor
  position after a bunch of output had completed.
- Further trickiness is required since most xterm-like terminals also
  defer moving the cursor to the next line when at the right edge[1], and
  then if they receive a \b move the cursor back one character too many.
- This requires intricate reworking of everywhere that \b is emitted
  by the CLI code during command line editing.

[1] Bash counters this issue by tracking the cursor position as output
  is generated and forcing the cursor to the next line (by emitting
  a space followed by \r) if it gets to this phantom cursor position);
  here we effectively do that but only if the user tries to go left
  when in this state.

Change-Id: I7c1d7c0e24c53111a5810cebb504ccfdac743086
Signed-off-by: Chris Luke <chrisy@flirble.org>
5 years agotcp: fix timer based recovery exit condition 75/12975/3
Florin Coras [Sat, 9 Jun 2018 13:49:59 +0000 (06:49 -0700)]
tcp: fix timer based recovery exit condition

Change-Id: I3f36e5760fd2935cc29d22601d4c0a1d2a22ba84
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agocli: Fix off-by-one in the pager 76/12976/2
Chris Luke [Sun, 10 Jun 2018 14:47:50 +0000 (10:47 -0400)]
cli: Fix off-by-one in the pager

- The last line in the pager buffer was sometimes missed when
  using space/pg-dn; simple off-by-one error.

Change-Id: Id4e5f7cf0e5db4f719f87b9069d75427bc66d3f7
Signed-off-by: Chris Luke <chrisy@flirble.org>
5 years agoDon't use foreach_vlib_main macro w/out barrier sync 74/12974/2
Dave Barach [Sat, 9 Jun 2018 18:49:00 +0000 (14:49 -0400)]
Don't use foreach_vlib_main macro w/out barrier sync

It should be OK to scrape dispatch stats without forcing a barrier
sync. Scrape the stats manually. We'll see what happens.

Change-Id: Ia20b51ea12ed81cce76e1801401bad0edd0645bb
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoadd script for virtual function create/show/remove 72/12972/3
Damjan Marion [Sat, 9 Jun 2018 13:11:52 +0000 (15:11 +0200)]
add script for virtual function create/show/remove

Change-Id: I151bc4269cb4d7e8572a6a676da20f69206d6c3f
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoFix bug in vlib_buffer_free_from_ring_no_next 73/12973/2
Damjan Marion [Sat, 9 Jun 2018 17:29:16 +0000 (19:29 +0200)]
Fix bug in vlib_buffer_free_from_ring_no_next

Change-Id: I332bb4578d1a3c79770985bf1f315d2ed823a3e5
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agosession: cleanup queue node tracing 68/12968/3
Florin Coras [Fri, 8 Jun 2018 16:17:39 +0000 (09:17 -0700)]
session: cleanup queue node tracing

Change-Id: Ib8e332174d96bf9cfa4bbaaa5b8d8bc9958424b1
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoavf: properly cofigure RSS LUT 70/12970/3
Damjan Marion [Sat, 9 Jun 2018 08:36:11 +0000 (10:36 +0200)]
avf: properly cofigure RSS LUT

Change-Id: I85cfab692ae0a72277ae561cdba7dcbc1f60aca3
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoavf: add support for intel X722 NICs 71/12971/1
Damjan Marion [Sat, 9 Jun 2018 13:10:09 +0000 (15:10 +0200)]
avf: add support for intel X722 NICs

Change-Id: I3e07070eed4948e813ad1490963c7f8ef7f4262e
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoTime range support for vppinfra 22/12922/6
Dave Barach [Wed, 6 Jun 2018 14:52:08 +0000 (10:52 -0400)]
Time range support for vppinfra

Change-Id: I2356b1e05fd868b46b4d26ade760900a5739ca4d
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoAdd reaper functions to want events APIs (VPP-1304) 82/12882/8
Neale Ranns [Tue, 5 Jun 2018 01:41:24 +0000 (18:41 -0700)]
Add reaper functions to want events APIs (VPP-1304)

Change-Id: Iaeb52d94cb6da63ee93af7c1cf2dade6046cba1d
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoImplement DHCPv6 PD client (VPP-718, VPP-1050) 38/12738/11
Juraj Sloboda [Fri, 25 May 2018 12:02:20 +0000 (14:02 +0200)]
Implement DHCPv6 PD client (VPP-718, VPP-1050)

Change-Id: I72a1ccdfdd5573335ef78fc01d5268934c73bd31
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
5 years agohttp server: do not close connections after reply 66/12966/2
Florin Coras [Fri, 8 Jun 2018 09:02:13 +0000 (02:02 -0700)]
http server: do not close connections after reply

Change-Id: I7add46258fe44bc4d23d805ffc7eae75e37cab82
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoexport counters in a memfd segment 92/12892/3
Dave Barach [Fri, 1 Jun 2018 22:52:25 +0000 (18:52 -0400)]
export counters in a memfd segment

also export per-node error counters

directory entries implement object types

Change-Id: I8ce8e0a754e1be9de895c44ed9be6533b4ecef0f
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoGratuitous ARP packet handling 56/12956/3
Neale Ranns [Fri, 8 Jun 2018 01:09:49 +0000 (18:09 -0700)]
Gratuitous ARP packet handling

only learn from a GARP packet if it is an update to an existing entry.

Change-Id: I4c1b59cfedb911466e5e4c9756cf53a6676e1909
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
5 years agoAdding pad for reasm vnet_buffer reasm struct sothat adj_index is retained 54/12954/4
Vijayabhaskar Katamreddy [Thu, 7 Jun 2018 18:49:01 +0000 (11:49 -0700)]
Adding pad for reasm vnet_buffer reasm struct sothat adj_index is retained

Change-Id: Ib756c4f3e8caba1f77ef48b62a2a5d7283fe5016
Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
5 years agoLB: reply message id and table length are wrong. 33/12933/4
Hongjun Ni [Thu, 7 Jun 2018 18:20:31 +0000 (02:20 +0800)]
LB: reply message id and table length are wrong.

Change-Id: Iea2c661cb3e0728bb2d10b06791ed84fed00f6a7
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
5 years agoFix IP scan neighbor API/CLI handling of interval and stale 45/12945/2
John Lo [Thu, 7 Jun 2018 16:00:43 +0000 (12:00 -0400)]
Fix IP scan neighbor API/CLI handling of interval and stale

Change-Id: I77264c4398e6fad461bb4dc10867a1f9c3accec0
Signed-off-by: John Lo <loj@cisco.com>
5 years agodpdk: fix interface naming issue 46/12946/3
Damjan Marion [Thu, 7 Jun 2018 16:16:35 +0000 (18:16 +0200)]
dpdk: fix interface naming issue

... introduced with dpdk 18.05 support patch

Change-Id: Idf2283888f81d7652599651c0d65476e451f9343
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoRevert "Allow arp-input node to learn IPv4 neighbors from GARP packets" 52/12952/2
John Lo [Thu, 7 Jun 2018 16:46:24 +0000 (16:46 +0000)]
Revert "Allow arp-input node to learn IPv4 neighbors from GARP packets"

This reverts commit d018870d1b02109fc8b328446f15312fdd2fcd11.

Change-Id: I700ade7a25ae5ed72cfed586e50b02492a4f11de
Signed-off-by: John Lo <loj@cisco.com>
5 years agodpdk: failsafe PMD initialization code 49/12549/4
Rui Cai [Fri, 11 May 2018 23:38:41 +0000 (23:38 +0000)]
dpdk: failsafe PMD initialization code

Added code to initialize failsafe PMD

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

Change-Id: Ia2469c7087ca4b5c7881dfb11ec5c4fcebaa1d04
Signed-off-by: Rui Cai <rucai@microsoft.com>
5 years agoDHCP Client Dump 06/12606/4
Neale Ranns [Wed, 16 May 2018 11:12:18 +0000 (04:12 -0700)]
DHCP Client Dump

- use types on the DHCP API so that the same data is sent in comfing messages and in dumps
- add the DHCP client dump API
- update VOM to refelct API changes
- rename VOM class dhcp_config* dhcp_client*
- the VOM dhcp_client class maintains the lease data (which it reads on a dump) for clients to read

Change-Id: I2a43463937cbd80c01d45798e74b21288d8b8ead
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
5 years agoAdd support for DPDK 18.05 24/12924/4
Damjan Marion [Wed, 6 Jun 2018 12:23:42 +0000 (14:23 +0200)]
Add support for DPDK 18.05

Change-Id: I205932bc727c990011bbbe1dc6c0cf5349d19806
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoAllow arp-input node to learn IPv4 neighbors from GARP packets 26/12926/2
John Lo [Thu, 7 Jun 2018 00:12:46 +0000 (20:12 -0400)]
Allow arp-input node to learn IPv4 neighbors from GARP packets

Change-Id: I86019f4ff9b0c8c633638fa23341d8ce49099ba6
Signed-off-by: John Lo <loj@cisco.com>
5 years agoAlter logging semantics for VPP PAPI object 21/12921/3
Ian Wells [Wed, 6 Jun 2018 13:12:27 +0000 (14:12 +0100)]
Alter logging semantics for VPP PAPI object

Logging previously used a string name for the log level and changed
the system-wide log level based on this string name.  It now uses a
logging-module provided constant for the log level and changes its own
logger's level based on the name, and only if the level is provided.

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

Change-Id: Icf6896ff61a29b12c11d04374767322cdb330323
Signed-off-by: Ian Wells <iawells@cisco.com>
5 years agobond: send gratuitous arp when the active slave went down in active-backup mode 15/12915/1
Steven [Tue, 5 Jun 2018 18:09:32 +0000 (11:09 -0700)]
bond: send gratuitous arp when the active slave went down in active-backup mode

- Modify the API send_ip6_na and send_ip4_garp to take sw_if_index instead
of vnet_hw_interface_t and add call to build_ethernet_rewrite to support
subinterface/vlan
- Add code to bonding driver to send an event to bond_process when the first
interface becomes active or when the active interface is down
- Create a bond_process to walk the interface and the corresponding
subinterfaces to send garp/ip6_na when an event is received.
- Minor cleanup in bonding/node.c

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

Change-Id: If3ecc4cd0fb3051330f7fa11ca0dab3e18557ce1
Signed-off-by: Steven <sluong@cisco.com>
5 years agolb api: correct byte order of new_flows_table_length argument 53/12853/2
Andrey "Zed" Zaikin [Fri, 1 Jun 2018 12:39:54 +0000 (15:39 +0300)]
lb api: correct byte order of new_flows_table_length argument

Change-Id: I3ac348a8cb1a515dfe1839eaa084c87719d282e1
Signed-off-by: Andrey "Zed" Zaikin <zed.0xff@gmail.com>
5 years agoVPP API: Memory trace 79/12879/6
Ole Troan [Mon, 4 Jun 2018 20:27:49 +0000 (22:27 +0200)]
VPP API: Memory trace

if you plan to put a hash into shared memory, the key sum and key
equal functions MUST be set to constants such as KEY_FUNC_STRING,
KEY_FUNC_MEM, etc. -lvppinfra is PIC, which means that the process
which set up the hash won't have the same idea where the key sum and
key compare functions live in other processes.

Change-Id: Ib3b5963a0d2fb467b91e1f16274df66ac74009e9
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoVPP-1305: Add support for tags 78/12878/3
Jerome Tollet [Mon, 4 Jun 2018 15:40:26 +0000 (16:40 +0100)]
VPP-1305: Add support for tags

Change-Id: I9e759037295fe675abe426e565a562b1ec1e7d33
Signed-off-by: Jerome Tollet <jtollet@cisco.com>
5 years agoBIER CLI show commands; no crash on non-existant objects (VPP-1303) 80/12880/3
Neale Ranns [Tue, 5 Jun 2018 00:10:18 +0000 (17:10 -0700)]
BIER CLI show commands; no crash on non-existant objects (VPP-1303)

DBGvpp# sh bier disp entry
DBGvpp# sh bier disp entry 0
No such BIER disp entry: 0
DBGvpp# sh bier disp table
DBGvpp# sh bier disp table 0
No such BIER disp table: 0
DBGvpp# sh bier disp table 11
No such BIER disp table: 11
DBGvpp#

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

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

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

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

Change-Id: Ibadac3441dd8a6d1b96bd9ee4358e28498875b95
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoConfigure or deduce CLIB_LOG2_CACHE_LINE_BYTES (VPP-1064) 13/12813/8
Dave Barach [Tue, 29 May 2018 21:06:45 +0000 (17:06 -0400)]
Configure or deduce CLIB_LOG2_CACHE_LINE_BYTES (VPP-1064)

Added configure argument "--with-log2-cache-line-bytes=5|6|7|auto"
AKA 32, 64, or 128 bytes, or use the inferred value from the build host.

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

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

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

Change-Id: I7ff861e042faf82c3901fa1db98864fbdea95b74
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Nitin Saxena <nitin.saxena@cavium.com>
5 years agoip4: optimize ip4_local 62/12862/14
Florin Coras [Fri, 1 Jun 2018 19:22:23 +0000 (12:22 -0700)]
ip4: optimize ip4_local

"sh run" says the number of clocks for my tcp based throughput test
dropped from ~43 to ~23

Change-Id: I719439ba7fc079ad36be1432c5d7cf74e3b70d73
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoFix API trace dump for tapv2 00/12400/4
Milan Lenco [Fri, 4 May 2018 07:00:18 +0000 (09:00 +0200)]
Fix API trace dump for tapv2

Change-Id: Ib092da61ba037ea30c6f38ea692ef9f1ca0cd8e7
Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
5 years agoRemove unused GRE buffer meta-data 73/12873/2
Neale Ranns [Mon, 4 Jun 2018 08:27:25 +0000 (04:27 -0400)]
Remove unused GRE buffer meta-data

Change-Id: Ia8ef019742c13b1149916d51796cad6f50687162
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agoflow:add enabled hw format function 26/12826/2
Eyal Bari [Thu, 31 May 2018 08:30:16 +0000 (11:30 +0300)]
flow:add enabled hw format function

Change-Id: Ide1f76e9207b6022d5258a119f8d59cca85651b5
Signed-off-by: Eyal Bari <ebari@cisco.com>
5 years agoip: save fib index for buffer in ip lookup 59/12859/4
Florin Coras [Fri, 1 Jun 2018 19:22:23 +0000 (12:22 -0700)]
ip: save fib index for buffer in ip lookup

Avoids recomputing the fib index in ip local for locally delivered
packets and should incur no extra cost when forwarding packets.

Change-Id: Id826ffa8206392087327f154337eabc8a801b4d7
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agofix usage string missing arg 71/12871/2
Jerome Tollet [Mon, 4 Jun 2018 07:31:33 +0000 (08:31 +0100)]
fix usage string missing arg

Change-Id: I9710e9ed6ceff6c0b2de0bcf77f355762df88b58
Signed-off-by: Jerome Tollet <jtollet@cisco.com>
5 years agoJoin the VAC read timeout thread 68/12868/3
Neale Ranns [Mon, 4 Jun 2018 04:21:19 +0000 (21:21 -0700)]
Join the VAC read timeout thread

Change-Id: I5bcbae276f8ac23718c5afc859da222508d07ad7
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoEnable Position Independent Executable for production VPP 36/12836/3
Neale Ranns [Fri, 1 Jun 2018 04:03:17 +0000 (00:03 -0400)]
Enable Position Independent Executable for production VPP

Change-Id: I0f81423b854be1dc456df696416e5f3747393208
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agodpdk: buffer free optimizations 67/12867/1
Damjan Marion [Sun, 3 Jun 2018 12:29:42 +0000 (14:29 +0200)]
dpdk: buffer free optimizations

~5 clocks/packet improvement...

Change-Id: I1a78fa24dcd1b3ab7f45e10b9ded50f79517114a
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agodpdk: improve buffer alloc perfomance 65/12865/3
Damjan Marion [Sat, 2 Jun 2018 18:42:07 +0000 (20:42 +0200)]
dpdk: improve buffer alloc perfomance

This is ~50% improvement in buffer alloc performance.
For a 256 buffer allocation, it was ~10 clocks/buffer, now is < 5 clocks.

Change-Id: I97590e240a79a42bcab5eb26587fc2d11e6eb163
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoInterface Tag: memset field in VOM, clear the tag in VPP on interface delete 35/12835/2
Neale Ranns [Fri, 1 Jun 2018 04:23:37 +0000 (21:23 -0700)]
Interface Tag: memset field in VOM, clear the tag in VPP on interface delete

Change-Id: Id97de732b5952d5d86202e7749c9e81cf8dbed87
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
5 years agoAVF input node rework 64/12864/1
Damjan Marion [Wed, 30 May 2018 10:49:32 +0000 (12:49 +0200)]
AVF input node rework

Change-Id: Ib121b24935d5c706cfba6e4b6d321086a38cad91
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoacl-plugin: multicore: session management fixes 70/12770/9
Andrew Yourtchenko [Wed, 30 May 2018 20:29:29 +0000 (22:29 +0200)]
acl-plugin: multicore: session management fixes

- implement a 1us purgatory for the session structures
  by adding a special connection list, where all connections
  about to be deleted go.

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

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

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

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

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

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

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

Change-Id: I3aa1c91a925a08e83793467cb15bda178c21e426
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agosession: improve disconnect handling 34/12834/3
Florin Coras [Fri, 1 Jun 2018 00:14:10 +0000 (17:14 -0700)]
session: improve disconnect handling

If the caller is the session owning thread or the main thread with a
worker barrier sync (cli/api) add an event to the pending disconnects
vector in the session node and entirely avoid using the event queue.
Useful for bursts of disconnects (like an app detach).

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

Change-Id: Ieece1f1091b713f94c41c703b6e805bc8498816a
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agoImprove L2FIB delete entry handling and "show l2fib" CLI options 32/12832/2
John Lo [Thu, 31 May 2018 14:25:18 +0000 (10:25 -0400)]
Improve L2FIB delete entry handling and "show l2fib" CLI options

Improve deletion of L2FIB MAC entry using l2fib_add_del API. If
sw_if_index param specified in th API is non-zero, check that its
value match that of the MAC entry to proceed with deletion.

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

Change-Id: I0bd2582c2b6bac268e551e4f8ca6dab2be4400ad
Signed-off-by: John Lo <loj@cisco.com>
5 years agodpdk: Decoupling the meaning of xd->device_index in dpdk_plugin 48/12548/6
Rui Cai [Fri, 11 May 2018 22:55:33 +0000 (22:55 +0000)]
dpdk: Decoupling the meaning of xd->device_index in dpdk_plugin

Prior to the change, dpdk plugin assumes xd->device_index is
used both as index for internal dpdk_main->devices array
and DPDK port index to call into DPDK APIs.

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

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

Change-Id: I416fd80f2d40e12e139f8f3492814da98343eae7
Signed-off-by: Rui Cai <rucai@microsoft.com>
5 years agoFix TLS issue to load certification and key 29/12829/2
Ping Yu [Thu, 31 May 2018 18:01:04 +0000 (14:01 -0400)]
Fix TLS issue to load certification and key

Change-Id: If1ef2d4bc6f90a4d4b6a345c63723117834c6504
Signed-off-by: Ping Yu <ping.yu@intel.com>
5 years agofix socket send() return size check 15/12815/2
qchang [Wed, 30 May 2018 18:44:18 +0000 (11:44 -0700)]
fix socket send() return size check

Change-Id: I098c671607c75cb34d04f421b4d16b73f7b47392
Signed-off-by: qchang <qing.chang1@huawei.com>
5 years agofix missing void pointer explicit type cast 18/12818/2
Zhiyong Yang [Thu, 31 May 2018 02:12:57 +0000 (22:12 -0400)]
fix missing void pointer explicit type cast

Change-Id: I5098e5d966abc44db045783883424b63083f08ee
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
5 years agoVPP-1299: Reset uid/gid on shared memory segment if client starts first. 16/12816/2
Ole Troan [Wed, 30 May 2018 20:43:25 +0000 (22:43 +0200)]
VPP-1299: Reset uid/gid on shared memory segment if client starts first.

Change-Id: I2b5bc7d864f8829e1dff63fec3c9484078601309
Signed-off-by: Ole Troan <ot@cisco.com>
5 years agoAdd src/vlib/config.h.in template 02/12802/3
Damjan Marion [Wed, 30 May 2018 07:55:05 +0000 (09:55 +0200)]
Add src/vlib/config.h.in template

Change-Id: I9b81dcb9250cab09b88f161366da9475a7ee5dd6
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoFix clang compilation on aarch64: value size does not match register size. 97/12797/4
Sirshak Das [Wed, 30 May 2018 02:21:02 +0000 (21:21 -0500)]
Fix clang compilation on aarch64: value size does not match register size.

Fixes clang error: value size does not match register size specified
by the constraint and modifier

Change-Id: I83e69445eacd6570607334e086a8582addb5bdfc
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
5 years agomake test: VPP-1288 fix bogus sw_if_index values 03/12803/2
Klement Sekera [Wed, 30 May 2018 08:32:21 +0000 (10:32 +0200)]
make test: VPP-1288 fix bogus sw_if_index values

Change-Id: I9a61538f4c832f09269c6ddfcd55f909003b8694
Signed-off-by: Klement Sekera <ksekera@cisco.com>
5 years agovppinfra: explicitely state for signed types that they are signed 01/12801/3
Damjan Marion [Wed, 30 May 2018 07:26:11 +0000 (09:26 +0200)]
vppinfra: explicitely state for signed types that they are signed

This fixes some compilation warnings with clang on AArch64.

Change-Id: Idb941944e3f199f483c80e143a9e5163a031c4aa
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agodpdk: rename port_id to *_instance_num 06/12806/2
Damjan Marion [Wed, 30 May 2018 09:14:10 +0000 (11:14 +0200)]
dpdk: rename port_id to *_instance_num

port_id be used for dpdk port_id

Change-Id: Ia7d8cdc5dec2ad658c11f9c0f3ef8005a470ac3c
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoFix clang compilation on aarch64: sizeof operator error. 96/12796/3
Sirshak Das [Wed, 30 May 2018 02:13:21 +0000 (21:13 -0500)]
Fix clang compilation on aarch64: sizeof operator error.

Fixes clang error: argument to 'sizeof' in 'memcpy' call is the same
pointer type 'unformat_input_t *' (aka 'struct _unformat_input_t *')
as the source; expected 'unformat_input_t' (aka 'struct
_unformat_input_t') or an explicit length.

Change-Id: If00303343b10fe1732e477549727a41445edf410
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
5 years agoFix clang compilation on aarch64: replace -pie with -fPIE for dpdk compilation. 95/12795/3
Sirshak Das [Wed, 30 May 2018 02:06:28 +0000 (21:06 -0500)]
Fix clang compilation on aarch64: replace -pie with -fPIE for dpdk compilation.

Fixes clang error: argument unused during compilation: '-pie'
by replacing it with -fPIE

Change-Id: Ic89a5e325e019d4d794d35556a07ebcf0b718dd3
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
5 years agoIPv6 for-us/receive multicast routes fix 00/12800/3
Neale Ranns [Wed, 30 May 2018 06:08:32 +0000 (02:08 -0400)]
IPv6 for-us/receive multicast routes fix

Change-Id: I5e29e16b4d45411b1a7c177b8d7156c5baefe6a1
Signed-off-by: Neale Ranns <nranns@cisco.com>
5 years agosession: fix v6 unbinds that use uri api 99/12799/3
Florin Coras [Wed, 30 May 2018 04:15:38 +0000 (21:15 -0700)]
session: fix v6 unbinds that use uri api

This api only supports default tables but v6 and v4 default tables are
different.

Change-Id: I7fe39251af99082278e84d7411511bdeca34e609
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agosession: fix session table retrieval 80/12780/2
Florin Coras [Tue, 29 May 2018 08:03:16 +0000 (01:03 -0700)]
session: fix session table retrieval

Change-Id: If37d644a26132c42a04927f612eec5e891066451
Signed-off-by: Florin Coras <fcoras@cisco.com>
5 years agobonding: fix packet trace in bond-input 93/12793/1
Damjan Marion [Tue, 29 May 2018 22:03:34 +0000 (00:03 +0200)]
bonding: fix packet trace in bond-input

Change-Id: I00fc4a4553dabed7ef099227b8253ed4916ea5e4
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoRevert "dpdk: set dmamap iova address value according to eal_iova_mode" 91/12791/1
Damjan Marion [Tue, 29 May 2018 20:46:50 +0000 (22:46 +0200)]
Revert "dpdk: set dmamap iova address value according to eal_iova_mode"

This breaks VFIO operation.

This reverts commit d3b3baa4f8e9e4d95264aff16fe85434ef8061bd.

Change-Id: I2482e0da2d1ebfc365d13668c4b992b040f561b4
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoAdd VLIB_NODE_FN() macro to simplify multiversioning of node functions 73/12773/4
Damjan Marion [Mon, 28 May 2018 19:26:47 +0000 (21:26 +0200)]
Add VLIB_NODE_FN() macro to simplify multiversioning of node functions

Change-Id: Ibab5e27277f618ceb2d543b9d6a1a5f191e7d1db
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoaf_packet: Add support for dump interfaces 72/12772/3
Mohsin Kazmi [Mon, 28 May 2018 16:55:37 +0000 (18:55 +0200)]
af_packet: Add support for dump interfaces

Change-Id: I8d8ecc80edb7665125ba625a3ce7b30d2dea88f0
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agofix Check style err 83/12783/2
chuhong yao [Tue, 29 May 2018 09:50:58 +0000 (17:50 +0800)]
fix Check style err

Change-Id: Ic7fd4d0f154a311d09409be2a6603e8460099efe
Signed-off-by: chuhong yao <ych@panath.cn>
5 years agodpdk: Add PMD type for Cavium LiquidIO II CN23XX 81/12781/3
chuhong yao [Tue, 29 May 2018 08:31:48 +0000 (16:31 +0800)]
dpdk: Add PMD type for Cavium LiquidIO II CN23XX

1、Adding PMD type for support Cavium LiquidIO II CN23XX NIC;
2、Our company is using VPP + DPDK +Cavium LiquidIO II CN23XX NIC,
Unfortunately, the latest VPP code does not support
Cavium LiquidIO II CN23XX pci.
So I increased the PMD type to support LiquidIO NIC,
and can run normally, we most subsequent projects are
based on VPP + DPDK + Cavium LiquidIO II CN23XX NIC model,
so I hope VPP team can adopt this requirement, thanks a lot.

Change-Id: I604ae444d69b37c2e26962bfe4ccdfe983b75041
Signed-off-by: chuhong yao <ych@panath.cn>
5 years agoFixed vlib_buffer_clone with stale chained buffers 85/12785/2
Yoann Desmouceaux [Tue, 29 May 2018 11:38:44 +0000 (13:38 +0200)]
Fixed vlib_buffer_clone with stale chained buffers

When calling vlib_buffer_clone() on a source vlib_buffer with no next
buffer but whose total_length_not_including_first_buffer hadn't been
properly zeroed out, the total_length_not_including_first_buffer of
the clone was set to a wrong value.

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

Change-Id: I4b503ece804e3933bb259be4c2148f84dafbea3e
Signed-off-by: Yoann Desmouceaux <ydesmouc@cisco.com>
5 years agodpdk: mempool priv intialization must be done before releasing buffers to pool 63/12763/5
Sachin Saxena [Mon, 28 May 2018 09:15:34 +0000 (14:45 +0530)]
dpdk: mempool priv intialization must be done before releasing buffers to pool

 - Currently mempool priv size is getting initialized after releasing buffers
   to pool. This is causing mismatch in expected & real metadata size value
   and buffers are getting released with wrong offset. (when metadata offset
   is in use for a given platform)
 - Since private data size is 0 initially, metadata size don't include space
   for VLIB_BUFFER_HDR.

Change-Id: I780c4d518104631a3dcf192185bacf58b3598e65
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
5 years agoipsec: fix IKEv2 crash when rsa cert is used for authentication 84/12784/2
Radu Nicolau [Tue, 29 May 2018 10:42:33 +0000 (11:42 +0100)]
ipsec: fix IKEv2 crash when rsa cert is used for authentication

Cause: EVP_MD_CTX object used but not initialized.

Change-Id: I390b2acf580f16415685563fa52e56717efc7be7
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
5 years agoNAT44: code cleanup and refactor (VPP-1285) 65/12765/3
Matus Fabian [Mon, 28 May 2018 11:09:52 +0000 (04:09 -0700)]
NAT44: code cleanup and refactor (VPP-1285)

Change-Id: I088163f10ae5515d7a9115781cc13ef563fafed5
Signed-off-by: Matus Fabian <matfabia@cisco.com>
5 years agoChange optimizaton level from tree-vectorize to O3 69/12769/2
Damjan Marion [Mon, 28 May 2018 14:22:14 +0000 (16:22 +0200)]
Change optimizaton level from tree-vectorize to O3

Change-Id: Ia1b49d7fd5f32d9a5139df5df636b46264003a63
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoadd missing lb_put_writer_lock() to lb_vip_add() invalid args cases 47/12747/2
Andrey "Zed" Zaikin [Fri, 25 May 2018 15:09:58 +0000 (18:09 +0300)]
add missing lb_put_writer_lock() to lb_vip_add() invalid args cases

Change-Id: I9343672c5765a5a4cb56c99fa5de176ddcac62c7
Signed-off-by: Andrey "Zed" Zaikin <zed.0xff@gmail.com>
5 years agoFix flowhash size computation for very large hash tables 67/12767/2
Pierre Pfister [Mon, 28 May 2018 11:56:04 +0000 (13:56 +0200)]
Fix flowhash size computation for very large hash tables

Change-Id: Ieae4ff6429fc5bdcf0e243db40ab7ec00c30730a
Signed-off-by: Pierre Pfister <ppfister@cisco.com>
5 years agoacl-plugin: move to per-frame buffer pointer calculations and enqueue to next nodes 58/12758/2
Andrew Yourtchenko [Sat, 26 May 2018 18:43:00 +0000 (20:43 +0200)]
acl-plugin: move to per-frame buffer pointer calculations and enqueue to next nodes

Use the new frame-at-once functions vlib_get_buffers() and vlib_buffer_enqueue_to_next()
to calculate the buffer pointers and to dispatch the packets after the processing.

This simplifies the dataplane node processing loop.

Change-Id: I454308f847aac76a199f8dd7490c1e176414bde7
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agoVPP-1284: Fix for TLS corruption on ARM platforms 62/12762/2
Sachin Saxena [Mon, 28 May 2018 04:15:12 +0000 (09:45 +0530)]
VPP-1284: Fix for TLS corruption on ARM platforms

 - The issue is appearing on ARM platofrms where DPDK drivers are also using
   __thread TLS vairables.
 - The issue was only appearing with dpdk as plgin to VPP and not if used
   as statically link with VPP.
 - Using traditional TLS scheme resolved the issue.

Change-Id: Ifb4c667fdd217c2b1d79be8a541a2c983222d95a
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
5 years agodpdk: set dmamap iova address value according to eal_iova_mode 64/12764/2
Sachin Saxena [Mon, 28 May 2018 09:24:47 +0000 (14:54 +0530)]
dpdk: set dmamap iova address value according to eal_iova_mode

 - Fix the issue where eal iova mode is Virtual Address (RTE_IOVA_VA) but
   setting DMA iova address to Physical address value always.

Change-Id: Ib1e9c1596d95885c7eff11723338121627203e61
Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com>
5 years agoaf-packet: Add support for logging 30/12630/4
Mohsin Kazmi [Thu, 17 May 2018 13:42:27 +0000 (15:42 +0200)]
af-packet: Add support for logging

Change-Id: I4cc6a20b69cce2aa52768a27c5d455eb098224c8
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agoitf: Fix admin up down for AF_PACKET and vhost-user 95/12195/6
Mohsin Kazmi [Wed, 25 Apr 2018 13:58:05 +0000 (15:58 +0200)]
itf: Fix admin up down for AF_PACKET and vhost-user

Change-Id: I84327197d59c72d0d046dd2cb4071bf74af6fc28
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
5 years agoFix IP neighbor/arp pool full and static entry handling 83/12683/2
John Lo [Tue, 22 May 2018 07:35:06 +0000 (03:35 -0400)]
Fix IP neighbor/arp pool full and static entry handling

Move handling of IP neighbor pool full into main thread on entry
creation and make sure static entriesare not deleted for reuse.
Fix IPv6 neighbor handling on interface down and up so that static
entries are not deleted.

Change-Id: I073794949a41a5b86201e519ebe479febfc506c8
Signed-off-by: John Lo <loj@cisco.com>
5 years agoproxy_arp: remove unused is_add 45/12745/2
Marek Gradzki [Fri, 25 May 2018 13:50:05 +0000 (15:50 +0200)]
proxy_arp: remove unused is_add

Change-Id: I1773d962b373693a737d39c0c97e8c53eb91545a
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
5 years agoip4-input node rework 54/12754/2
Damjan Marion [Sat, 26 May 2018 16:53:34 +0000 (18:53 +0200)]
ip4-input node rework

Gain is around 6 clocks per packet (22 to 16).

Change-Id: Ia6f4293ea9062368a9a6b235c650591dbc0707d0
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoFixes make test errors with clang compiler on aarch64 97/12697/3
Sirshak Das [Fri, 18 May 2018 18:14:52 +0000 (13:14 -0500)]
Fixes make test errors with clang compiler on aarch64

(VAPI_*BIN).d targets didnt have fake.api.vapi.h* as dependencies
this causes the compilation to proceed before the python script
generates the header files.
Explicit linking of stdc++ is required for clang as errors like
undefined reference to 'new operator' pop up.

Change-Id: I3ca0ef048f392c4a032160ce0e4f7ae759f4c79d
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
5 years agobond-input performance optimization 52/12752/2
Damjan Marion [Fri, 25 May 2018 22:50:39 +0000 (00:50 +0200)]
bond-input performance optimization

Old code ~25 clocks/packet, new ~10.

Change-Id: I202cd6cbafb1ab2296939634d674f7ffd28253fc
Signed-off-by: Damjan Marion <damarion@cisco.com>
5 years agoacl-plugin: use clib_bihash_search_inline_2_40_8 rather than clib_bihash_search_40_8... 55/12755/2
Andrew Yourtchenko [Sat, 26 May 2018 17:02:34 +0000 (19:02 +0200)]
acl-plugin: use clib_bihash_search_inline_2_40_8 rather than clib_bihash_search_40_8 for session lookups

Use inline version rather than calling the function, this gives slightly better performance.

The straighforward diff uncovered an interesting problem: the stateful ACL IPv4 unit tests would fail
for the "make test" but succeed in "make test-debug". Also, they would succeed even in "make test",
if before calling the clib_bihash_search_inline_2_40_8 we would change the code
to store the key in a temporary variable.

Debugging revealed that the generated optimized code is not what one would expect:
the zeroing of the u64s overlaying the memcpy into ipv4 value of ip46_address_t
made the optimizer not notice the latter, and think that those fields should be
always zero in the bihash, thus generating incorrect assembly for the bihash key
comparison for the ipv4 nodes.

Changing the zeroing to be non-overlapping by zeroing only the pad fields resulted
in the optimizer generating the correct code and the tests pass.

Change-Id: Ib0f55cef2b5fe70c931d17ca4dc32a5755d160cd
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
5 years agoVPP-1294: add missing feature arc constraint 53/12753/4
Dave Barach [Sat, 26 May 2018 14:48:55 +0000 (10:48 -0400)]
VPP-1294: add missing feature arc constraint

the ip4-dhcp-client-detect feature MUST run prior to nat44-out2in, or
inbound dhcp broadcast packets will be dropped. Certain dhcp servers
answer lease renewal dhcp-request packets with broadcast dhcp-acks, leading
to unrecoverable lease loss.

In detail, this constraint:

VNET_FEATURE_INIT (ip4_snat_out2in, static) = {
  .arc_name = "ip4-unicast",
  .node_name = "nat44-out2in",
  .runs_after = VNET_FEATURES ("acl-plugin-in-ip4-fa"),
};

doesn't get the job done:

ip4-unicast:
  [17] nat44-out2in
  [23] ip4-dhcp-client-detect
  [26] ip4-not-enabled

Add a proper constraint:

VNET_FEATURE_INIT (ip4_snat_out2in, static) = {
  .arc_name = "ip4-unicast",
  .node_name = "nat44-out2in",
  .runs_after = VNET_FEATURES ("acl-plugin-in-ip4-fa",
                               "ip4-dhcp-client-detect"),
};

and the interface feature order is OK, at least in this regard:

ip4-unicast:
  [17] ip4-dhcp-client-detect
  [18] nat44-out2in
  [26] ip4-not-enabled

We need to carefully audit (especially) the ip4-unicast feature arc,
which has [gasp] 37 features on it!

Change-Id: I5e749ead7ab2a25d80839a331de6261e112977ad
Signed-off-by: Dave Barach <dave@barachs.net>
5 years agoFix interface-rx-dpo-l2 node to setup l2_len in vnet buffer 50/12750/2
John Lo [Sat, 26 May 2018 01:10:23 +0000 (21:10 -0400)]
Fix interface-rx-dpo-l2 node to setup l2_len in vnet buffer

Change-Id: Ic1fab1f3aba92bbdbfd281459562d1f9697ab465
Signed-off-by: John Lo <loj@cisco.com>
5 years agodpdk: enable RX for no-multi-seg 10/12710/6
Zhiyong Yang [Thu, 24 May 2018 09:24:29 +0000 (05:24 -0400)]
dpdk: enable RX for no-multi-seg

The option no-multi-seg doesn't take effect for RX since MTU
which is too large is passed to DPDK lib, Which causes PMDs
are running XXX_scattered_rx function. The patch fixes the issue.

Change-Id: I91a6fb23fd118e872c8a52a6c35c36a86cb2c02b
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
5 years agotcp: loss recovery improvements/fixes 08/12708/10
Florin Coras [Thu, 24 May 2018 04:01:30 +0000 (21:01 -0700)]
tcp: loss recovery improvements/fixes

- fix newreno cwnd computation
- reset snd_una_max on entering recovery
- accept acks beyond snd_nxt but less than snd_congestion when in
recovery
- avoid entering fast recovery multiple times when using sacks
- avoid as much as possible sending small segments when doing fast
retransmit
- more event logging

Change-Id: I19dd151d7704e39d4eae06de3a26f5e124875366
Signed-off-by: Florin Coras <fcoras@cisco.com>