History log of /vpp/src/vnet/interface.h
Revision Date Author Comments
# 5f8f6173 18-Apr-2019 Neale Ranns <nranns@cisco.com>

gre: Multi-point interfaces

Type: feature

Change-Id: I0129ad6ace44a50a8a3b26db8e445cd06b2b49e8
Signed-off-by: Neale Ranns <nranns@cisco.com>

# 3f5594d8 03-Dec-2019 Mohsin Kazmi <sykazmi@cisco.com>

gso: remove the interface count

Type: refactor

Change-Id: I51405b9d09fb6fb03d08569369fdd4e11c647908
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

# e0792fdf 12-Jul-2019 Matthew Smith <mgsmith@netgate.com>

interface: callback to manage extra MAC addresses

Type: feature

New callback vnet_hw_interface_add_del_mac_address().

Add or delete secondary MAC addresses on a hardware interface.
This will allow packets to be processed which have a destination
MAC address other than the primary programmed MAC address without
needing to put the device into promiscuous mode.

Change-Id: I6beecbcb8932fc1fe45b567f76fa3706feefae2c
Signed-off-by: Matthew Smith <mgsmith@netgate.com>

# f5667c30 25-Sep-2019 Dave Barach <dave@barachs.net>

misc: add vnet classify filter set support

Type: feature

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

# 33909777 23-Sep-2019 Dave Barach <dave@barachs.net>

misc: unify pcap rx / tx / drop trace

Use a single vnet_pcap_t in vlib_global_main, specifically to support
unified tracing

Update sphinx docs, doxygen tags

Type: refactor
Ticket: VPP-1776

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

# 9137e540 13-Sep-2019 Dave Barach <dave@barachs.net>

misc: classifier-based packet trace filter

See .../src/vnet/classify/trace_classify.h for the business end
of the scheme.

It would be best to hash pkts, prefetch buckets, and do the primary
table lookups two at a time. The inline as given works, but perf
tuning will be required. "At least it works..."

Add "classify filter" debug cli, for example:
classify filter mask l3 ip4 src dst \
match l3 ip4 dst src

Add "pcap rx | tx trace ... filter" to use the current classify filter chain

Patch includes sphinx documentation and doxygen tags.

Next step: device-driver integration

Type: feature

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

# b97641c7 09-Sep-2019 Dave Barach <dave@barachs.net>

misc: clean up "pcap [rx|tx] trace" debug CLI

Separate debug CLI arg parsing from the underlying action
function. Fixes a number of subtle ordering dependencies, and will
allow us to add a binary API to control the feature at some point in
the future.

Type: refactor
Ticket: VPP-1770

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

# 5ad541ee 27-Aug-2019 Steven Luong <sluong@cisco.com>

interface: Remove residual dpdk bonding code

dpdk bonding code was removed in 19.08. However, there are still references
to VNET_SW_INTERFACE_FLAG_BOND_SLAVE which was set by the already removed

Type: fix

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

# 5cdde5c2 11-Jul-2019 jaszha03 <jason.zhang2@arm.com>

vppinfra: refactor test_and_set spinlocks to use clib_spinlock_t

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

Type: refactor

Change-Id: Ia16b5d4cd49209b2b57b8df6c94615c28b11bb60
Signed-off-by: Jason Zhang <jason.zhang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Lijian Zhang <Lijian.Zhang@arm.com>

# 3ffe6cad 26-Jun-2019 Florin Coras <fcoras@cisco.com>

sctp: move to plugins, disabled by default

Removed sctp buffer metadata from vnet/buffer.h, added it to the
plugin. Add registration APIs for plugin-based vlib_buffer_opaque /
opaque2 decoders, used by "pcap dispatch trace ..." for display in the
wireshark dissector.


Not actively maintained.

Change-Id: Ie4cb6ba66f68b3b3a7d7d2c63c917fdccf994371
Signed-off-by: Florin Coras <fcoras@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>

# e3bbf5b5 28-Jun-2019 Vijayabhaskar Katamreddy <vkatamre@cisco.com>

interface: fixes for buliding for 32bit targets

* structure alignment and padding issues
Type: fix

Change-Id: Ic7c2a8cb5a5526902463f3b4d2d93284b454ab6f
Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>

# c87b66c8 07-Feb-2019 Neale Ranns <nranns@cisco.com>

ipsec: ipsec-tun protect

please consult the new tunnel proposal at:

Type: feature

Change-Id: I52857fc92ae068b85f59be08bdbea1bd5932e291
Signed-off-by: Neale Ranns <nranns@cisco.com>

# 57e53bb9 29-May-2019 Neale Ranns <nranns@cisco.com>

ARP: add feature arc

- arp-input, registered with the ethernet protocol dispatcher, performs
basic checks and starts the arc
- arp-reply; first feature on the arc replies to requests and learns
from responses (no functional change)
- arp-proxy; checks against the proxy DB

arp-reply and arp-proxy are enabled when the interface is appropriately

Change-Id: I7d1bbabdb8c8b8187cac75e663daa4a5a7ce382a
Signed-off-by: Neale Ranns <nranns@cisco.com>

# 6865d3c2 15-May-2019 Zhiyong Yang <zhiyong.yang@intel.com>

bonding: add support for numa awareness

This patch enables bonding numa awareness on multi-socket
server working in active-backeup mode.
The VPP adds capability for automatically preferring slave
with local numa node in order to reduces the load on the
QPI-bus and improve system overall performance in multi-socket
use cases. Users doesn't need to add any extra operation as

Change-Id: Iec267375fc399a9a0c0a7dca649fadb994d36671
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>

# 712dde9c 11-Apr-2019 Ole Troan <ot@cisco.com>

Stats: Spelling mistake: s/tx-unicast-miss/tx-unicast/

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

# aee73648 13-Mar-2019 Filip Tehlar <ftehlar@cisco.com>


Change-Id: I8819bcb9e228e7a432f4a7b67b6107f984927cd4
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>

# 8f215b4a 22-Feb-2019 Neale Ranns <nranns@cisco.com>

Callback functions must have the correct signature

Change-Id: I642823bdc3c7006a0b719ec1e3a9cd75b2b37253
Signed-off-by: Neale Ranns <nranns@cisco.com>

# 6a7cff7e 12-Oct-2018 Andrew Yourtchenko <ayourtch@gmail.com>

tap gso: experimental support

This commit adds a "gso" parameter to existing "create tap..." CLI,
and a "no-gso" parameter for the compatibility with the future,
when/if defaults change.

It makes use of the lowest bit of the "tap_flags" field in the API call
in order to allow creation of GSO interfaces via API as well.

It does the necessary syscalls to enable the GSO
and checksum offload support on the kernel side and sets two flags
on the interface: virtio-specific virtio_if_t.gso_enabled,
and vnet_hw_interface_t.flags & VNET_HW_INTERFACE_FLAG_SUPPORTS_GSO.

The first one, if enabled, triggers the marking of the GSO-encapsulated
packets on ingress with VNET_BUFFER_F_GSO flag, and
setting vnet_buffer2(b)->gso_size to the desired L4 payload size.

VNET_HW_INTERFACE_FLAG_SUPPORTS_GSO determines the egress packet
processing in interface-output for such packets:

When the flag is set, they are sent out almost as usual (just taking
care to set the vnet header for virtio).

When the flag is not enabled (the case for most interfaces),
the egress path performs the re-segmentation such that
the L4 payload of the transmitted packets equals gso_size.

The operations in the datapath are enabled only when there is at least
one GSO-compatible interface in the system - this is done by tracking
the count in interface_main.gso_interface_count. This way the impact
of conditional checks for the setups that do not use GSO is minimized.

"show tap" CLI shows the state of the GSO flag on the interface, and
the total count of GSO-enabled interfaces (which is used to enable
the GSO-related processing in the packet path).

This commit lacks IPv6 extension header traversal support of any kind -
the L4 payload is assumed to follow the IPv6 header. Also it performs
the offloads only for TCP (TSO - TCP segmentation offload).
The UDP fragmentation offload (UFO) is not part of it.

For debug purposes it also adds the debug CLI:

"set tap gso {<interface> | sw_if_index <sw_idx>} <enable|disable>"

Change-Id: Ifd562db89adcc2208094b3d1032cee8c307aaef9
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>

# 652d2e13 01-Feb-2019 Damjan Marion <damarion@cisco.com>

Deprecate old mutliarch code, phase 1

It is causing compilation sloness with gcc-7 so removing it
before it was originally planned.

So far macros are left in the tree so we can know which nodes to
convert to new multiarch code.

Change-Id: Idb14622ca61fdce1eba59723b20d98715b7971e6
Signed-off-by: Damjan Marion <damarion@cisco.com>

# 8b5d0b8c 21-Jan-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

VPP-1549 Add missing counter name.

show interface

Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count
local0 0 down 0/0/0/0
pg0 1 down 9000/0/0/0 rx packets 582
rx bytes 34051
tx packets 4
tx bytes 364
drops 323
ip6 1
(nil) 580

show interface
Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count
local0 0 down 0/0/0/0
pg0 1 down 9000/0/0/0 rx packets 582
rx bytes 34051
tx packets 4
tx bytes 364
drops 323
ip6 1
mpls 580

Change-Id: I3dcde4799764277535baf42f855e4e8bb48c0d02
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

# 3ae2873e 16-Nov-2018 Dave Barach <dave@barachs.net>

pcap-based dispatch tracer

To facilitate dispatch trajectory tracing, vlib_buffer_t decoding, etc.
through Wireshark

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

# 97670eb3 08-Nov-2018 Damjan Marion <damarion@cisco.com>

vnet: remove unused field

It is not used and just confuses people...

Change-Id: Ic731432a785731271531f183b448e4591a1d2a8b
Signed-off-by: Damjan Marion <damarion@cisco.com>

# 5100aa9c 08-Nov-2018 Damjan Marion <damarion@cisco.com>

vnet: store hw interface speed in kbps instead of using flags

Change-Id: Idd4471a3adf7023e48e85717f00c786b1dde0cca
Signed-off-by: Damjan Marion <damarion@cisco.com>

# b3a9381a 29-Oct-2018 Neale Ranns <nranns@cisco.com>

interface-flags; fix coverity error found in conversion

Change-Id: I2eafac4ce810fe53454b729d81161ec80d036db7
Signed-off-by: Neale Ranns <nranns@cisco.com>

# 6e43e068 26-Oct-2018 Neale Ranns <nranns@cisco.com>

Enumify interface flags

clang will emit a warning when the wrong enum type is passed to a
function whose arguments are an enum type. free bug finding...

Change-Id: I62215d8ef22c7527a31272e31f5d190e4e762e53
Signed-off-by: Neale Ranns <nranns@cisco.com>

# 2f6d7bb9 03-Oct-2018 Sirshak Das <sirshak.das@arm.com>

vppinfra: add atomic macros for __sync builtins

This is first part of addition of atomic macros with only macros for
__sync builtins.

- Based on earlier patch by Damjan (https://gerrit.fd.io/r/#/c/10729/)
- clib_atomic_release macro added and used in the absence
of any memory barrier.
- clib_atomic_bool_cmp_and_swap added

Change-Id: Ie4e48c1e184a652018d1d0d87c4be80ddd180a3b
Original-patch-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Ola Liljedahl <ola.liljedahl@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>

# bdc0e6b7 22-Sep-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Trivial: Clean up some typos.

Change-Id: I085615fde1f966490f30ed5d32017b8b088cfd59
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>

# 3b81a1e5 06-Sep-2018 Neale Ranns <nranns@cisco.com>

L2 BVI/FIB: Update L2 FIB table when BVI's MAC changes

also some moving of l2 headers to reduce dependencies

Change-Id: I7a700a411a91451ef13fd65f9c90de2432b793bb
Signed-off-by: Neale Ranns <nranns@cisco.com>

# 6e36351f 10-Aug-2018 Damjan Marion <damarion@cisco.com>

Multiarch handling in different constructor macros

This significantly reduces need for


in multiarch code. Simply constructor macros will jost create static unused
entry if CLIB_MARCH_VARIANT is defined and that will be optimized out by

Change-Id: I17d1c4ac0c903adcfadaa4a07de1b854c7ab14ac
Signed-off-by: Damjan Marion <damarion@cisco.com>

# dd8e7d0e 23-Jul-2018 Mohsin Kazmi <sykazmi@cisco.com>

Multiversioning: Device (tx) function constructor

Change-Id: I39f87ca161c891fb22462a23188982fef7c3243f
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

# 1855b8e4 11-Jul-2018 Neale Ranns <nranns@cisco.com>

IP directed broadcast

with ip direct broadcast enable a packet to the interface's
subnet broadcast address with be sent L2 broadcast on the
interface. dissabled, it will be dropped. it is disabled by
default, which preserves current behaviour

Change-Id: If154cb92e64834e97a541b32624354348a0eafb3
Signed-off-by: Neale Ranns <nranns@cisco.com>

# 17ff3c1f 04-Jul-2018 Neale Ranns <neale.ranns@cisco.com>


A pipe resembles a unix pipe. Each end of the pipe is a full
VPP interface.
pipes can be used for e.g. packet recirculation, inter-BD, etc.

Change-Id: I185bb9fb43dd233ff45da63ac1b85ae2e1ceca16
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

# 1ec0ea85 14-Jun-2018 Ole Troan <ot@cisco.com>

STATS: Add more hierarchy to counters.

Put error counters under node_index.

/err/ip4-lookup/Hash table collisions
/err/ip6-rewrite/Buffer allocation error

Error names are not globally unique, and this allows
for walking all errors for a particular node.

Put interface counters under the directory /if.
E.g. /if/rx

Put system counters under the directory /sys.
E.g. /sys/vector_rate

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

# d723161e 07-Jun-2018 Ole Troan <ot@cisco.com>

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>

# a8ab568f 10-May-2018 Damjan Marion <damarion@cisco.com>

Fix issue with xconnect not working on the main interface

Due to union, l2 sub-interface bits were wrongly set
causing sporadic misconfiguration of l2 mode on some

Change-Id: Id77ee281e3a0030878641a786c22ffe16ce1c759
Signed-off-by: Damjan Marion <damarion@cisco.com>

# a35cc14d 16-Mar-2018 Damjan Marion <damarion@cisco.com>

vnet: device flow offload infra

Change-Id: Ibea4a96bdec5e368301a03d8b11a0712fa0265e0
Signed-off-by: Damjan Marion <damarion@cisco.com>

# 580bba72 23-Apr-2018 Neale Ranns <nranns@cisco.com>

Adjacency walk more scalable

When walking all adjacencies for a given {next-hop,interface} instead of
walking all the adjacencies on that interface and matching the next-hop
(which is O(n) in the number of adjacencies on that link, find all instances
of an adjacency with any link-type and wtih that {next-hop,interfacE} pair:
this is O(1).

Change-Id: Ic80399fc9e93c8df111379c039e592d8cafbab18
Signed-off-by: Neale Ranns <nranns@cisco.com>

# fe7d4a2e 13-Apr-2018 Damjan Marion <damarion@cisco.com>

Revert "MTU: Setting of MTU on software interface (instead of hardware interface)"

This reverts commit 70083ee74c3141bbefb185525315f1b34497dcaa.

Reverting as this patch is causing following crash:

0: /home/damarion/cisco/vpp3/build-data/../src/vnet/devices/devices.h:131 (vnet_get_device_input_thread_index) assertion `queue_id < vec_len (hw->input_node_thread_index_by_queue)' fails

Change-Id: Ie2a365032110b1f67be7a9d832885b9899813d39
Signed-off-by: Damjan Marion <damarion@cisco.com>

# 70083ee7 27-Mar-2018 Ole Troan <ot@cisco.com>

MTU: Setting of MTU on software interface (instead of hardware interface)

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

# 4f8863b2 13-Apr-2018 Steven <sluong@cisco.com>

bond: ping fails between l2 BD [VPP-1238]

In dpdk based bonding, when the bond interface is configured for l2,
it automatically sets the bond interface to promiscuous mode and sets rx
redirect to ethernet-input. This allows traffic to be bridged to
non compute node facing interface when it is received from the compute
node interface.

For native vpp bonding, we need to do similar things. When the bond interface
is configured for l2, we set the slave interfaces to promiscuous mode
and set rx redirect to ethernet-input because dpdk does not know anything
about the bond interface. Likewise, when a new interface is enslaved, we also
need to do the same thing if the bond interface has already been configured
for l2.

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

# 87dad11c 09-Apr-2018 Neale Ranns <neale.ranns@cisco.com>

L2: no-flood interface type in the Bridge-Domain

Change-Id: I50ff0cacf88182f8e0be19840c50f4954de586e2
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>

# 72d2c4f3 05-Apr-2018 Damjan Marion <damarion@cisco.com>

plugins: unload plugin if early init fails

Change-Id: I32f68e2ee8f5d32962acdefb0193583f71d342b3
Signed-off-by: Damjan Marion <damarion@cisco.com>

# 871dc428 29-Mar-2018 Neale Ranns <nranns@cisco.com>

Detailed stats collection feature

Use device-input and interface-output feautre arcs to collect unicast, multicast
and broadcast states for RX and TX resp. Since these feature arcs are present only
for 'physical' interfaces (i.e. not su-interfaces) counter collection is supported
only on parent interface types.

Change-Id: I915c235e336b0fc3a3c3de918f95dd674e4e0e4e
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>

# f704f389 19-Mar-2018 Neale Ranns <nranns@cisco.com>

Use x(void) not x() in new interface stats code

Change-Id: Iaceaba4dc22341c631c858516b960ce97c4aa564
Signed-off-by: Neale Ranns <nranns@cisco.com>

# 6f4a6be8 16-Mar-2018 Neale Ranns <nranns@cisco.com>

Interface Unicast, Multicast and Broadcast stats on the API

Change-Id: I7c75da358aff1bd0216a602a49f2909cef5d920d
Signed-off-by: Neale Ranns <nranns@cisco.com>

# 03f47f1e 08-Mar-2018 Lee Roberts <lee.roberts@hpe.com>

Coordinate known Ethernet speeds with Linux kernel and DPDK

Linux kernel and DPDK recognize the following Ethernet speeds:
10M, 100M, 1G, 2.5G, 5G, 10G, 20G, 25G, 40G, 50G, 56G and 100G.
Add consistent Ethernet speeds to VPP.

Change-Id: I4cfcf378fb34425c1206db5aa2f6bdcc66e0a6ab
Signed-off-by: Lee Roberts <lee.roberts@hpe.com>

# 7c748bbe 25-Feb-2018 Damjan Marion <damarion@cisco.com>

vnet: add 25G interface speed flag

Change-Id: I1d3ede2b043e1fd4abc54f540bb1d3ac9863016e
Signed-off-by: Damjan Marion <damarion@cisco.com>

# f9cda7d3 13-Feb-2018 Eyal Bari <ebari@cisco.com>

vnet:remove duplicate interface function macro

Change-Id: I0ee18df69d5fe833c746d0d1e14aac14338a6e42
Signed-off-by: Eyal Bari <ebari@cisco.com>

# e5453d0f 24-Jan-2018 John Lo <loj@cisco.com>

Improve tunnel interface creation performance

Modify interface creation to allow creation of tunnel interfaces
without dedicated per tunnel output and tx nodes which are not
used for most tunnel types. Also changed interface-output node
function vnet_per_buffer_interface_output() so it does not rely
on hw_if_index as the next node index which is not flexible nor
efficient for large scale tunnel interfaces.

The improvenemts are done for VXLAN, VXLAN-GPE, GENEVE and GTPU
tunnels. GRE tunnel is still using per tunnel output nodes which
will be changed in a separate patch with other GRE enhencements.

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

# 15ac81c1 20-Jun-2017 Pavel Kotucek <pkotucek@cisco.com>

P2P Ethernet

Change-Id: Idb97e573961b3bc2acdeef77582314590795f8c3
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>

# 2c0a4f40 29-Jun-2017 Dave Barach <dave@barachs.net>

TCP/UDP checksum offload API

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

# b2fd6cb5 12-Jul-2017 John Lo <loj@cisco.com>

Fix crash with worker threads on 4K VXLAN/BD setup (VPP-907)

Cleanup mapping of interface output node for the l2-output node
when interface is configured to L2 or L3 modes. The mapping is
now always done in the main thread as part of API/CLI processing,
instead of initiate mapping in the forwarding path which can be
in the worker threads.

Change-Id: Ia789493e7d9f5c76d68edfaf34db43f3e3f53506
Signed-off-by: John Lo <loj@cisco.com>
(cherry picked from commit bea5ebf205e0bec922bf26c6c1a6a9392b4cad67)

# 10ae7662 30-Jun-2017 Damjan Marion <damarion@cisco.com>

Deprecate support for flattened output nodes

Change-Id: Id117e219146d9994340fb38c00233ea67db8929b
Signed-off-by: Damjan Marion <damarion@cisco.com>

# 4e53a0d0 21-Jun-2017 Damjan Marion <damarion@cisco.com>

Introduce default rx mode for device drivers

If interface is down and queues are not configured then we are not able
to change rx-mode. This change introducess default mode which is stored
per interface and applied if driver wants.

Change-Id: I70149c21c1530eafc148d5e4aa03fbee53dec62f
Signed-off-by: Damjan Marion <damarion@cisco.com>

# abce509a 10-May-2017 Damjan Marion <damarion@cisco.com>

vnet: introduce error state for sw interfaces

Interfaces with error state are not allowed to go admin up

Change-Id: I09fc09a5b28130aead219dccbc2e0f30ea7414cf
Signed-off-by: Damjan Marion <damarion@cisco.com>

# e3a395c8 09-May-2017 Steven <sluong@cisco.com>

device: Add callback for set interface rx-mode

- When the interface rx-mode is changed via CLI, the corresponding device
may want to know about it and to reset the driver. This patch is to add
the callback.

- In the function vnet_hw_interface_set_rx_mode, it appears it is missing
a line
hw->rx_mode_by_queue[queue_id] = mode

because the function is checking if the new mode is the same as
hw->rx_mode_by_queue which is initialized to POLLING. So if the function is
called to change the mode to interrupt, it just returns without doing
anything. This is the check that I am talking about in the same function.

if (hw->rx_mode_by_queue[queue_id] == mode)
return 0;

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

# 4403690c 27-Apr-2017 Damjan Marion <damarion@cisco.com>

Add interface rx mode commands, unify rx mode and placement CLI

Change-Id: Ib506c3e9d66170f29e3266ad6dc4d32b829befba
Signed-off-by: Damjan Marion <damarion@cisco.com>

# 153646e8 05-Apr-2017 Damjan Marion <damarion@cisco.com>

Common device-input interrupt infra

Change-Id: I23b588eb56a3f5690158449a1f9bc8053cd3d251
Signed-off-by: Damjan Marion <damarion@cisco.com>

# 586afd76 05-Apr-2017 Damjan Marion <damarion@cisco.com>

Use thread local storage for thread index

This patch deprecates stack-based thread identification,
Also removes requirement that thread stacks are adjacent.

Finally, possibly annoying for some folks, it renames
all occurences of cpu_index and cpu_number with thread
index. Using word "cpu" is misleading here as thread can
be migrated ti different CPU, and also it is not related
to linux cpu index.

Change-Id: I68cdaf661e701d2336fc953dcb9978d10a70f7c1
Signed-off-by: Damjan Marion <damarion@cisco.com>

# eb743fad 20-Mar-2017 Damjan Marion <damarion@cisco.com>

vnet: add device-input threadplacement infra

This change adds two new debug CLI command:

- "show interface placmenet" to display which
thread (main or worker) is responsible for processing
interface rx queue

vpp# show interface placement
Thread 0 (vpp_main):
node af-packet-input:
host-vpp1 queue 0
Thread 1 (vpp_wk_0):
node af-packet-input:
host-virbr0 queue 0
Thread 2 (vpp_wk_1):
node af-packet-input:
host-vpp2 queue 0
host-lxcbr0 queue 0

- "set interface placmenet" to assign thread (main or worker)
which process specific interface rx queue

vpp# set interface placement host-vpp1 queue 0 main

Change-Id: Id4dd00cf2b05e10fae2125ac7cb4411b446c5e9c
Signed-off-by: Damjan Marion <damarion@cisco.com>

# 3212c570 06-Mar-2017 Eyal Bari <ebari@cisco.com>

CLI: hide deleted interfaces

Added a new interface flag - HIDDEN
Indicates that the interface does not appear in CLI/API.
Added three new interface functions:
vnet_sw_interface_is_api_visible - indicates if the sw_if_index should be displayed
vnet_swif_is_api_visible - variant for sw_interface
vnet_sw_interface_is_api_valid - tests if the given if_index exists and is visible
for future use by api functions

Changed the unformat function to only accept visible interfaces
Changed vxlan to add the HIDDEN flag to deleted interfaces

This is the first part in a series to hide deleted interfaces from the API

Change-Id: Ib43cc5cf1c450856560faf4e84126eb3671038e2
Signed-off-by: Eyal Bari <ebari@cisco.com>

# ce1b4c7f 26-Jan-2017 Florin Coras <fcoras@cisco.com>

Basic support for LISP-GPE encapsulated NSH packets

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

# 7cd468a3 19-Dec-2016 Damjan Marion <damarion@cisco.com>

Reorganize source tree to use single autotools instance

Change-Id: I7b51f88292e057c6443b12224486f2d0c9f8ae23
Signed-off-by: Damjan Marion <damarion@cisco.com>