Commit Graph

395 Commits

Author SHA1 Message Date
66b48a9c61 VOM: IGMP only supports IPv4
Change-Id: Ie0a8898fa2d8ab71522686fb83fb1de959ee3098
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-12-17 16:30:50 +00:00
be420e59e9 libmemif: fix possible segfault on memif_get_details
insufficient buflen does not mean immediate return but
fallthrough by design so assigning values to these
array elements should just be skipped in that case.

Change-Id: Iaa9718db073108e44a9b05e1c8ffb0725147ff1f
Signed-off-by: Koichiro Den <den@klaipeden.com>
2018-12-17 10:52:34 +00:00
8f554b793c Added CMake building system for libmemif
Added Cpack support for building libmemif DEB/RPM packages
Fixed compilation errors in libmemif test and examples

Change-Id: I59a237a4ca8eb08840857d5b0e666f3a8d74411d
Signed-off-by: msardara <msardara+fdio@cisco.com>
2018-12-17 09:25:18 +00:00
7e70ff52c1 VOM: fixes for stats
Change-Id: I62582123361e091e79bbcc6d71794c6f76216b25
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-12-16 00:59:53 +00:00
413f4a5b21 API: Use string type instead of u8.
The new string type is modelled after string in proto3.
It is always variable length.

Change-Id: I64884067e28a80072c8dac31b7c7c82d6e306051
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
2018-12-13 12:11:50 +00:00
51edc3ab01 vom: Add support for new stats
This patch deprecates old stats and adds support for
new stats.

This implements the PULL design where client will enable
stats on objects (i.e. interfaces, etc), register a call
back function which will run once stats will be ready for
enabled object and call HW::read_stats() periodically to
read stats for enabled objects from VPP.

Change-Id: I32525a417427be87408d01f8bc93a731602ff690
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-12-13 07:46:02 +00:00
cf3ecb1a42 VOM: vxlan-tunnel takes egress interface for multicast
Change-Id: I23b44d883fbd7919bf55b96b180f97837fd6dae9
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-12-12 12:05:49 +00:00
193c47d900 VOM: vxlan-gbp
Change-Id: I5f4464435f1346207f2f9b497369795eb82b58b6
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-12-10 17:50:09 +00:00
f3b7a5e47a vpp_if_stats: Fixing a bug in getting vpp interfaces indexes
Change-Id: I6290945a94b4f7878e9af94cc7daec455327482e
Signed-off-by: Koren Lev <korenlev@gmail.com>
2018-12-07 10:42:00 +00:00
920fd77e9c vom: Fix the api type definition
Change-Id: I1e5f5a0d60745a42e6efaab3b6eb49b6b0e74e36
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-12-07 09:42:34 +00:00
8c8acc0278 API: Change ip4_address and ip6_address to use type alias.
Change-Id: Id8669bbadd1d6b2054865a310a654e9b38d1667d
Signed-off-by: Ole Troan <ot@cisco.com>
2018-12-06 14:05:04 +00:00
1f0dd7a066 Update japi to support type aliases
Change-Id: I6d6068d641d4c91e5c5b52eefb898affc5c0d2c0
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
2018-12-06 14:04:44 +00:00
7e9affb696 VOM: interface event struct
Change-Id: If133829ba4db2da1c9c20bfbbdfc6df6276efa10
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-12-05 14:30:02 +00:00
7fff3d2054 Metadata / opaque formatting belongs in vpp
VPP graph dispatch trace record description:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Major Version | Minor Version | NStrings      | ProtoHint     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Buffer index (big endian)                                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   + VPP graph node name ...     ...               | NULL octet    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Buffer Metadata ... ...                       | NULL octet    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Buffer Opaque ... ...                         | NULL octet    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Buffer Opaque 2 ... ...                       | NULL octet    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | VPP ASCII packet trace (if NStrings > 4)      | NULL octet    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Packet data (up to 16K)                                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Graph dispatch records comprise a version stamp, an indication of how
many NULL-terminated strings will follow the record header, and a
protocol hint.

The buffer index allows downstream consumers of these data to easily
filter/track single packets as they traverse the forwarding
graph. FWIW, the 32-bit buffer index is stored in big endian format.

As of this writing, major version = 1, minor version = 0. Nstrings
will be either 4 or 5.

Here is the current set of protocol hints:

typedef enum
  {
    VLIB_NODE_PROTO_HINT_NONE = 0,
    VLIB_NODE_PROTO_HINT_ETHERNET,
    VLIB_NODE_PROTO_HINT_IP4,
    VLIB_NODE_PROTO_HINT_IP6,
    VLIB_NODE_PROTO_HINT_TCP,
    VLIB_NODE_PROTO_HINT_UDP,
    VLIB_NODE_N_PROTO_HINTS,
  } vlib_node_proto_hint_t;

Example: VLIB_NODE_PROTO_HINT_IP6 means that the first octet of packet
data SHOULD be 0x60, and should begin an ipv6 packet header.

Change-Id: Idf310bad80cc0e4207394c80f18db5f77c378741
Signed-off-by: Dave Barach <dave@barachs.net>
2018-11-30 20:18:54 +00:00
c9aa7db825 VOM: missing GBP symbol
Change-Id: I6cbed0bce7c78970d5a22ac823d0380d14b73dbc
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-11-29 06:39:08 -08:00
8e1cc46b2b VOM: deprecate TAP add ip-punt redirect dump
Change-Id: I675e04d9f8bb2a18293cf6dd01581a9dc62882fe
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-11-29 13:44:12 +00:00
b6a4795397 GBP: l3-out subnets
Change-Id: Id4a20066fc5be716c61a497dfcb4d00dc1dbb28d
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-11-29 12:36:30 +00:00
609e1210c6 VPP-1507: Added binary api to dump configured ip_punt_redirect
Change-Id: I790f7785e183cc9aaffd5b593617c4e12a32e20d
Signed-off-by: Pavel Kotucek <pavel.kotucek@pantheon.tech>
2018-11-29 08:49:17 +00:00
53fffa1db7 API: Add support for type aliases
Previously all types are compound. This adds support for aliases,
so one can do things like:

typedef u32 interface_index;

or
typedef u8 ip4_address[4];

Change-Id: I0455cad0123fc88acb491d2a3ea2725426bdb246
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-11-29 07:39:22 +00:00
f970d2f8c6 Minor tweaks
Significant refit coming soon.

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: If7d196e84354c5088706e2ac81e2add42597a550
2018-11-26 18:36:14 -05:00
c2b4dc5981 Use a dissector table instead of strcmp
... to map vpp node names to dissector handles.

Wireshark has an easy-to-use string to dissector function handle
hashing scheme, so use it. Thanks to Guy Harris for writing up the
incantation.

Change-Id: I6c1eb609332b0afe87154ba447a98f783e13ca68
Signed-off-by: Dave Barach <dave@barachs.net>
2018-11-25 16:47:45 +00:00
9b0ce0215b Fix permission for vpp_papi
The permission for the top-level vpp_papi dir under
/usr/lib/python2.7/site-packages is set to 644 which means that
non-root users cannot import vpp_papi. As a result, devstack setup
with VPP/networking-vpp fails since it is run as non-root user.

Change-Id: Id85b468b2dcc92efb3a64c51ffb23ef6d596e4ad
Signed-off-by: Onong Tayeng <otayeng@cisco.com>
2018-11-23 11:43:46 +00:00
19ca78fbd7 stats: golang vpp_if_stats_client
see README for details

Change-Id: Ida603ccaee21dabc903512699b5b355cebb70320
Signed-off-by: Koren Lev <korenlev@gmail.com>
2018-11-22 06:31:30 +00:00
1dda386e67 Add wireshark dissector to extras
See extras/wireshark/readme.md for a quick writeup.

Change-Id: Id48d198aa2f1d643d0587947fe9c3fd62b613a9f
Signed-off-by: Dave Barach <dbarach@cisco.com>
2018-11-20 20:16:25 -05:00
7c37a67fda Fix inspection for 18.10, requirements
Change-Id: I1ecc278f43afff184a26f6f18fe22a49d8916eb1
Signed-off-by: jdenisco <jdenisco@cisco.com>
2018-11-20 17:24:29 +00:00
33b81da54a vom: Add support for redirect contracts in gbp
Change-Id: I18543785166811ddbd628d19065d3dfad3f948e9
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-11-20 11:05:44 +00:00
13a08cc098 GBP: redirect contracts
Change-Id: I463b153de93cfec29a9c15e8e84e41f6003d4c5f
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-11-15 17:22:55 +00:00
feb7092544 VPP-1477: Replace DatatypeConverter.printHexBinary with bytesToHex
As of Java 11 javax.xml.bind.DatatypeConverter is no longer part of
standard Java distribution, therefore it is replaced by equivalent method.


Change-Id: I51726d0d0d02782bd3bb1dbdc54df5bd63bd8f15
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
2018-11-14 17:18:57 +00:00
24010fbaa0 docs and Config utility, package cloud support
Change-Id: I61303242b73e509df42dedba54f2ee5906a7e526
Signed-off-by: jdenisco <jdenisco@cisco.com>
2018-11-13 23:14:28 +00:00
24195081f1 japi: Move Java API binding to cmake
Change-Id: I264d547a06e3636d021a74cd26efb8137f629cbc
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
2018-11-13 16:13:24 +00:00
232b2d5580 VOM: GBP missing header file exports
Change-Id: I24a894bde170669a05f1a7d58afc70524538f060
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-11-07 15:54:40 +00:00
93cc3ee3b3 GBP Endpoint Learning
Learning GBP endpoints over vxlan-gbp tunnels

Change-Id: I1db9fda5a16802d9ad8b4efd4e475614f3b21502
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-11-07 12:00:10 +00:00
b987509806 Update the vpp config utility
Change-Id: If278d7c6dda9e29736f5aa6f1cb04b49da378509
Signed-off-by: jdenisco <jdenisco@cisco.com>
2018-11-07 01:13:16 +00:00
4d5b917b1a BD ARP entry use common API types
Change-Id: I29f20dbaf2c2d735faff297cee552ed648f6f61b
Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-11-06 21:23:18 +00:00
12fe878ac8 vom: Add igmp 'host' support in vom
Change-Id: Ibdb19d21b8ec7fb340a057e32df207b7723dba9b
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-11-01 09:24:15 +00:00
8284244d48 EMACS-LISP-ONLY: fix names of xxx_main_t pointers
main_t pointer: <first-letter-of-plugin-name> + "mp"
test_main_t pointer: <first-letter-of-plugin-name> + "mp"

AKA: (setq main-p (concat (substring plugin-name 0 1) "mp")) etc.

Change-Id: Ie1b38fb62485183bbe00f649683492aa82a21376
Signed-off-by: Dave Barach <dave@barachs.net>
2018-10-31 09:55:09 -04:00
6070768ce0 EMACS-LISP-ONLY: fix boilerplate compile error
Change-Id: I81defe6465219e23a44608fcf0570a058ab3f59e
Signed-off-by: Dave Barach <dave@barachs.net>
2018-10-31 09:23:58 -04:00
539e637cce extras/scripts: update vfctl script
Change-Id: I49cb5863237e4f9d2ac94879577d5d011e3bfe97
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-10-26 19:30:18 +00:00
2f6d7bb93c 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/)
Additionally
- 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>
2018-10-19 07:10:47 +00:00
5fcca2a124 Update version (18.10) for API changes script
Change-Id: I41d22bfc87849e923628de08f922f7a541579fe1
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2018-10-18 07:38:13 +00:00
5958769b2c LISP ONLY: maintain the make-plugin.sh script
Make sure it's invoked in .../src/plugins

Change-Id: I85a05dbd863f3254c017962f635d505482548979
Signed-off-by: Dave Barach <dave@barachs.net>
2018-10-03 17:42:20 -04:00
3f2e775e45 LISP ONLY: maintain the emacs lisp plugin generator
Add a generator for CMakeLists.txt, remove autotools input generator.

Add missing extern declarations for node registrations in <plugin-name>.h.

Remove extern from the <plugin-name>_main_t declaration in
<plugin-name>.c, so it won't come up undefined at runtime.

Reposition forward node declaration relative to CLIB_MARCH_VARIANT
conditional, to avoid multiple definition / "<plugin-name>_node
changed size from X to Y" warnings.

Change-Id: I8cc00bca5c40fa3ea00549411a3a9027f97a4826
Signed-off-by: Dave Barach <dave@barachs.net>
2018-10-03 16:10:28 -04:00
76e2cccf18 jvppgen: update headers
headers of generated files should correctly tell
about where it cames from to not confuse readers.

Change-Id: If667fa4aab188978156982adf3fa13474bd93e9e
Signed-off-by: Bernhard M. Wiedemann <bwiedemann@suse.de>
2018-10-03 01:16:19 +02:00
5507192339 Fix JVPP enum _host_to_net_ translation (VPP-1438)
- use ordinal value of enumeration instead of accessing
  its value directly.


Change-Id: I6327a8f7668852846907a92c2713de9ff90c1c75
Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
2018-10-02 12:39:51 +00:00
904a850899 Fix the path error inside vcl socket_test.sh
Change-Id: I5bcfbd436839e7a6dd82dc57cdb3b7fb6200a69c
Signed-off-by: Yalei Wang <william.wangyalei@huawei.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-10-01 13:48:41 +00:00
762d83c198 vom: Fix the l2 port type in bridge domain
Change-Id: I8aba11142daeacce892ec529c2229ec54ee427e2
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-09-29 17:06:30 +00:00
09cce66888 Revert "japi: Move Java API binding to cmake"
components:  Development
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find JNI (missing: JAVA_AWT_INCLUDE_PATH)
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.10/Modules/FindJNI.cmake:310 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:37 (find_package)
-- Configuring incomplete, errors occurred!
See also "/scratch/vpp-tmp/build-root/build-vpp-native/japi/CMakeFiles/CMakeOutput.log".
See also "/scratch/vpp-tmp/build-root/build-vpp-native/japi/CMakeFiles/CMakeError.log".
Makefile:640: recipe for target 'japi-configure' failed
make[2]: *** [japi-configure] Error 1
make[2]: Leaving directory '/scratch/vpp-tmp/build-root'


This reverts commit a33db25284.

Change-Id: I8a818ce70a8379656c1134432e22db418a4690fe
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-09-27 20:00:43 +00:00
412e7b64f9 libmemif: external region bugfix
Change-Id: I7dbece80dda917ff78f53f8f4074132895aed316
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2018-09-27 18:32:22 +00:00
e23edac38e vom: Add ip punt redirect
Change-Id: I5c7b925b22b53f18b0c45374883a6a4bff580c75
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-09-27 07:17:36 +00:00
a33db25284 japi: Move Java API binding to cmake
Change-Id: Ia7ddd9f9e2e2d9c133967593c3e187fe42501eac
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-09-26 15:50:15 +00:00