History log of /vpp/src/plugins/flowprobe/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
b5a575b0 01-Nov-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

docs: clean up make docs job

Type: docs

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

3013e698 09-Dec-2019 Ole Troan <ot@cisco.com>

flowprobe: use explicit types in api

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

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

6b0dd550 03-Nov-2019 Paul Vinciguerra <pvinci@vinciconsulting.com>

build: add yaml file linting to make checkstyle

Type: feature

fts and trex rely on yaml config files. Verify
that they are valid, so comitters can catch
errors early.

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

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

2f71a888 10-Oct-2019 Jakub Grajciar <jgrajcia@cisco.com>

ip: ipfix-export API update

Use consistent API types.

Type: fix

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

b0d83f18 21-Oct-2019 Ole Troan <ot@cisco.com>

flowprobe: tests support python3

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

2a1ca787 18-Sep-2019 Ole Troan <ot@cisco.com>

api: split api generated files

Split generation of API message enum and the typedefs into
separate files, so that the type file can be included from

Generate a C file for VPP that contains the API registration,
this was previously done via X macros by the C pre-

This allows deleting lots of skeleton/copy paste code
for each feature.

used as Guinea pigs.

Generate a C Test file for VAT, that does the same for VAT plugins.
Also add support for a per-message CLI option, that is currently
limited to VAT help text. option vat_help = "<help text>";

Type: refactor
Change-Id: I245e3104bb76f7e1fb69a59ab20cc7c8dfcdd460
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>

21a43846 09-Jul-2019 Dave Barach <dave@barachs.net>

vat: unload unused vat plugins

If the corresponding vpp plugin is absent, return a non-zero
clib_error_t * from vat_plugin_register ("xxx plugin not loaded"). The
vat plugin calls dlclose on the vat plugin, and it disappears.

Depending on the plugin configuration, this can reduce the vpp virtual
size by several gigabytes.

Added a VAT_PLUGIN(<plugin-name>) macro to vat_helper_macros, clean up
boilerplate vat_plugin_register() implementations. Fixed a number of
non-standard vat_plugin_register methods.

Type: refactor

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

49ee6844 30-Apr-2019 Benoît Ganne <bganne@cisco.com>

build: add -Wall and -fno-common, fix reported issues

Type: refactor
Change-Id: I8489ccd54411c2aa9355439c5641dc31012c64a2
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Signed-off-by: Damjan Marion <damarion@cisco.com>

6a3064fd 14-May-2019 Ole Troan <ot@cisco.com>

tools: FEATURE.yaml meta-data infrastructure

Add tooling for feature metadata configuration files.
The main tool is in src/scripts/fts.py

make checkfeaturelist to validate against schema.
make featurelist to dump all feature lists to stdout.

Example feature definition:

name: IP in IP tunnelling
maintainer: Ole Troan <ot@cisco.com>
- IPv4/IPv6 over IPv4/IPv6 encapsulation:
- Fragmentation and Reassembly
- Configurable MTU
- Inner to outer Traffic Class / TOS copy
- Configurable Traffic Class / TOS
- ICMPv4 / ICMPv6 proxying
- 6RD (RFC5969):
- Border Relay

description: "Implements IP{v4,v6} over IP{v4,v6} tunnelling as
described in RFC2473. This module also implement the border relay of
6RD (RFC5969)."

state: production
- Tunnel PMTUD
- Tracking of FIB state for tunnel state
- IPv6 extension headers (Tunnel encapsulation limit option)

JSON schema is embedded in fts.py

Example markdown: https://github.com/otroan/scratch/blob/master/features.md

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

6434430f 19-Jan-2019 Damjan Marion <damarion@cisco.com>

buffers: don't init metadata, as it is already initialized

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

d9818dd6 14-Dec-2018 David Johnson <davijoh3@cisco.com>

Fixes for buliding for 32bit targets:
* u32/u64/uword mismatches
* pointer-to-int fixes
* printf formatting issues
* issues with incorrect "ULL" and related suffixes
* structure alignment and padding issues

Change-Id: I70b989007758755fe8211c074f651150680f60b4
Signed-off-by: David Johnson <davijoh3@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>

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>

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>

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

cmake: handle api_test_plugins in add_vpp_plugin macro

Change-Id: I76a1711af0a920cce66e6dfb07d019ba505d55b7
Signed-off-by: Damjan Marion <damarion@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>

2be45813 13-May-2018 Dave Barach <dave@barachs.net>

Improve ipfix template packet rewrite construction

Instead of repeatedly cutting, pasting, and hacking to create a new
callback, use vnet_flow_rewrite_generic_callback(). Add three
arguments to the flow rewrite callback:

(in) pointer to an array of report elements,
(in) length of array,
(out) pointer to the stream index

Change existing code prototypes. Code owners encouraged to evaluate
whether they can use the generic callback or not, at leisure.

/* ipfix field definitions for a particular report */
typedef struct
u32 info_element;
u32 size;
} ipfix_report_element_t;

Best generated like so:

_(sourceIPv4Address, 4) \
_(destinationIPv4Address, 4) \
_(sourceTransportPort, 2) \
_(destinationTransportPort, 2) \
_(protocolIdentifier, 1) \
_(flowStartMicroseconds, 8) \
_(flowEndMicroseconds, 8)

static ipfix_report_element_t simple_report_elements[] = {

/* Set up the ipfix report */
memset (&a, 0, sizeof (a));
a.is_add = 1 /* to enable the report */ ;
a.domain_id = 1 /* pick a domain ID */ ;
a.src_port = UDP_DST_PORT_ipfix /* src port for reports */ ;
a.rewrite_callback = vnet_flow_rewrite_generic_callback;
a.report_elements = simple_report_elements;
a.n_report_elements = ARRAY_LEN (simple_report_elements);
a.stream_indexp = &jim->stream_index;
a.flow_data_callback = simple_flow_data_callback;

/* Create the report */
rv = vnet_flow_report_add_del (frm, &a, &template_id);
if (rv)
return rv;

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

a9855ef8 01-May-2018 Ole Troan <ot@cisco.com>

Flow: Rename IPFIX exporter.

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

dac03527 01-Feb-2018 Damjan Marion <damarion@cisco.com>

Refactor vlib_buffer flags

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

9d420871 12-Oct-2017 Ole Troan <ot@cisco.com>

VPPAPIGEN: vppapigen replacement in Python PLY.

This is a version of the VPP API generator in Python PLY. It supports
the existing language, and has a plugin architecture for generators.
Currently C and JSON are supported.

- vl_api_version to option version = "major.minor.patch"
- enum support
- Added error checking and reporting
- import support (removed the C pre-processor)
- services (tying request/reply together)

option version = "1.0.0";

enum colours {
BLUE = 50,
define foo {
vl_api_colours_t colours;

service {
rpc foo returns foo_reply;
rpc foo_dump returns stream foo_details;
rpc want_stats returns want_stats_reply
events ip4_counters, ip6_counters;

Future planned features:
- unions
- bool, text
- array support (including length)
- proto3 output plugin
- Refactor C/C++ generator as a plugin
- Refactor Java generator as a plugin

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

0d056e5e 28-Sep-2017 Dave Barach <dave@barachs.net>

vppapigen: support per-file (major,minor,patch) version stamps

Add one of these statements to foo.api:

vl_api_version 1.2.3

to generate a version tuple stanza in foo.api.h:

/****** Version tuple *****/

vl_api_version_tuple(foo, 1, 2, 3)

Change-Id: Ic514439e4677999daa8463a94f948f76b132ff15
Signed-off-by: Dave Barach <dave@barachs.net>
Signed-off-by: Ole Troan <ot@cisco.com>

d3c008d1 02-Oct-2017 Christophe Fontaine <christophe.fontaine@enea.com>

[aarch64] Fixes CLI crashes on dpaa2 platform.

- always use 'va_args' as pointer in all format_* functions
- u32 for all 'indent' params as it's declaration was inconsistent

Change-Id: Ic5799309a6b104c9b50fec309cba789c8da99e79
Signed-off-by: Christophe Fontaine <christophe.fontaine@enea.com>

59b2565c 10-Sep-2017 Dave Barach <dave@barachs.net>

Repair vlib API socket server

- Teach vpp_api_test to send/receive API messages over sockets
- Add memfd-based shared memory
- Add api messages to create memfd-based shared memory segments
- vpp_api_test supports both socket and shared memory segment connections
- vpp_api_test pivot from socket to shared memory API messaging
- add socket client support to libvlibclient.so
- dead client reaper sends ping messages, container-friendly
- dead client reaper falls back to kill (<pid>, 0) live checking
if e.g. a python app goes silent for tens of seconds
- handle ping messages in python client support code
- teach show api ring about pairwise shared-memory segments
- fix ip probing of already resolved destinations (VPP-998)

We'll need this work to implement proper host-stack client isolation

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

50b60ebc 09-Aug-2017 Pierre Pfister <ppfister@cisco.com>

Flowprobe: Fix flow start time and hash computation

Upon hash collision, the flow start time was not reset.
The hash computation techniques (crc32 or xxhash) also both
had bugs which are now fixed.

Change-Id: I94d72997f34018d1699324264f7dded2a5cbd776
Signed-off-by: Pierre Pfister <ppfister@cisco.com>

0f09b777 18-Jun-2017 Andrew Li <zhaoxili@cisco.com>

flowprobe: Fixed assert error with less than 1 second passive timer

When passive timer has less than 1 second left, it'll be forcifully
changed to 0 when converting from f64 to u64. As a result the
assertion will fail at the beginning of the passive timer start
fuction. This commit fixed this bug by adding a check of the delta.

Change-Id: I899b6e0ab4967dcecc821daf7e812dbbc90969ce
Signed-off-by: Andrew Li <zhaoxili@cisco.com>

ed92925f 13-Jun-2017 Ole Troan <ot@cisco.com>

FLOWPROBE: Add flowstartns, flowendns and tcpcontrolbits

- fixed problem with tcp_flag
- changed flowtimestamp into NTP format
Change-Id: I4ef05d6c69c5c078a0c80d59c5ccb0c85b924ba6
Signed-off-by: Ole Troan <ot@cisco.com>

b4bd28a4 31-May-2017 Christophe Fontaine <christophe.fontaine@enea.com>

Remove calls to crc_u32 and add clib_crc32c for armv8+crc

crc_u32 was not defined for non x86_64 with SSE4.2 processors.

Calls to "crc_u32" are removed and replaced by either a call to
clib_crc32c or a call to clib_xxhash, as the result is not used
as a check value but as a hash.

Change-Id: I3af4d68e2e5ebd0c9b0a6090f848d043cb0f20a2
Signed-off-by: Christophe Fontaine <christophe.fontaine@enea.com>

5c749734 13-Mar-2017 Ole Troan <ot@cisco.com>

Flowprobe: Stateful flows and IPv6, L4 recording

Change-Id: I67839281623721bf42f0a918a53356143d9dc78a
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>