History log of /vpp/src/plugins/gbp/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
59f71132 08-Apr-2020 Neale Ranns <nranns@cisco.com>

ip: Replace Sematics for Interface IP addresses

Type: feature

- replace functions for prefixes attached to interfaces
- add ip_interface.[ch] to consoldate the functions

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

16e4a4a0 16-Apr-2020 Dave Barach <dave@barachs.net>

vppinfra: bihash improvements

Template instances can allocate BIHASH_KVP_PER_PAGE data records
tangent to the bucket, to remove a dependent read / prefetch.

Template instances can ask for immediate memory allocation, to avoid
several branches in the lookup path.

Clean up l2 fib, gpb plugin codes: use clib_bihash_get_bucket(...)

Use hugepages for bihash allocation arenas

Type: improvement

Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Damjan Marion <damarion@cisco.com>
Change-Id: I92fc11bc58e48d84e2d61f44580916dd1c56361c

040d47c2 16-Apr-2020 Benoît Ganne <bganne@cisco.com>

gbp: fix l3-out anonymous test cleanup

Type: fix

Change-Id: Ib455b0a57f9b4f9cb82bb295c220270d0c6e5fe5
Signed-off-by: Benoît Ganne <bganne@cisco.com>

8d0d8d2f 07-Apr-2020 Neale Ranns <nranns@cisco.com>

gbp: More reliable unit-tests

Type: fix

the GBP unit tests would peridocially fail. The reason being that there
is dynamic state whose presence nneds to be created, tested and then
timeed out. The failures occurded when the timeout occured before the
state could be tested. the previous timeout was 2 seconds, this has been
doubled, as a result i saw no faliures running continuously for ~16
hours.
bumping the timer increasing the test run time from ~40 to ~53 seconds,
a small price to pay.

in test cases where the state is not timed out i bumped the timer to 60
seconds.

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

2f8cd914 27-Mar-2020 Jakub Grajciar <jgrajcia@cisco.com>

acl: API cleanup

Use consistent API types.

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I09fa6c1b6917936351bd376b56c414ce24488095
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

492a5d0b 26-Mar-2020 Ole Trøan <otroan@employees.org>

acl: revert acl: api cleanup

This reverts commit aad1ee149403994194cf37cef4530b042ba7df3a.

Reason for revert: Verify failure. Doesn't build.

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

aad1ee14 10-Mar-2020 Jakub Grajciar <jgrajcia@cisco.com>

acl: API cleanup

Use consistent API types.

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: If90d753f129312400c4c3669bb86289d0c3e0d99
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>

e9a630a5 20-Feb-2020 Neale Ranns <nranns@cisco.com>

gbp: Coverity warnings for unitialized variables

Type: fix

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

cbe25aab 30-Sep-2019 Neale Ranns <nranns@cisco.com>

ip: Protocol Independent IP Neighbors

Type: feature

- ip-neighbour: generic neighbour handling; APIs, DBs, event handling,
aging
- arp: ARP protocol implementation
- ip6-nd; IPv6 neighbor discovery implementation; separate ND,
MLD, RA
- ip6-link; manage link-local addresses
- l2-arp-term; events separated from IP neighbours, since they are not
the same.

vnet retains just enough education to perform ND/ARP packet
construction.
arp and ip6-nd to be moved to plugins soon.

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

f50bac1b 06-Dec-2019 Neale Ranns <nranns@cisco.com>

vppinfra: bihash walk cb typedef and continue/stop controls

Type: feature

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

5d4b8912 13-Dec-2019 snaramre <snaramre@cisco.com>

tests: changes for scapy 2.4.3 migration

Type: fix
Change-Id: I7e041b666dabd90df23a920a1f1d99db4c10ddfe
Signed-off-by: snaramre <snaramre@cisco.com>

38277e40 06-Dec-2019 Ole Troan <ot@cisco.com>

gbp: use explicit types in api

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

3bab8f9c 04-Dec-2019 Neale Ranns <nranns@cisco.com>

fib: Decouple source from priority and behaviour

Type: feature

the fib_source_t enum alone no longer defines the priority and
behaviour, instead each source must be allocated these attributes.
This allows the creation of other sources by the plugins (and
soon over the API).

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

efd7bc2b 11-Nov-2019 Neale Ranns <nranns@cisco.com>

tests: Remove the unrequired VPP IP address/prefix class wrappers

Type: refactor

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

770a0dea 07-Nov-2019 Ole Troan <ot@cisco.com>

tests: python3 use byte strings in raw()

Raw('\xaf) and Raw(b'\xaf) are two quite different things in python 2 versus 3.
In most cases this didn't make a difference, apart from those cases where length
of payload actually mattered.

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

ead1e536 31-Oct-2019 Renato Botelho do Couto <renato@netgate.com>

misc: Fix python scripts shebang line

Type: fix

Since CentOS 8, RPM build script doesn't accept '#!/usr/bin/env python'
as a valid shebang line. It requires scripts to explicitly chose
between python2 or python3.

Change all to use python3 as suggested by Paul Vinciguerra.

Depends-On: https://gerrit.fd.io/r/23170

Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
Change-Id: Ie72af9f60fd0609e07f05b70f8d96e738b2754d1

bb098f17 22-Oct-2019 Neale Ranns <nranns@cisco.com>

gbp: missing contract hash-mode setting

Type: fix

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

a3c8ca10 10-Jul-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add extended SFC unit tests

Type: feature

Change-Id: I1218257af0053ae27c4394d7666fde87a732e08c
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Signed-off-by: Benoît Ganne <bganne@cisco.com>

db056acc 14-Oct-2019 Benoît Ganne <bganne@cisco.com>

gbp: use correct dst mac for RD-UU forward

Type: fix

Change-Id: Ifdd193fab24796346b11a5df81740880f9a50ee8
Signed-off-by: Benoît Ganne <bganne@cisco.com>

5c71a2e5 27-Sep-2019 Ole Troan <ot@cisco.com>

gbp: remove api boilerplate

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

44ca60ec 06-Sep-2019 Benoît Ganne <bganne@cisco.com>

gbp: fix contract rule handling

Fix a memory leak when removing old GBP contract rules and make sure a
GBP contract rule exists when matching the corresponding ACL rule.

Type: fix
Fixes: 13a08cc098

Change-Id: Iba67d573e69280ad998488a7a3d3462341c68ea4
Signed-off-by: Benoît Ganne <bganne@cisco.com>

d51880c5 03-Sep-2019 Benoît Ganne <bganne@cisco.com>

gbp: remove loopback interfaces between tests

Type: fix

Change-Id: I440f25b95b23b717518d101a1327ecf16d6ba39a
Signed-off-by: Benoît Ganne <bganne@cisco.com>

33a58171 04-Sep-2019 Ole Troan <ot@cisco.com>

api: autogenerate api trace print/endian

In addition to the external vppapitrace tool, VPP itself supports dumping of API trace files.
In two formats, "custom-dump" and "dump". "dump" gives a human friendly list,
and "custom-dump" is meant to give a list of commands that can be fed to VAT.
This patch only deals with "dump".
Prior to this fix, auto-generation was only done for the basic types.
This fix adds support for any type, including lists, and supports pretty-printing
of enums, strings, IP addresses, MAC addresses and so on.

Usage: api trace dump <api-trace-file>

For example

Change-Id: I4e485680e6dcfce7489299ae6cf31d835071ac40

---------- trace 48 -----------
vl_api_sw_interface_set_flags_t:
_vl_msg_id: 75
client_index: 0
context: 10
sw_if_index: 1
flags: IF_STATUS_API_FLAG_ADMIN_UP
---------- trace 49 -----------
vl_api_sw_interface_add_del_address_t:
_vl_msg_id: 88
client_index: 0
context: 11
sw_if_index: 1
is_add: 1
del_all: 0
prefix: 172.16.1.1/24
---------- trace 51 -----------
vl_api_cli_inband_t:
_vl_msg_id: 819
client_index: 0
context: 13
cmd: packet-generator capture pg0 pcap /tmp/vpp-unittest-TestMAP-YhcmDX/pg0_out.pcap disable
---------- trace 58 -----------
vl_api_ip_neighbor_add_del_t:
_vl_msg_id: 199
client_index: 0
context: 20
is_add: 1
neighbor:
sw_if_index: 2
flags: IP_API_NEIGHBOR_FLAG_NONE
mac_address: 0202.0000.ff02
ip_address: fd01:2::2

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

a03d25d3 03-Sep-2019 Benoît Ganne <bganne@cisco.com>

gbp: fix set_mac() in unit tests

Do not use low-level sw_interface_set_mac_address() directly and use
higher-level set_mac() instead, otherwise interface local_mac and
configured mac are out-of-sync

Type: fix
Fixes: 25b049484f

Change-Id: I9366e7afb95ef00e25a94ca3b0e6309871169878
Signed-off-by: Benoît Ganne <bganne@cisco.com>

e7eba489 25-Aug-2019 Simon Zhang <yuwei1.zhang@intel.com>

ip: remove unused function parameter

Type: refactor

Signed-off-by: Simon Zhang <yuwei1.zhang@intel.com>
Change-Id: I8674ff5f6f6336b256b7df8187afbb36ddef71fb

a43c93f8 22-Aug-2019 Dave Wallace <dwallacelf@gmail.com>

tests: move plugin tests to src/plugins/*/test

- Relocate plugin tests for 'make test' into
src/plugins/*/test so that plugin test cases
are co-located with the plugin source code.

Type: refactor

Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: I503e6a43528e14981799b735fa65674155713f67
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

e7174829 07-Aug-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

vppapigen: remove support for legacy typedefs

vppapigen has remapped legacy to typedefs behind the scenes
for some time now.

- update .api files to use new style typedefs.
- issue error on 'typeonly define' in .api files
- remove unneeded macros redefining vl_noop_handler

Type: refactor

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

1b3ce398 06-Aug-2019 Benoît Ganne <bganne@cisco.com>

gbp: do not scan gbp bihash if not instantiated

Type: fix
Fixes: 32dcd3b2f227dec638c39ade0c58d6741d83ec30

Change-Id: I42550fcc5b3fa486a05770d3e220d7a86315628e
Signed-off-by: Benoît Ganne <bganne@cisco.com>

8511687d 06-Aug-2019 Benoît Ganne <bganne@cisco.com>

gbp: update gbp endpoint cli

Type: feature

Change-Id: I0afc6eb4765029dc28859c9ac2b0578749a38d3d
Signed-off-by: Benoît Ganne <bganne@cisco.com>

31b31570 15-Jul-2019 Benoît Ganne <bganne@cisco.com>

gbp: fix contracts dpo ACL match

Type: fix
Fixes: 1d6d9f021c5a169dedca55b46451ab54728e3ee8

Change-Id: I3912c8bb78d678170bdd86821d2ead3ae0396841
Signed-off-by: Benoît Ganne <bganne@cisco.com>

6d1ba56f 10-Jul-2019 Neale Ranns <nranns@cisco.com>

gbp: An Endpoint can change sclass

Type: feature

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

e28c87cd 05-Jul-2019 Neale Ranns <nranns@cisco.com>

gbp: Ownership of dynamically created vxlan-gbp tunnels managed via gbp_itf

Type: fix

This solves the ownership of vxlan-gbp tunnels. When the last reference of these goes away they need to be deleted. Currently there are two owners; gbp_itf via gef_itf and the lock held by the gbp_endpoint_location_t. The problem is that the
loc removes its reference whilst the fwd still holds the gbp_itf, and things go wrong.
This change moves the lifecycle management of the vxlan-gbp tunnel to the gbp_itf. When the last lock of the gbp_itf goes, so does the tunnel. now both the EP's loc and fwd can hold a lock on the gbp_itf and it's only removed when required.
The other change is the management of the 'user' of the gbp_itf. Since each user can enable and disable different features, it's the job of the gbp_itf to apply the combined set. determining a unique 'uesr' from the caller was near impossible, so I moved that to the gbp_itf, and return the allocated user, hence the 'handle' that encodes both user and interface.

The hash table maps from sw_if_index to pool index.

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

888640a3 15-May-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

map gbp papi: match endianess of f64

clib_net_to_host_f64, clib_host_to_net_f64 are now implemented as '=',
https://gerrit.fd.io/r/#/c/20406/ set papi to match.
- all f64 api references are now wrapped with
clib_net_to_host_f64 or clib_host_to_net_f64.

IEEE f64 endianess is not defined. If clib_net_to_host_f64 and
clib_host_to_net_f64 are later defined in VPP as big-endian, it is
a single character change in the papi vpp_serializer.

Note: This breaks the api in a manner that would not be detected by
the flag day initiative. The scope is small. This only impacts map.api,
which applied the u64 transformation, while the gbp api uses '='.

The implementation of "=" raises issues for the papi socket implementation
if used between systems of differing endianess. See Vratko's comments.

- Added get_f64_endian_value() to api to allow client to verify endianess of f64's.

Type: fix
Depends-on: https://gerrit.fd.io/r/#/c/20484/

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

69a85b50 14-Jun-2019 Neale Ranns <nranns@cisco.com>

gbp: More unit tests

Type: test

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

1d6d9f02 03-Jul-2019 Benoît Ganne <bganne@cisco.com>

gbp: refactor policy nodes

Refactor both policy and policy-dpo nodes so they share the same code
for contract & acl lookup and for tracing.
This should help to implement new policy schemes.

Type: refactor

Change-Id: If5704bda708838eb01516dd39473d9bf248cfdf6
Signed-off-by: Benoît Ganne <bganne@cisco.com>

17237fbd 05-Jul-2019 Benoît Ganne <bganne@cisco.com>

gbp: use bd index at ext-itf creation instead of bd id

Type: fix
Fixes: cfc7a107e6cb8be6e7c53a08e23a146c431c8e90

Change-Id: I341cbc94271ab89c3c643756a9c04b790cef8591
Signed-off-by: Benoît Ganne <bganne@cisco.com>

3918bdbc 04-Jul-2019 Benoît Ganne <bganne@cisco.com>

gbp: update gbp-ext-itf API

Change gbp-ext-itf API to create anonymous ext-itf through the same API
as non-anonymous instead of a new API

Type: refactor

Change-Id: I381ff2a5bcd55276793df78ca891334c28946cd0
Signed-off-by: Benoît Ganne <bganne@cisco.com>

3eea9de8 21-Jun-2019 Neale Ranns <nranns@cisco.com>

gbp: Consider data-plane learnt source better than control-plane

Type: feature

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

7bf7ea3c 02-Jul-2019 Neale Ranns <nranns@cisco.com>

gbp: improve contract formatting

Type: feature

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

3c0d84c9 26-Jun-2019 Benoît Ganne <bganne@cisco.com>

gbp: add anonymous l3-out subnets

An anonymous l3-out subnet is a locally attached l3-out subnet, and
differs from regular l3-out subnets in the way adjacencies are managed.
It is required for the anonymous l3-out external interfaces to correctly
classify locally attached l3-out hosts.

Type: feature

Change-Id: Ie7bc88b1f22abc4d0b46db5f3cfbf208bc53ba5f
Signed-off-by: Benoît Ganne <bganne@cisco.com>

cfc7a107 26-Jun-2019 Benoît Ganne <bganne@cisco.com>

gbp: add anonymous l3-out external interfaces

So far, GBP l3-out packets classification & policy relied on programmed
EP. All traffic to/from l3-out must go through a known EP.
This patch introduces a new feature where l3-out next-hops are only
known by their subnets (l3-out prefixes). As there are no longer known
EPs to program, an interface must be configured as external anonymous
l3-out. Packets classification & policy on this interface will rely on
the external subnets programmed in the BD VRF.
Note that contrary to all other interfaces in a GBP BD, external
anonymous l3-out interfaces have BD L2 learning turned on and rely on
ARP/ND.

Type: feature

Change-Id: Ieedb29dff4e967d08c4301e82d06bff450a63e5f
Signed-off-by: Benoît Ganne <bganne@cisco.com>

2ec82593 26-Jun-2019 Benoît Ganne <bganne@cisco.com>

gbp: disable L2 BD learning per-interface

Disable L2 BD learning for each GBP interface instead of at the bridge
level. This does not change the current behavior (learning is disabled
for all GBP interfaces) but enables turning it on selectively for future
features such as anonymous l3-out.

Type: refactor

Change-Id: Id88644277941d703600acf97d49cbc3332ae3f68
Signed-off-by: Benoît Ganne <bganne@cisco.com>

160c923f 19-Jun-2019 Neale Ranns <nranns@cisco.com>

gbp: VRF scoped contracts

Type: feature

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

c47b97dd 06-Jun-2019 Benoît Ganne <bganne@cisco.com>

gbp: enforce same endpoint mac and ip src

During packet classification, make sure packets coming from an EP also
matches this specific EP IP address and vice-versa. This prevents and EP
to send a packet on behalf of another EP.

Type: fix

Change-Id: I30287644ec73b90d9b6913952a82b2baedf6a5ff
Signed-off-by: Benoît Ganne <bganne@cisco.com>

ab05508e 06-Jun-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

api: refactor format_vl_api_prefix_t return keys

format_vl_api_prefix_t returns a dict with keys 'address' and 'address_length',
but other format_vl_api_prefix functions return a dict with 'prefix', and 'len'.

Refactor all format_vl_api_prefix_t to return consistent keys 'address' and 'len'.

Type: refactor

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

6ac96762 12-Jun-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add support for arp unicast forward in gbp bridge domain

Type: feature

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

286921ee 05-Jun-2019 Benoît Ganne <bganne@cisco.com>

gbp: fix lpm classification with vlan

Fix GBP LPM packet classification in the presence of a VLAN header.

Change-Id: I2ff63b34f7475d696b10b5a245ff802bbb1ff01a
Signed-off-by: Benoît Ganne <bganne@cisco.com>

be16beb9 05-Jun-2019 Benoît Ganne <bganne@cisco.com>

gbp: do not classify unknown packet as EP packets

If we fail to classify the packet based on LPM we must not classify it
based on the EP sclass.

Change-Id: Ie234e0c87bd44976c3c57c818359c93f7d99ab84
Signed-off-by: Benoît Ganne <bganne@cisco.com>

0d635dac 27-May-2019 Benoît Ganne <bganne@cisco.com>

GBP: add subnet cli command

Change-Id: I0f631da9d13df2d9c32bad879b2a6034cb847378
Signed-off-by: Benoît Ganne <bganne@cisco.com>

f8d50682 14-May-2019 Dave Barach <dave@barachs.net>

init / exit function ordering

The vlib init function subsystem now supports a mix of procedural and
formally-specified ordering constraints. We should eliminate procedural
knowledge wherever possible.

The following schemes are *roughly* equivalent:

static clib_error_t *init_runs_first (vlib_main_t *vm)
{
clib_error_t *error;

... do some stuff...

if ((error = vlib_call_init_function (init_runs_next)))
return error;
...
}
VLIB_INIT_FUNCTION (init_runs_first);

and

static clib_error_t *init_runs_first (vlib_main_t *vm)
{
... do some stuff...
}
VLIB_INIT_FUNCTION (init_runs_first) =
{
.runs_before = VLIB_INITS("init_runs_next"),
};

The first form will [most likely] call "init_runs_next" on the
spot. The second form means that "init_runs_first" runs before
"init_runs_next," possibly much earlier in the sequence.

Please DO NOT construct sets of init functions where A before B
actually means A *right before* B. It's not necessary - simply combine
A and B - and it leads to hugely annoying debugging exercises when
trying to switch from ad-hoc procedural ordering constraints to formal
ordering constraints.

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

1d1985de 23-Apr-2019 Dave Wallace <dwallacelf@gmail.com>

plugins: clean up plugin descriptions

- Make plugin descriptions more consistent
so the output of "show plugin" can be
used in the wiki.

Change-Id: I4c6feb11e7dcc5a4cf0848eed37f1d3b035c7dda
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>

d7f92ddf 18-Apr-2019 Benoît Ganne <bganne@cisco.com>

GBP: update cli to reflect API changes

Some GBP debug cli short help and commands were not in sync anymore with
GBP API.

Change-Id: I224bec51fbacd8a3685b70d4e7a52b5803fd3ad4
Signed-off-by: Benoît Ganne <bganne@cisco.com>

e60dfd7a 16-Apr-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add support for allow sclass/dclass 1

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

796c84b2 28-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: drop and contract counters

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

281ff513 08-Apr-2019 Neale Ranns <nranns@cisco.com>

GBP: coverity uninitialised variable warning

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

7363d479 04-Apr-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add gbp bd flags unit test

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

1aa35576 04-Apr-2019 Neale Ranns <nranns@cisco.com>

GBP: Counters per-contract

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

8ea109e4 22-Mar-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add bd flags

Add flags for unknown unicast drop, multicast and broadcast
drop and arp unicast.

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

2b600184 29-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: iVXLAN reflection check

packets should not egress on an iVXLAN tunnel if they
arrived on one.

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

76b5649d 28-Sep-2018 Neale Ranns <nranns@cisco.com>

Punt Infra

A punt/exception path that provides:
1) clients that use the infra
2) clients can create punt reasons
3) clients can register to recieve packets that are punted
for a given reason to be sent to the desired node.
4) nodes which punt packets fill in the {reason,protocol} of the
buffere (in the meta-data) and send to the new node "punt-dispatch"
5) punt-dispatch sends packets to the registered nodes or drops

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

4dd4cf4f 27-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: fixes for l3-out routing

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

6f0fb0bd 14-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: coverity legit bug

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

6233111b 14-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: update semantics for subnets

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

4c2bff06 14-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: get source address from ARP packets for LPM classification

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

36abbf10 12-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: L3 out fixes

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

7bd34350 11-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: custom-dump functions

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

fa0ac2c5 12-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: contracts API fixed length of allowed ethertypes

VAPI does not handle two VLAs in one struct.

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

5d704aea 08-Mar-2019 Neale Ranns <nranns@cisco.com>

updates now that flags are supported on the API

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

4ba67723 28-Feb-2019 Neale Ranns <nranns@cisco.com>

GBP: use sclass in the DP for policy

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

0f5a3b25 06-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: format EPG retention policy

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

8da9fc65 04-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: learn from ARP and L2 packets

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

d7f872e8 05-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: format include EPG index

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

32f6d8e0 05-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: per-group EP retention policy

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

7693ca52 04-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: return appropriate error code if tranport mode subnet has no interface

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

4689da0c 04-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: fix and print GBP BD flags

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

f90bcee0 04-Mar-2019 Neale Ranns <nranns@cisco.com>

GBP: fix UT after multi-arch change

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

6fa5dac5 28-Feb-2019 Filip Tehlar <ftehlar@cisco.com>

gbp: migrate old MULTIARCH macros to VLIB_NODE_FN

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

ba94462c 22-Feb-2019 Neale Ranns <nranns@cisco.com>

GBP: include sclass in format EPG

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

fb2e07d8 22-Feb-2019 Neale Ranns <nranns@cisco.com>

GBP: remove testing asserts

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

0503acee 21-Feb-2019 Neale Ranns <nranns@cisco.com>

GBP: BD index not BD ID

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

37029305 10-Aug-2018 Neale Ranns <nranns@cisco.com>

Use IP and MAC API types for neighbors

use address_t and mac_address_t for IPv6 and ARP entries
and all other API calls in ip.api aprat from the route ones,
that will follow in a separate commit

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

8340c69a 22-Jan-2019 Damjan Marion <damarion@cisco.com>

gbp: fix inlining issue

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

879d11c2 22-Jan-2019 Neale Ranns <nranns@cisco.com>

GBP: Sclass to src-epg conversions

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

14fa5c2a 07-Jan-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp2: Fix typo in condition

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

5f4eb242 07-Jan-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Fix coverity warnings

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

78d62422 07-Jan-2019 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Fix typo in condition

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

420c6bf1 24-Dec-2018 Neale Ranns <nranns@cisco.com>

GBP: fix dump and VOM populate

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

1c17e2ec 20-Dec-2018 Neale Ranns <nranns@cisco.com>

GBP: add allowed ethertypes to contracts

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

e21463d8 21-Dec-2018 Ole Trøan <otroan@employees.org>

Revert "Build issue after https://gerrit.fd.io/r/#/c/16508/."

This reverts commit 57f170bdf9967e3f8ea6e937a70c7f86187f95a2.

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

57f170bd 19-Dec-2018 Paul Vinciguerra <pvinci@vinciconsulting.com>

Build issue after https://gerrit.fd.io/r/#/c/16508/.

CI passes without this.

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

8006c6aa 16-Dec-2018 Ole Troan <ot@cisco.com>

PAPI: Add MACAddress object wrapper for vl_api_mac_address_t

Change the definition of vl_api_mac_address_t to an aliased type.

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

b6a47953 21-Nov-2018 Neale Ranns <nranns@cisco.com>

GBP: l3-out subnets

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

d40c3e65 21-Nov-2018 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add support for flow hash profile

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

33b81da5 18-Nov-2018 Mohsin Kazmi <sykazmi@cisco.com>

vom: Add support for redirect contracts in gbp

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

13a08cc0 07-Nov-2018 Neale Ranns <nranns@cisco.com>

GBP: redirect contracts

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

178cf493 13-Nov-2018 Dave Barach <dave@barachs.net>

Remove c-11 memcpy checks from perf-critical code

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

5d9df1db 09-Nov-2018 Neale Ranns <nranns@cisco.com>

L2 feautre bitmaps output verbose/non-verbose mode

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

46eecfdb 09-Nov-2018 Neale Ranns <nranns@cisco.com>

GBP: Fix error-strings array in gbp-vxlan4

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

b2bc03b3 08-Nov-2018 Neale Ranns <nranns@cisco.com>

GBP: fix for coverity found errors

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

c29c0af4 07-Nov-2018 Neale Ranns <nranns@cisco.com>

GBP: Endpoints with VLAN tags and birdges that don't learn

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

93cc3ee3 10-Oct-2018 Neale Ranns <neale.ranns@cisco.com>

GBP Endpoint Learning

Learning GBP endpoints over vxlan-gbp tunnels

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

b7b92993 17-Oct-2018 Dave Barach <dave@barachs.net>

c11 safe string handling support

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

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>

c0a93143 05-Sep-2018 Neale Ranns <neale.ranns@cisco.com>

GBP Endpoint Updates

- common types on the API
- endpoints keyed in various ways for DP lookup
- conparison functions for VPP IP address types

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

61b94c6b 20-Aug-2018 Mohsin Kazmi <sykazmi@cisco.com>

vxlan-gbp: Add support for vxlan gbp

This patch implements vxlan with extension of group based
policy support.

Change-Id: I70405bf7332c02867286da8958d9652837edd3c2
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.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>

f8520159 27-Aug-2018 Mohsin Kazmi <sykazmi@cisco.com>

cmake: Fix plugins .h includes

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

74449b8b 25-Aug-2018 Damjan Marion <damarion@cisco.com>

cmake: improve add_vpp_plugin macro

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

612dd6a9 29-Jul-2018 Damjan Marion <damarion@cisco.com>

CMake as an alternative to autotools (experimental)

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

c5d4317a 30-Jul-2018 Neale Ranns <neale.ranns@cisco.com>

FIB: return entry prefix by const reference to avoid the copy

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

7d98a12f 19-Jul-2018 Damjan Marion <damarion@cisco.com>

Remove unused argument to vlib_feature_next

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

22b3b846 17-Apr-2018 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add support for ACL

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

9f781d84 05-Jun-2018 Steven <sluong@cisco.com>

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>

4a6d0233 24-Apr-2018 Neale Ranns <neale.ranns@cisco.com>

GBPv6: NAT66 actions for GBP

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

25b04948 04-Apr-2018 Neale Ranns <neale.ranns@cisco.com>

GBP V2

update the GBP plugin to implement the full NAT feature set of opflex agent

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

8ced6e1a 22-Mar-2018 Mohsin Kazmi <sykazmi@cisco.com>

gbp: Add the next node lookup

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

4b65ddf4 07-Mar-2018 Neale Ranns <neale.ranns@cisco.com>

GBP: fix the runs before statement against the ACL node

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

bc27d1be 05-Feb-2018 Neale Ranns <neale.ranns@cisco.com>

GBP plugin

Group Base Policy (GBP) defines:
- endpoints: typically a VM or container that is connected to the
virtual switch/router (i.e. to VPP)
- endpoint-group: (EPG) a collection of endpoints
- policy: rules determining which traffic can pass between EPGs a.k.a
a 'contract'

Here, policy is implemented via an ACL.
EPG classification for transit packets is determined by:
- source EPG: from the packet's input interface
- destination EPG: from the packet's destination IP address.

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