History log of /vpp/src/plugins/abf/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
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>

7c9fe920 10-Jan-2020 John DeNisco <jdenisco@cisco.com>

docs: Edit FEATURE.yaml files so they can be published

Type: docs
Signed-off-by: John DeNisco <jdenisco@cisco.com>
Change-Id: I7280e5c5ad10a66c0787a5282291a2ef000bff5f

3535501b 02-Jan-2020 Neale Ranns <nranns@cisco.com>

abf: add feature.yaml

Type: docs

Change-Id: I4959010617b0fb51652beafe6967afd556f27e92
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,
- arp: ARP protocol implementation
- ip6-nd; IPv6 neighbor discovery implementation; separate ND,
- 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
arp and ip6-nd to be moved to plugins soon.

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

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

abf: use explicit types in api

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

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

9f3d2117 25-Sep-2019 Ole Troan <ot@cisco.com>

abf: remove api boilerplate

Type: refactor
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I80a371baf7715de1acee90952a0dd270172d8538
Signed-off-by: Ole Troan <ot@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_msg_id: 75
client_index: 0
context: 10
sw_if_index: 1
---------- trace 49 -----------
_vl_msg_id: 88
client_index: 0
context: 11
sw_if_index: 1
is_add: 1
del_all: 0
---------- trace 51 -----------
_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_msg_id: 199
client_index: 0
context: 20
is_add: 1
sw_if_index: 2
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>

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>

5ca2a8ae 29-Jul-2019 Neale Ranns <nranns@cisco.com>

fib: fix calls to unformat_fib_path

Type: fix
Ticket: 1728

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

097fa66b 01-May-2018 Neale Ranns <neale.ranns@cisco.com>

fib: fib api updates

Enhance the route add/del APIs to take a set of paths rather than just one.
Most unicast routing protocols calcualte all the available paths in one
run of the algorithm so updating all the paths at once is beneficial for the client.
two knobs control the behaviour:
is_multipath - if set the the set of paths passed will be added to those
that already exist, otherwise the set will replace them.
is_add - add or remove the set

is_add=0, is_multipath=1 and an empty set, results in deleting the route.

It is also considerably faster to add multiple paths at once, than one at a time:

vat# ip_add_del_route count 100000 multipath via
100000 routes in .572240 secs, 174751.80 routes/sec
vat# ip_add_del_route count 100000 multipath via
100000 routes in .528383 secs, 189256.54 routes/sec
vat# ip_add_del_route count 100000 multipath via
100000 routes in .757131 secs, 132077.52 routes/sec
vat# ip_add_del_route count 100000 multipath via
100000 routes in .878317 secs, 113854.12 routes/sec

vat# ip_route_add_del count 100000 multipath via via via via
100000 routes in .900212 secs, 111084.93 routes/sec

Change-Id: I416b93f7684745099c1adb0b33edac58c9339c1a
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.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);


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>

bf386593 11-Apr-2019 Parixit Gokhale <pgokhale@cisco.com>

Adding check to ensure acl_id matches existing acl_id in abf_policy_update

Change-Id: Ia86387ca5a52d6b4b9e5aff0c01c92df13a5dde5
Signed-off-by: Parixit Gokhale <pgokhale@cisco.com>

2e1c8967 10-Apr-2019 Ole Troan <ot@cisco.com>

API: Fix shared memory only action handlers.

Some API action handlers called vl_msg_ai_send_shmem()
directly. That breaks Unix domain socket API transport.

A couple (bond / vhost) also tried to send a sw_interface_event
directly, but did not send the message to all that had
registred interest. That scheme never worked correctly.
Refactored and improved the interface event code.

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

6d8233c9 26-Feb-2019 Igor Mikhailov (imichail) <imichail@cisco.com>

Fix API return code in case of error.

Change-Id: I22f866bacbc9c6e3abb0405f5c5a205910cec17b
Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>

13b2ba2a 30-Jan-2019 Neale Ranns <nranns@cisco.com>

MPLS tunnel; fix crash when deleting non-existant path

in the case the tunnel is the only user of the shared path list
then removing its dependency removes the path list. hence lock the list

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

775f73c6 20-Dec-2018 Neale Ranns <nranns@cisco.com>

FIB: encode the label stack in the FIB path during table dump

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

8f68b3e6 24-Oct-2018 Neale Ranns <nranns@cisco.com>

Use correct name to register ABF plugin with ACLs

Change-Id: Ic69a68665dcff4e4d48803b634aa2cf234c3944b
Signed-off-by: Neale Ranns <nranns@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>

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>

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>

22f9fb12 15-May-2018 Andrew Yourtchenko <ayourtch@gmail.com>

acl-plugin: acl-as-a-service: VPP-1248: fix the error if exports.h included in more than one C file

Including the exports.h from multiple .c files belonging to a single plugin results in an error.

Rework the approach to require the table of function pointers to be filled in by
the initialization function.

Since the inline functions are compiled in the "caller" context,
there is no knowledge about the acl_main structure used by the ACL
plugin. To help with that, the signature of inline functions is slightly
different, taking the p_acl_main pointer as the first parameter.

That pointer is filled into the .p_acl_main field of the method
table during the initialization - since the calling of non-inline variants
would have required filling the method table, this should give
minimal headaches during the use and switch between the two methods.

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

720d86f8 25-Apr-2018 Neale Ranns <nranns@cisco.com>

ABF: remove the inclusion of version.h from abf_policy so it does not recompile each time

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

669d07dc 17-Nov-2017 Andrew Yourtchenko <ayourtch@gmail.com>

ACL based forwarding

A poor man's flow switching or policy based rounting.

An ACL is used to match packets and is associated with a [set of] forwarding paths
that determine how to forward matched packets - collectively this association is a
Policies are then 'attached', in a priority order, to an interface when thaey are
encountered as an input feature. If a packet matches no policies it is forwarded
normally in the IP FIB.

This commit is used to test the "ACL-as-a-service" functionality,
which currently compiles, and the existing traffic ACL tests pass in both hash and linear modes.

Change-Id: I0b274ec9f2e645352fa898b43eb54c457e195964
Signed-off-by: Neale Ranns <nranns@cisco.com>
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
Signed-off-by: Ole Troan <ot@cisco.com>