Vladimir Lavor [Thu, 13 May 2021 09:15:48 +0000 (11:15 +0200)]
statsclient: added symlinks
Symlink support based on https://gerrit.fd.io/r/c/vpp/+/31636
Added new stat types `CounterStat` and `CombinedCounterStat` which
represent simple/combined value of a single item (interface, node)
as a array of values by workers.
Example:
/if/names NameVector [local0 tap0 tap1]
/if/ip6 SimpleCounterVector [[0 9 0] [0 25 3] [0 0 60] [0 0 0]]
/interfaces/tap0/ip6 SimpleCounterVector [[9] [25] [0] [0]]
/interfaces/tap1/ip6 SimpleCounterVector [[0] [3] [60] [0]]
Field `Symlink` added to StatEntry to mark symlink stats.
For stats v2 only
Change-Id: Iadc825f3c42b05bfc9a91462dba8a0b0068c7cd6
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Wed, 17 Mar 2021 11:27:10 +0000 (12:27 +0100)]
statsclient: allow index as pattern
* ListStats() returns stats identifiers containing the stat name and index
* New method PrepareDirOnIndex(indexes...). Instead of the name filter
it does not browse through all available indexes
* Stats example shows how to get the last epoch value (added "e" or "epoch" command)
Change-Id: Ibb15090fb0dfdb7f9b0ecf8ac07a5eb9a9ace8f8
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Thu, 11 Mar 2021 09:13:17 +0000 (10:13 +0100)]
added api message options
In case the API message contains option of type deprecated
or in-progress, the information is displayed in the generated
code in a form of additional comment:
// InProgress: <info>
// Deprecated: <info>
In case the <info> is not provided, a generic message is shown.
Possible future use to automatically search whether such
messages are in use.
Change-Id: Icf87cc9a2fe6bf31f7555320255c9f0736add6e1
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Thu, 11 Mar 2021 14:27:02 +0000 (15:27 +0100)]
Recognize stat_dir_type_empty
Do not to handle empty stats directory as unknown.
Empty dir's value is always treated as zero.
Change-Id: I40a3829675c5b7c9da80ceaa7e2d0a87fe02dc7c
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Thu, 15 Apr 2021 12:31:26 +0000 (14:31 +0200)]
fix INFO.yaml
Change-Id: Id18086b2d1df911cdc5d0092e48fd6034ddc414e
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Mon, 22 Mar 2021 12:34:37 +0000 (13:34 +0100)]
Add statsclient options and fix wait for socket
Change-Id: Ib5674fee5862a2b16f4b0044b6f6af533a7b6b33
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Alexander Demidenko [Fri, 19 Mar 2021 05:11:21 +0000 (12:11 +0700)]
Fix panic during disconnection
Sometimes there are situations when the callback is called during the processing of the disconnect.
To avoid problems with races (for example, when using race-detector), use atomic pointers.
Signed-off-by: Alexander Demidenko <hurd@yandex-team.ru>
Change-Id: Ic825872ac620d68a191bc88889a096b15ea57464
Vladimir Lavor [Tue, 2 Mar 2021 10:45:37 +0000 (11:45 +0100)]
Provide error counters per worker for statsclient
Instead of a single value, the ErrorCounter now contains
an array representing couter values per workers.
Change-Id: I2b869e5b228bcb3e155b1fef08a4cd00e7d2e16a
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Thu, 18 Feb 2021 15:05:30 +0000 (16:05 +0100)]
Added asynchronous connection for stats socket
The stats socket now allows an option to connect asynchronously in
the same manner as the api socket connection. New method
AsyncConnectStats returns a channel where notificaitons
of type ConnectionEvent will be sent.
Fixed the stats reconnect procedure which sometimes failed to re-eneable
the connection.
Change-Id: I0bdb19f0d57e3a1ea259b8b1ba0a5e5fa49a09db
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Mon, 1 Feb 2021 13:37:26 +0000 (14:37 +0100)]
binapigen: added enumflags type
Change-Id: I2f46504bd05862e415dab518fad349d08aedf919
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Tue, 22 Dec 2020 14:35:31 +0000 (15:35 +0100)]
Rework test for binary API union sizes
The test now generates various unions from union.api.json
and tests correct sizes of generated types.
Change-Id: Ifaf18a8ce650e71a8ca8b2d5cfb9d7eed2d757c6
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Ondrej Fabry [Mon, 21 Dec 2020 16:38:00 +0000 (17:38 +0100)]
Remove socket warnings from client adapters
Change-Id: I5e72df39c0e4ba4f0a70d561d7f9b220b4e72a4c
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Vladimir Lavor [Mon, 14 Dec 2020 14:28:53 +0000 (15:28 +0100)]
Added INFO.yaml
Change-Id: Id63f1516678cddfef82570958be7e1871ead2c45
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Thu, 3 Dec 2020 13:40:09 +0000 (14:40 +0100)]
Decode message context using the message type only
In order to prevent potential future issues, the method
returning message based on its ID but ignoring its package
was optimized.
Change-Id: I12aa2b243f32f38cb3dbc7731613c7ed9fc66539
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Tue, 1 Dec 2020 12:57:29 +0000 (13:57 +0100)]
Fixed incorrect message error in the stream API
The message package is passed to the stream object and
used to evaluate correct reply message type
Change-Id: I2c9844d6447d024af1693205efd5721e2f89f22d
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Wed, 4 Nov 2020 12:51:00 +0000 (13:51 +0100)]
Update changelog
Change-Id: I08f5ba1fb5ec02717e5715447837ca3b75fa894d
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Thu, 29 Oct 2020 11:56:24 +0000 (12:56 +0100)]
Stats API: added GetMemory()
Retrieved numbers relate to the statseg heap.
Change-Id: I72750183db3524481918c71c993b39e65c28ddb6
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Ondrej Fabry [Fri, 23 Oct 2020 09:40:18 +0000 (11:40 +0200)]
Fix encoding for float64 and generate conversion for Timestamp
- fixes encoding/decoding of float64 - uses little endian (contrary to all other types)
- generates helper methods for vpe_types.Timestamp type
- adds usage code to simple-client and binapi-types examples
Change-Id: I2e83eee0629eb67964049406c50c7ee0a692ccaf
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Fri, 23 Oct 2020 09:41:55 +0000 (11:41 +0200)]
Fix panic for Retval fields with uint kinds
Change-Id: I5e588d48461a0cf551552a5068218a58920e52aa
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Vladimir Lavor [Mon, 12 Oct 2020 12:21:05 +0000 (14:21 +0200)]
Stream API options
* Stream API uses the same default values as the Channel API
* request size, reply size and reply timeout settable using
functional options
* Added stream client example to show the stream API usage
Change-Id: Id599134a7f520fc19f7d770ed5e3de74a7936829
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Tue, 13 Oct 2020 11:59:25 +0000 (13:59 +0200)]
Generate VPE HTTP handler
* This should fix GoVPP build
Change-Id: If53177253ad4a6616860aad50ce54e5944bbea6e
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Thu, 1 Oct 2020 14:03:28 +0000 (16:03 +0200)]
Updated multi-vpp example
* In addition to configuring multiple VPPs it now also shows
how to connect and read stats from several VPPs at once
* Added a brief readme
* More readable example log output
* May run in a loop
Change-Id: Ifa5d54e954557e7b6569826a48c526185ec751a3
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Ondrej Fabry [Fri, 2 Oct 2020 14:36:32 +0000 (16:36 +0200)]
Check retval value and convert to error in generated RPC client code
Change-Id: I816b4802cb5fc46239f6db0480fa4cf3645fe2f0
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Vladimir Lavor [Mon, 28 Sep 2020 12:09:35 +0000 (14:09 +0200)]
Updated changelog for v0.4.0
Change-Id: I3290bbc8cbdfb634533ceb4606e4708b1a386dce
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Tue, 22 Sep 2020 11:44:10 +0000 (13:44 +0200)]
Reload stats socket when VPP restarts
The current implementation loads the stats socket and maps it to the
memory. If VPP restarts, the socket file is recreated while the mapped
data remain unchanged, silently failing since it does not get any updates.
This change adds socket file monitoring which reconnects and remaps
the socket file in such a case.
Change-Id: I061f7400410f4dfe5de66ba7844c4ae1567bbcbe
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Wed, 16 Sep 2020 11:44:31 +0000 (13:44 +0200)]
binapigen: fix union size
This change fixes calculated byte size of the union
composed from another union(s).
Change-Id: I596a3c2a585cc42570b1d00dab3a5ad4993dabfa
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Fri, 4 Sep 2020 12:23:10 +0000 (14:23 +0200)]
Remove unnecessary allocation
Change-Id: If77b7b37ae736fdf21f4c337350905480e6fb011
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Ondrej Fabry [Fri, 4 Sep 2020 10:45:00 +0000 (12:45 +0200)]
Fix decoding messages of identical types in stream
Change-Id: Id6f6bc3de5b9ff7230108a4171810207c94f9a38
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Fri, 4 Sep 2020 07:50:37 +0000 (09:50 +0200)]
Increase default health check parameters
Change-Id: I0b5fbbd98fc1bb6fc9d86ed81cb1b3f9755fed67
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Fri, 4 Sep 2020 07:48:30 +0000 (09:48 +0200)]
Update VPP config warnings and change log level in proxy
Change-Id: I8f965a0758c4b7459f27a46c095dad232e331032
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Vladimir Lavor [Wed, 2 Sep 2020 13:08:22 +0000 (15:08 +0200)]
Stats APIv2
* Compatible with stats v2 API
* Compatibility with stats v1 was persisted
* 19.04 (legacy) dropped
Change-Id: I91a3ab0c007fed6d972eee01d7caf69af29305d1
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Nathan Skrzypczak [Fri, 21 Aug 2020 15:25:53 +0000 (17:25 +0200)]
Improve doc & fix import ordering
This also updates /binapi
and adds a new make command to generate api
files out of a local vpp repo clone
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Change-Id: Iff7965388a74ecd21af80f10b5a59d4ed8da6340
Sergey Elantsev [Sat, 22 Aug 2020 12:38:34 +0000 (15:38 +0300)]
fixed data race in mock vpp adapter
There was a race in reading VppAdapter.mode in SendMsg and
writing in MockReply/MockReplyHandler/MockReplyWithContext.
All these *Reply* methods hold VppAdapter.repliesLock, so
this fix uses this lock to safely read the value of a mode field.
Signed-off-by: Sergey Elantsev <elantsev.s@yandex.ru>
Change-Id: I6c8873b766df6ea866196a9b96a48ebd08689772
Ondrej Fabry [Fri, 28 Aug 2020 18:42:20 +0000 (20:42 +0200)]
fix(binapigen): Fix name conflict for union field constructors
PROBLEM
Issue discovered in flow_types.api on master (20.09-rc0), where
generator encountered inconsistent naming for union type Flow,
causing name conflicts with their constructors.
SOLUTION
Previous cases of union types (address, punt) both contain suffix
"Union", thus generator now adds "Union" suffix it is not defined.
This way we won't break previously generated code for users.
Change-Id: Iffadc167774d66d8416fe36485782bb68ca2a70d
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Vladimir Lavor [Wed, 19 Aug 2020 14:08:39 +0000 (16:08 +0200)]
Binapi generator: improved file input
In addition to the standard file name input (for example "vpe"),
binary API generator now again accepts full file path like
"/usr/share/vpp/api/core/vpe.api.json" as an input direcotry or
argument.
Change-Id: I591b5d26e7f101cdcc4af64d3bdabaab48b5b2ef
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Nathan Skrzypczak [Fri, 21 Aug 2020 15:30:05 +0000 (17:30 +0200)]
Expose version info control flags
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Change-Id: Ida098149bdf23dccafb7b1f2ac2bb83f21f918c9
Vladimir Lavor [Tue, 4 Aug 2020 10:37:25 +0000 (12:37 +0200)]
Update libmemif
Change-Id: I5db0460f375c9e34bc09170a310d52e1a619ed34
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Ondrej Fabry [Tue, 4 Aug 2020 13:24:02 +0000 (15:24 +0200)]
Add SetLogger for setting global logger
- list prerequisites in README
- avoid calling go list by hard-coding module path
Change-Id: Ib8af1934f55b7e112a8124a20f1f4d39ce651133
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Wed, 22 Jul 2020 02:40:55 +0000 (04:40 +0200)]
Fix binapigen decoding and minor improvements
- fixed allocating byte slices before copying decoded data
- simplified encoding functions
- several minor improvements
Change-Id: I6669424b89eb86333805cb1b57e4551169980cc2
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Vladimir Lavor [Fri, 17 Jul 2020 12:00:11 +0000 (14:00 +0200)]
Added VPP state 'NotResponding'
This change allows informing client about the current
VPP state in more detail.
* In case the VPP is overloaded but keeps its configuration,
client received 'NotResponding' event message
* If the VPP process dies (the socket is closed), the client
receives 'Disconnected' event message
Additional fix: event messages are discarded if the buffer is
full. This could cause GoVPP to hang after some time in case
the client was not receiveing events.
Change-Id: I94a4647f6643f1d97bf52e5d7996d70229b0577d
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Ondrej Fabry [Fri, 17 Jul 2020 08:36:28 +0000 (10:36 +0200)]
Improve binapi generator
- simplified Size/Marshal/Unmarshal methods
- replace struc in unions with custom marshal/unmarshal
- fix imports in generated files
- fix mock adapter
- generate rpc service using low-level stream API (dumps generate control ping or stream msg..)
- move examples/binapi to binapi and generate all API for latest release
- add binapigen.Plugin for developing custom generator plugins
- optionally generate HTTP handlers (REST API) for RPC services
- add govpp program for browsing VPP API
Change-Id: I092e9ed2b0c17972b3476463c3d4b14dd76ed42b
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Dave Barach [Fri, 10 Jul 2020 16:19:01 +0000 (12:19 -0400)]
socket adapter: don't bother sending sockclnt_delete messages
vpp cleans up socket clients when the socket closes. I verified that
sending a correctly-marshalled sockclnt_delete message results in
duplicate close complaints.
The marshalling code wasn't right - the (important) client_index field
is in a non-standard position - and there's no point in sending
a message we don't need to send.
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Ia32980b08a99cc878835f5db21f64de391759fa4
Vladimir Lavor [Fri, 10 Jul 2020 11:33:05 +0000 (13:33 +0200)]
Fix: generate (un)marshall for memory client messages
* use generated Marshall/Unmarshall for socket client connection
messages instead of the generic wrapper
Change-Id: Ie1049e080630dbc60085debc6875e17962e93a0e
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Vladimir Lavor [Thu, 9 Jul 2020 08:02:41 +0000 (10:02 +0200)]
Removed global binapi VPP adapter
* added example showing management of 2 VPP instances with different sockets
* updated changelog
Change-Id: I531eda8f055cc2a24ba2210217e70a8ad42a47c0
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Dave Barach [Tue, 7 Jul 2020 14:36:42 +0000 (10:36 -0400)]
Fix README.md quickstart section
README.md needs further cleanup
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Iee170f909b57548d53f8a5fa67cd387652ccac99
Vladimir Lavor [Wed, 1 Jul 2020 10:18:54 +0000 (12:18 +0200)]
Binary API generator improvements
* Many aliases removed, aliased types reference original types via import instead
* Added various helper methods for simpler conversion between go and vpp types
Change-Id: I7999ac8d524cece4da03e6447b13421659765095
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Ondrej Fabry [Thu, 25 Jun 2020 09:55:58 +0000 (11:55 +0200)]
Introduce Stream - experimental API for low-level access to VPP API
Change-Id: I2698e11b76ff55d9730b47d4fee990be93349516
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 23 Jun 2020 12:10:53 +0000 (14:10 +0200)]
Fix codec fallback and generate type imports
Change-Id: Idd76c7f19d952939caf153928ac60175845078ff
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Thu, 18 Jun 2020 06:22:13 +0000 (08:22 +0200)]
Refactored binapi generator with message encoding
Change-Id: I5a6abb68b9d058866f94818169300e5c2fc43895
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 16 Jun 2020 08:40:34 +0000 (10:40 +0200)]
Optimize socketclient adapter and add various code improvements
This commit includes:
Features
- optimized [socketclient](adapter/socketclient) adapter and add method to set client name
- added list of compatible messages to `CompatibilityError`
Fixes
- `MsgCodec` will recover panic occurring during a message decoding
- calling `Unsubscibe` will close the notification channel
Other
- improved log messages to provide more relevant info
Examples
- added more code samples of working with unions in [union example](examples/union-example)
- added profiling mode to [perf bench](examples/perf-bench) example
- improved [simple client](examples/simple-client) example to work properly even with multiple runs
Dependencies
- updated `github.com/sirupsen/logrus` dep to `v1.6.0`
- updated `github.com/lunixbochs/struc` dep to `v0.0.0-
20200521075829-
a4cb8d33dbbe`
Change-Id: I136a3968ccf9e93760d7ee2b9902fc7e6390a09d
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Mon, 18 May 2020 12:46:00 +0000 (14:46 +0200)]
Bump version to v0.3.5
Change-Id: I14aa5446ad218f06a06b9e40e0adde6ca81e4819
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Mon, 18 May 2020 09:36:44 +0000 (11:36 +0200)]
Fix stats data errors and panic for VPP 20.05
- fixes panic occurring when updating error counters
- fixes stat data length errors when updating stats
Change-Id: If2d4bcb7df084bf1999ba469f128b7a01aa6be5e
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Fri, 17 Apr 2020 12:29:26 +0000 (14:29 +0200)]
Format generated Go source code in-process
This commit:
- removes dependency on gofmt tool
- cleans up package imports
- re-generates binapi for VPP 20.01
Change-Id: Ie4347720f92a87eb278be66c9f9ed9719c7bbbc3
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Thu, 9 Apr 2020 12:36:30 +0000 (14:36 +0200)]
proxy: Unexport methods that do not satisfy rpc to remove warning
Change-Id: Icd4173edc55d83b1766f204184eb818b859e648e
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Fri, 20 Mar 2020 09:52:19 +0000 (10:52 +0100)]
Fix statsclient for VPP 20.05-rc0 (master)
- this change fixes panic that was occurring with recent VPP that was caused by incorrectly calculated vector length
- converting returned vector length from uint64 to uint32 results in correct length value
Change-Id: I76a4b9d147c3df3bea9d3e5ef5853e2809dc42e8
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Wed, 18 Mar 2020 09:18:03 +0000 (10:18 +0100)]
Fix import path in examples/binapi
Change-Id: I6af1ae2778b73f37be09c64a2948417e576f02ab
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Wed, 18 Mar 2020 07:52:42 +0000 (08:52 +0100)]
Release 0.3.0
- regenerate examples/binapi for latest VPP from stable/2001
- add import-prefix flag to set custom prefix (fallbacks to using go list)
Change-Id: Ib09f134cf9662e348be2575448964de2b9e5c1ee
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 28 Jan 2020 17:03:58 +0000 (18:03 +0100)]
Support imported type aliases
Change-Id: I2e6ad9fb51e1cf55a52267720f2394e792946f7e
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Mon, 20 Jan 2020 12:54:36 +0000 (13:54 +0100)]
Update jsongo dep
Change-Id: I10dfbaa38de67835a84f5112d6b16bbe466c3bfe
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Mon, 20 Jan 2020 11:38:58 +0000 (12:38 +0100)]
Fix parsing default meta parameter
Change-Id: Ibfc1f97e299256809978cb84f1685aa6729e898c
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Fri, 15 Nov 2019 11:33:28 +0000 (12:33 +0100)]
Improve compatibility checking
- added CompatibilityError to api package to represent error with
list of incompatible messages
- added UnknownMsgError to adapter package to represent error for
unknown message
- added list of registered message types
Change-Id: I2623b45135521d52612ba91e4605fc064a7fc76e
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Mon, 4 Nov 2019 23:16:25 +0000 (00:16 +0100)]
Begin development of next release 0.3.0
- update info in package ./version
- update to Go 1.13
- regenerate ./examples/binapi for latest VPP: 19.08.1-release
- clean code in proxy
- refactor Makefile
Change-Id: Ibf5c2682c2f4b3cbbea4aa1e35d3f02175d40a9b
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Mon, 4 Nov 2019 10:42:13 +0000 (11:42 +0100)]
Update changelog for release 0.2.0
Change-Id: Ifed742e75a48d065987d945c8667af2bdedb876a
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Matus Mrekaj [Tue, 22 Oct 2019 13:05:39 +0000 (15:05 +0200)]
fix data races in proxy server
Signed-off-by: Matus Mrekaj <matus.mrekaj@pantheon.tech>
Change-Id: I932d560548ee816e28683243a7318a2a7fbbb24a
Matus Mrekaj [Wed, 16 Oct 2019 13:13:44 +0000 (15:13 +0200)]
add missing implementation for proxy
Signed-off-by: Matus Mrekaj <matus.mrekaj@pantheon.tech>
Change-Id: I1ab9efb9e575e7993501e7774628cbb60d16ec43
Ondrej Fabry [Tue, 15 Oct 2019 09:18:32 +0000 (11:18 +0200)]
fix: Add guards for converting Stat interface (might be nil)
Change-Id: I54cd9ca6fb6607a70031ba5e6318a9ea58db7e6c
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 8 Oct 2019 12:49:16 +0000 (14:49 +0200)]
Introduce proxy for VPP
- proxy server defines RPC service for proxying binapi/stats to VPP
- use cmd/vpp-proxy for proxy server/client
Change-Id: I6e698e166ecf6db7109ae5adf8a93f308d3f3f2a
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 17 Sep 2019 10:41:47 +0000 (12:41 +0200)]
Optimizations for statsclient
- this dramatically improves performance for stats data collection
- memory allocation is now done only when stat dirs change
- updating prepared stat dir does not need to allocate memory
- created integration test for testing stats client
- added NumWorkerThreads and VectorRatePerWorker to SystemStats
- added ReduceSimpleCounterStatIndex, ReduceCombinedCounterStatIndex for
aggregating specific index
Change-Id: I702731a69024ab5dd0832bb5cfe2773a987359e5
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ravi Raju [Tue, 10 Sep 2019 01:23:56 +0000 (18:23 -0700)]
add MockClearReplyHandlers() api for mock vpp adapter
Change-Id: I12285c77c9cf09a24c957a777b26ae54f082f317
Signed-off-by: Ravi Raju <ravir@employees.org>
Ondrej Fabry [Mon, 9 Sep 2019 07:56:59 +0000 (09:56 +0200)]
Fix compatibility with latest master (20.01-rc0)
- fixed generator for new string types
- update simple client example
- regenerate examples binapi for VPP 19.08
Change-Id: If4fe78c130d95641f35f75cd0262b35b032acaf8
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Mon, 9 Sep 2019 04:16:18 +0000 (06:16 +0200)]
Use new default binapi socket with fallback to legacy
Change-Id: I1a6839e3bbb8d599fcbdbc2b1aff7c81f7d263c9
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Rinat Baygildin [Thu, 8 Aug 2019 07:47:22 +0000 (10:47 +0300)]
Add tag beyond18.10 to prevent build stat_client
There is a problem to use upstream govpp with vpp 18.04 because of
lack stat_client.h file. Build tag allows to exclude stat client
from old vpp versions.
Signed-off-by: Rinat Baygildin <bayrinat@yandex-team.ru>
Change-Id: Ic39029b0c4577f88ff8796dfd14e6a2696f85f4c
Ondrej Fabry [Fri, 2 Aug 2019 13:07:53 +0000 (15:07 +0200)]
Migrate to modules, refactor Makefile and use Travis for CI
- migrate to Go modules and remove vendor
- refactor Makefile
- add version package and store version
- split extras from the rest
- use travis for CI
Change-Id: I81b35220653b0f7c9a0fcdd4c527d691ec1e96c1
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Thu, 1 Aug 2019 04:19:33 +0000 (06:19 +0200)]
Fix unit tests
Change-Id: I49e0ec8420cf2563b77ec2b5a9cf9674286d5e5d
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 30 Jul 2019 14:19:35 +0000 (16:19 +0200)]
Use common logger in core package
Change-Id: If9da8381212273f8f2655d7b0a3077b5ba32921f
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Fri, 19 Jul 2019 03:42:41 +0000 (05:42 +0200)]
Print info for users to stderr when socket files are missing
Change-Id: Ibdbfcb78b05cf80945a93ed424a7a2a03b6ea06d
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Wed, 10 Jul 2019 05:14:20 +0000 (07:14 +0200)]
Fix socketclient for VPP 19.08
- in VPP 19.08 the socket type has changed to STREAM and data has to
be writtento VPP with single flush, otherwise msg might get mixed
with next header and cause VPP to stop responding
- this also fixes WaitReady for socketclient and vppapiclient
Change-Id: I022724c0c09c9b92d4c695d1cf2be15994fff717
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Wed, 3 Jul 2019 15:00:28 +0000 (17:00 +0200)]
Add CHANGELOG and update README
Change-Id: I2d6f5eacae0cc71e659f904aa604ff0519daa79c
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Wed, 3 Jul 2019 11:44:09 +0000 (13:44 +0200)]
Fix error counters for VPP 19.04
Change-Id: I87251362668bbe9a31f52c1b5e9b3ab596f7b2f3
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 2 Jul 2019 09:56:56 +0000 (11:56 +0200)]
Fix duplicate types
- .api.json input files from VPP now sometimes contain duplicate objects
- parsing is skipped if type is already known
Change-Id: Ibf28f5baa68f6cfb40aeb75e1bde72241120ac23
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Mon, 1 Jul 2019 11:39:32 +0000 (13:39 +0200)]
Fix reading statsclient entries
- omit entries with empty/invalid names
- change log level to debug for invalid entries
- remove some excessive debug logs
- improve log message when falling back to old stat segment version
Change-Id: If9ceae9a42e586172bbec130452fba9dfbab2cd7
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Wed, 26 Jun 2019 14:28:20 +0000 (16:28 +0200)]
Improvements for binapi-generator and support VPP 19.04 in statsclient
- RPC service client implementation for dumps requests
now streams responses
- RPC service generation is now enabled by default
- examples now allow setting binapi socket address
- input dir flag for binapi-generator will recursively look
into dirs to support core/plugins in /usr/share/vpp/api
- minor improvements in debug logs
- add support for VPP 19.04 for statsclient
Change-Id: I0939ee3aa6e9f850d073fc5c87aff4ccc56b0d70
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Thu, 20 Jun 2019 16:52:30 +0000 (18:52 +0200)]
Add statsclient - pure Go implementation for stats API
Change-Id: Ia5bab652c6089378697459f477f9060dc7a53e90
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Wed, 12 Jun 2019 16:37:20 +0000 (18:37 +0200)]
Fix parsing API with removed CRC for types and unions
- method GetCrcString() was also removed from DataType interface
- fix generated comment for services
- fix permissions for created files and directories
Change-Id: If0b7a57e01f1128b5ba574fc5ee13b6a7c6aa6fd
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Thu, 6 Jun 2019 12:08:48 +0000 (14:08 +0200)]
Add various generator improvements
- generate service implementation for modules
- generate conversion maps and String() method for enums
- generate module name and version as constants
- rename Union_data field to XXX_UnionData for consistency
- generate constant GoVppAPIPackageIsVersionN for checking compatibility with API
- add example for using service clients
- add some documentation to socketclient adapter
- cleanup gen.go file used for generating binapi
- regenerate binapi with latest VPP release (19.04.1)
- change global variables Messages into a function AllMessages
Change-Id: Id1ef97764570759eaa3e5a4dc14ecda7a168ee39
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 4 Jun 2019 12:47:19 +0000 (14:47 +0200)]
Fix union data size for types with enums
- this also fixed proper alphabetical order for struct tags
- env var DEBUG_BINAPI_GENERATOR=y can be used to enable debug mode
Change-Id: I5b08a696ad2ff2a297872f231f9229cd956ee443
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Fri, 31 May 2019 06:56:20 +0000 (08:56 +0200)]
Support for error vectors
- this fixes compilation error for VPP 19.08 and keeps
backwards compatibility with previous versions
Change-Id: Ib58557a090caa5e8342c0cb21de8af684cb18137
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Mon, 27 May 2019 07:13:32 +0000 (07:13 +0000)]
Merge "Add support for field meta data to binapi-generator"
Ondrej Fabry [Mon, 27 May 2019 07:03:12 +0000 (09:03 +0200)]
Add support for field meta data to binapi-generator
Change-Id: Id0164d36727d070e395a522000f2e09ee5444bd0
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 21 May 2019 09:30:20 +0000 (11:30 +0200)]
Change default adapter to socketclient and cleanup some logs
Change-Id: I16ae8dbb5214e022304f4e8ae60798b370567fc8
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 14 May 2019 22:01:28 +0000 (00:01 +0200)]
Try using different type of unix socket connection
Change-Id: I6abde10043c4ff4d42d15a39cca10f82327d83dc
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Mon, 6 May 2019 14:28:17 +0000 (16:28 +0200)]
Fix compilation for VPP 19.01
This commit introduces header files for wrapping vppapiclient library.
The stat_client_wrapper.h now uses macro to determine version of stats API.
Change-Id: Ife218e0e90742e9a22fd12ca77307fbd0cc7d714
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 23 Apr 2019 12:43:25 +0000 (14:43 +0200)]
Add comments to provide info about VPP requirements
Change-Id: I116b9c0ab064418940eec82fb1442d30816386d7
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Rastislav Szabo [Thu, 18 Apr 2019 06:31:25 +0000 (06:31 +0000)]
Merge "Add buffer pool stats"
Ondrej Fabry [Thu, 18 Apr 2019 00:25:34 +0000 (02:25 +0200)]
Add buffer pool stats
Change-Id: I15d1df825b4d4fc760da83d9c878a621936bb6fa
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Thu, 18 Apr 2019 00:23:48 +0000 (02:23 +0200)]
Check if dir ls/dump returns nil
Change-Id: I9a0a74f53825fc0255bc664c06e32eaef6c45d82
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Tue, 16 Apr 2019 13:13:18 +0000 (15:13 +0200)]
Fix crash in stats for removed interfaces/nodes
Change-Id: I36b4cd2625c7f0c5846fe402be7b2aeece4707f8
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Thu, 11 Apr 2019 08:59:49 +0000 (10:59 +0200)]
Add support for names vector and fill name in interface/node stats
Change-Id: I3a6bcb635701c0f00e47d04fce2113e1ac23b67b
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Fri, 5 Apr 2019 21:57:56 +0000 (23:57 +0200)]
Split outgoing packet data by 4096 bytes
Change-Id: I92e2b60c1460873e890b0e9b6736b5a221742349
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Ondrej Fabry [Fri, 5 Apr 2019 08:34:37 +0000 (08:34 +0000)]
Merge "Exposed input_queue_size argument to user"