govpp.git
3 years agoBinary API generator improvements 52/27752/6
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>
3 years agoIntroduce Stream - experimental API for low-level access to VPP API 73/27673/1
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>
3 years agoFix codec fallback and generate type imports 47/27647/3
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>
3 years agoRefactored binapi generator with message encoding 89/27589/2
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>
3 years agoOptimize socketclient adapter and add various code improvements 71/27571/1
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>
3 years agoBump version to v0.3.5 23/27123/1 v0.3.5
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>
3 years agoFix stats data errors and panic for VPP 20.05 21/27121/1
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>
4 years agoFormat generated Go source code in-process 67/26567/1 v0.3.4
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>
4 years agoproxy: Unexport methods that do not satisfy rpc to remove warning 49/26449/1 v0.3.3
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>
4 years agoFix statsclient for VPP 20.05-rc0 (master) 32/26032/1 v0.3.2
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>
4 years agoFix import path in examples/binapi 79/25979/1 v0.3.1
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>
4 years agoRelease 0.3.0 77/25977/1 v0.3.0
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>
4 years agoSupport imported type aliases 58/24658/2
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>
4 years agoUpdate jsongo dep 30/24530/1
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>
4 years agoFix parsing default meta parameter 26/24426/1
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>
4 years agoImprove compatibility checking 69/23469/1
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>
4 years agoBegin development of next release 0.3.0 34/23234/1
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>
4 years agoUpdate changelog for release 0.2.0 08/23208/1 v0.2.0
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>
4 years agofix data races in proxy server 31/22931/2
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

4 years agoadd missing implementation for proxy 73/22773/2
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

4 years agofix: Add guards for converting Stat interface (might be nil) 30/22730/1
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>
4 years agoIntroduce proxy for VPP 06/22606/3
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>
4 years agoOptimizations for statsclient 91/22091/12
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>
4 years agoadd MockClearReplyHandlers() api for mock vpp adapter 46/21946/1
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>
4 years agoFix compatibility with latest master (20.01-rc0) 04/21904/1
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>
4 years agoUse new default binapi socket with fallback to legacy 95/21895/1
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>
4 years agoAdd tag beyond18.10 to prevent build stat_client 38/21138/1
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

4 years agoMigrate to modules, refactor Makefile and use Travis for CI 33/21033/1
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>
4 years agoFix unit tests 93/20993/1
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>
4 years agoUse common logger in core package 38/20938/1
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>
4 years agoPrint info for users to stderr when socket files are missing 33/20733/1
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>
4 years agoFix socketclient for VPP 19.08 80/20580/1
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>
4 years agoAdd CHANGELOG and update README 80/20480/1 v0.1.0
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>
4 years agoFix error counters for VPP 19.04 76/20476/1
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>
4 years agoFix duplicate types 52/20452/1
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>
4 years agoFix reading statsclient entries 23/20423/1
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>
4 years agoImprovements for binapi-generator and support VPP 19.04 in statsclient 64/20364/2
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>
4 years agoAdd statsclient - pure Go implementation for stats API 65/20265/1
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>
4 years agoFix parsing API with removed CRC for types and unions 98/20098/2
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>
4 years agoAdd various generator improvements 99/19999/1
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>
4 years agoFix union data size for types with enums 51/19951/1
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>
4 years agoSupport for error vectors 07/19907/1
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>
4 years agoMerge "Add support for field meta data to binapi-generator"
Ondrej Fabry [Mon, 27 May 2019 07:13:32 +0000 (07:13 +0000)]
Merge "Add support for field meta data to binapi-generator"

4 years agoAdd support for field meta data to binapi-generator 32/19832/1
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>
4 years agoChange default adapter to socketclient and cleanup some logs 33/19733/1
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>
4 years agoTry using different type of unix socket connection 80/19580/1
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>
4 years agoFix compilation for VPP 19.01 78/19378/1
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>
5 years agoAdd comments to provide info about VPP requirements 13/19113/1
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>
5 years agoMerge "Add buffer pool stats"
Rastislav Szabo [Thu, 18 Apr 2019 06:31:25 +0000 (06:31 +0000)]
Merge "Add buffer pool stats"

5 years agoAdd buffer pool stats 89/18989/1
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>
5 years agoCheck if dir ls/dump returns nil 88/18988/1
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>
5 years agoFix crash in stats for removed interfaces/nodes 28/18928/1
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>
5 years agoAdd support for names vector and fill name in interface/node stats 09/18809/1
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>
5 years agoSplit outgoing packet data by 4096 bytes 26/18726/1
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>
5 years agoMerge "Exposed input_queue_size argument to user"
Ondrej Fabry [Fri, 5 Apr 2019 08:34:37 +0000 (08:34 +0000)]
Merge "Exposed input_queue_size argument to user"

5 years agoExposed input_queue_size argument to user 98/18698/1
Ondrej Fabry [Fri, 5 Apr 2019 08:31:02 +0000 (10:31 +0200)]
Exposed input_queue_size argument to user

Change-Id: If617c61bab4c5ee8ea41ec17932132050bf5cdba
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoFix WaitReady for VPP client adapters 97/18697/1
Ondrej Fabry [Fri, 5 Apr 2019 08:18:33 +0000 (10:18 +0200)]
Fix WaitReady for VPP client adapters

Change-Id: I57d29a819132d4894691e1131b7d79e19c90456e
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agofix govpp, add more checks to makefile 86/18686/1
Vladimir Lavor [Thu, 4 Apr 2019 12:36:34 +0000 (14:36 +0200)]
fix govpp, add more checks to makefile

Change-Id: Ie118b0c254e5d70e66d5cb4a5f6eb8fa852f0ed8
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
5 years agosocketclient: wait for socket to be created 81/18681/1
Vladimir Lavor [Thu, 4 Apr 2019 11:37:53 +0000 (13:37 +0200)]
socketclient: wait for socket to be created

domain sockets are checked/watched for existence in same
manner as shm prefixes
also the connection attempts and timeout in between can
be configured for async-connect

Change-Id: I084a3efaefea10d106866968deab90d3fda77cfe
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
5 years agoFixup build with golang 1.12 70/18470/1
Nicolas PLANEL [Thu, 21 Mar 2019 22:05:05 +0000 (23:05 +0100)]
Fixup build with golang 1.12

_Ctype_ direct call are prohibited, use C namespace instead.

Change-Id: Ifd77469e15a10ce8381b8308282d549c62f1318c
Signed-off-by: Nicolas PLANEL <nplanel@redhat.com>
5 years agofixup race on ch.reqChan 23/18423/1
Nicolas PLANEL [Wed, 20 Mar 2019 13:14:10 +0000 (14:14 +0100)]
fixup race on ch.reqChan

git.fd.io/govpp.git/core/request_handler.go:37
git.fd.io/govpp.git/core/channel.go:188

Change-Id: I5be8be5e3ca105822ea4bb3b9690938634950d78
Signed-off-by: Nicolas PLANEL <nplanel@redhat.com>
5 years agoAdd socketclient implementation 35/18135/1
Ondrej Fabry [Fri, 8 Mar 2019 10:18:22 +0000 (11:18 +0100)]
Add socketclient implementation

Change-Id: Ibf9edc0e5911d08229ac590b37c5afbc27f424a0
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoIntroduce higer-level API for retrieving statistics 79/17679/2
Ondrej Fabry [Tue, 19 Feb 2019 12:57:12 +0000 (13:57 +0100)]
Introduce higer-level API for retrieving statistics

- see stats-api example

Change-Id: I11d29d32b60d25238e75cb6b86ee34842348ab38
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoAdd support for using multiple generated versions 14/17414/2
Ondrej Fabry [Fri, 8 Feb 2019 07:38:56 +0000 (08:38 +0100)]
Add support for using multiple generated versions

- added CheckCompatibility for checking if given messages are compatible
- generating Messages global for easier usage of compatibility check
- added ReconnectInterval and MaxReconnectAttempts for reconnecting
- added Failed state that is sent after exceeding max reconnect attempts

Change-Id: I1062ba453f22657c1a2a31aa64cb103ef1223b0f
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoGenerator improvements and cleanup 11/17411/1
Ondrej Fabry [Fri, 8 Feb 2019 00:16:32 +0000 (01:16 +0100)]
Generator improvements and cleanup

- generator now supports include-comments flag (as opt-in)
- minor code cleanup in binapi-generator
- remove obsolete unit tests
- flatten examples from examples/cmd folder
- introduce constant for checking compatibility in future versions

Change-Id: I3545f2ba4b869a3b51d6d0de7e742f3f1e1be392
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoMock VPP adapter nit 10/17410/1
brecode [Thu, 7 Feb 2019 21:07:11 +0000 (13:07 -0800)]
Mock VPP adapter nit

- change the api reference from api.GetAllMessages()
  to GetRegisteredMessages()

Change-Id: I8ba43b7640f3482e8398dd1e35dd74d71de0fc4e
Signed-off-by: Nikos Bregiannis <nikos.bre@gmail.com>
5 years agoMerge "Generator improvements"
Rastislav Szabo [Thu, 31 Jan 2019 07:28:52 +0000 (07:28 +0000)]
Merge "Generator improvements"

5 years agoGenerator improvements 94/17194/1
Ondrej Fabry [Thu, 31 Jan 2019 07:23:02 +0000 (08:23 +0100)]
Generator improvements

- all objects are now sorted alphabetically for more consistent output
- unions now have constructor generated
- log level for warnings was changed to debug
- GetAllMessages renamed to GetRegisteredMessages

Change-Id: I976453004a2fd8b6cb95ca0acfcef56913bf8d38
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoUpdate VPPApi error list 93/17193/1
Ondrej Fabry [Thu, 31 Jan 2019 07:06:19 +0000 (08:06 +0100)]
Update VPPApi error list

Change-Id: I6e2ff140b3742774dc37d58e332eea372b089234
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoadded mock adapter for new VPP stats 22/16822/2
Vladimir Lavor [Tue, 15 Jan 2019 09:08:12 +0000 (10:08 +0100)]
added mock adapter for new VPP stats

Change-Id: I9d6cf28fcde79ba648321cbd92941ee7ef8e0812
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
5 years agoAdd support for string types 48/16748/2
Ondrej Fabry [Thu, 10 Jan 2019 09:57:50 +0000 (10:57 +0100)]
Add support for string types

- strings are now generated as two fields for length and string itself
- aliases are now sorted by name to prevent generating different code
- dependencies are now managed by dep
- binapi files are regenerated using VPP 19.01-rc0~622-g7b01e9e8
- old stats binary api has been deprecated and removed from VPP

Change-Id: Ieb8515c73021339a45f407386f8e3d87dcf4469e
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoadded support for string type 62/16662/1
Vladimir Lavor [Wed, 2 Jan 2019 11:02:33 +0000 (12:02 +0100)]
added support for string type

Change-Id: I2de04fba137004d1d7148ae910e9ccbd47589611
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
5 years agoMerge "Add support for aliases and boolean type"
Rastislav Szabo [Thu, 13 Dec 2018 12:03:49 +0000 (12:03 +0000)]
Merge "Add support for aliases and boolean type"

5 years agoAdd support for aliases and boolean type 59/16459/1
Ondrej Fabry [Thu, 13 Dec 2018 09:21:49 +0000 (10:21 +0100)]
Add support for aliases and boolean type

- aliases are now generated as new types or arrays (if length > 0)
- bool is recognized as a boolean type and generated as Go bool
- comment with original JSON is now prepended for each object type
- interface Services is now generated at the top of the file to provide
  overview of what RPC services does the current module consists of
- dump services now correctly return slice of the particular details type

Change-Id: I788babc1c0f2de33e0febd87e5b200d54065b244
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoMerge "Rename skipzero flag to all"
Ondrej Fabry [Tue, 20 Nov 2018 21:46:14 +0000 (21:46 +0000)]
Merge "Rename skipzero flag to all"

5 years agoMerge "Update libmemif adapter with changes in vpp"
Rastislav Szabo [Mon, 19 Nov 2018 09:05:18 +0000 (09:05 +0000)]
Merge "Update libmemif adapter with changes in vpp"

5 years agoRename skipzero flag to all 09/16009/1
Ondrej Fabry [Sat, 17 Nov 2018 18:40:24 +0000 (19:40 +0100)]
Rename skipzero flag to all

Change-Id: I3ec848c3c7ba00481f6642c01e446bba935abf5b
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoImprove Stats API example and add README 06/16006/1
Ondrej Fabry [Sat, 17 Nov 2018 02:06:24 +0000 (03:06 +0100)]
Improve Stats API example and add README

Change-Id: If25c7d05c42fbed6c43558f84fb86aca6c5af4d5
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoUpdate libmemif adapter with changes in vpp 35/15735/3
Tomas Slusny [Tue, 6 Nov 2018 11:13:37 +0000 (12:13 +0100)]
Update libmemif adapter with changes in vpp

- Add regions to memif_queue_details
- Insert ErrConnRefused to err.go and update indices

Change-Id: Iaca791c0044ab8b340bfb48d538d00dc0ae243ba
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
5 years agoMerge "Fix compilation failure in libmemif adapter.go"
Ondrej Fabry [Tue, 6 Nov 2018 15:49:33 +0000 (15:49 +0000)]
Merge "Fix compilation failure in libmemif adapter.go"

5 years agoFix compilation failure in libmemif adapter.go 34/15734/2
Serguei Bezverkhi [Tue, 16 Oct 2018 18:27:26 +0000 (14:27 -0400)]
Fix compilation failure in libmemif adapter.go

Change-Id: I39704999503bb4e61f6f0abe8aede5d1d569e5b7
Signed-off-by: Serguei Bezverkhi <sbezverk@cisco.com>
5 years agoRemove the global variable for connection 75/15475/1
Ondrej Fabry [Tue, 23 Oct 2018 13:40:44 +0000 (15:40 +0200)]
Remove the global variable for connection

- this also fixes issue where after connect failure all following connects
  failed 'with only one connection per process is supported'
- this global was used to limit to single connection, but the actual
  limitation is for the adapter and with different adapter implementation
  multiple connections could actually be supported
- the global defined in the vppapiclient package will continue to limit
  to single connection via VppClient implementation of the adapter

Change-Id: Id06dd6e80b51d1d43f6f75bbcc6e01c6f21c605a
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoUnexport adapter implementations to make it clear that API interfaces should be used 72/15472/1
Ondrej Fabry [Tue, 23 Oct 2018 11:20:31 +0000 (13:20 +0200)]
Unexport adapter implementations to make it clear that API interfaces should be used

- this decision was made to follow more idiomatic Go, described in
  https://golang.org/doc/effective_go.html#generality

Change-Id: I341556c792df77ca35a60a1e4afc541482f23734
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoMerge "Introduce StatsAPI and it's initial implementation"
Ondrej Fabry [Mon, 22 Oct 2018 14:21:28 +0000 (14:21 +0000)]
Merge "Introduce StatsAPI and it's initial implementation"

5 years agoIntroduce StatsAPI and it's initial implementation 54/15454/7
Ondrej Fabry [Mon, 22 Oct 2018 12:45:21 +0000 (14:45 +0200)]
Introduce StatsAPI and it's initial implementation

- this implementation is basically Go wrapper around VPP's vppapiclient C library

Change-Id: I6f53dc3e228868834bf3a8a00c686ad05e22f3dd
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoMerge "Add .gitreview"
Rastislav Szabo [Wed, 10 Oct 2018 07:58:59 +0000 (07:58 +0000)]
Merge "Add .gitreview"

5 years agoOmit message factory and line numbers from generated output 21/15121/1
Ondrej Fabry [Wed, 3 Oct 2018 12:14:40 +0000 (05:14 -0700)]
Omit message factory and line numbers from generated output

Change-Id: Ie48cc0a641242625daf55caf00ab630e78aa86b7
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoRecover possible panic in EncodeMsg and improve debug logs 88/14788/1
Ondrej Fabry [Wed, 12 Sep 2018 15:38:36 +0000 (17:38 +0200)]
Recover possible panic in EncodeMsg and improve debug logs

Change-Id: I771c171ae30a957f4436e7f4ba834d8a38d02f80
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoCopy data in msg callback 69/14669/1
Ondrej Fabry [Wed, 5 Sep 2018 11:55:54 +0000 (13:55 +0200)]
Copy data in msg callback

Change-Id: I642b0f586a57101633982bcee5bad187a0749090
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoAdd .gitreview 75/14475/1
Vanessa Rene Valderrama [Fri, 24 Aug 2018 21:06:12 +0000 (16:06 -0500)]
Add .gitreview

Adding .gitreview file

Change-Id: Ia0c12ffcb142db370107ea8823a8355462b24372
Signed-off-by: Vanessa Rene Valderrama <vvalderrama@linuxfoundation.org>
5 years agoSimplify subscribing to events and fix events 50/14450/6
Ondrej Fabry [Thu, 23 Aug 2018 20:51:56 +0000 (22:51 +0200)]
Simplify subscribing to events and fix events

- there is no need for sending subscription requests through channels,
  since all the messages are registered and no communication with VPP
  is needed

Change-Id: Ibc29957be02a32e26309f66c369a071559b822a9
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoShow VPPApiError value always and remove RegisterBinAPITypes for mock adapter 03/14403/1
Ondrej Fabry [Wed, 22 Aug 2018 04:07:04 +0000 (06:07 +0200)]
Show VPPApiError value always and remove RegisterBinAPITypes for mock adapter

Change-Id: I3b216748df1a372f25cc94e3df5d7b1b2b7a8a40
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoMake the warnings for validating services more obvious 00/14400/1
Ondrej Fabry [Tue, 21 Aug 2018 20:32:11 +0000 (22:32 +0200)]
Make the warnings for validating services more obvious

- there is currently simple validation for services,
  which checks type of services and its name for request/reply
- there is one known warning in dhcp package for dhcp_client_config,
  since it is single case for normal requests subscribing to event

Change-Id: I504a52b9a1823ced841b2ead712318ef5e5477b1
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoFix perf-bench example 98/14398/1
Ondrej Fabry [Tue, 21 Aug 2018 13:47:30 +0000 (15:47 +0200)]
Fix perf-bench example

Change-Id: I62a7a27adbb44b9d8070b448c17bb7781b0637fe
Signed-off-by: Ondrej Fabry <ondrej.fabry@pantheon.tech>
5 years agoRefactor GoVPP 54/14254/4
Ondrej Fabry [Wed, 15 Aug 2018 10:59:25 +0000 (12:59 +0200)]
Refactor GoVPP

Squashed commit of the following:

commit 348930db31575e9f59b3834d9fec07411f011e05
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Wed Aug 15 11:30:13 2018 +0200

    Use debug level for log about different context

commit 9fc963c559cea67a41b85c6cdadc322fb3b1fc7c
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Wed Aug 15 11:22:03 2018 +0200

    Remove annoying logs and add env vars for debugging

commit fdc9fd624d13feadb602e0d03d58f8a44b7a565f
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Wed Aug 15 11:18:47 2018 +0200

    Fix printing unknown VPPApiError

commit 8f968be36a91de4d4a8ea17593ba314f82aa9583
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Tue Aug 14 17:25:10 2018 +0200

    Refactor entire GoVPP

    - fix some cases with inconsistent VPP messages, causing messages
      to be incorrectly identified as event or request
    - simplify API, remove direct access to internal Go channels
    - add module name with message to registration of messages
    - start watching filesystem only when vpe-api file does not exist
    - simplify code in message codec and remove unneeded parts
    - retrieve IDs of all registered messages after connect to VPP
    - define fallback for control ping in core to avoid duplicate registration
    - add SetLogLevel function to set logger level more easily
    - remove lot of unused code

commit 34dd1b7e10ef0324aa8c4e4cc42375bd6021c6cb
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Mon Aug 13 11:29:54 2018 +0200

    Rename VnetError to VPPApiError

commit c6549d6f77847a1367a12ff47fb716e2955e973a
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Mon Aug 13 10:23:43 2018 +0200

    Fix examples and regenerate binapi

commit 4612e36b416779771f5efab4fc654c2766d2cb1c
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Mon Aug 13 09:51:22 2018 +0200

    Add parsing and generation for services

commit ac9c5280c5aa27e325f327609e2364cc66f3723f
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Fri Aug 10 14:30:15 2018 +0200

    Fix exit status on error and add continue-onerror flag

commit 9b3f4ef9fc7c8c62037fa107085eae18a8725314
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 15:20:56 2018 +0200

    Return VnetError when Retval != 0

commit 8fd21a907b5e628ec4d2026215b83d15da96c297
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 14:59:05 2018 +0200

    Add all missing errors from api_errno.h

commit 08450f288d3046ebaecf40203174ae342a07f1eb
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 14:29:27 2018 +0200

    Update README

commit d8dced0728dd62243539be741868fb7d9b8de4cc
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 13:59:59 2018 +0200

    Regenerate vpe in core

commit 254da7592cdbf634cf7aa46ae36ce7bb6d4ee555
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 13:37:00 2018 +0200

    Add VnetError type for Retvals

commit 4475c1087fb53ab4c788e530bc7fef7cfc89d2cd
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 13:36:07 2018 +0200

    Add registration API

commit 892a3ea5a2c703e2f7c29331663f6a6fa706bff5
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 13:30:43 2018 +0200

    Generate registration for messages and check all IDs on connect

commit 389ed03b6e7082260281866c3449d72d72347c99
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 11:32:41 2018 +0200

    Show error for empty adapter (on Darwin/Windows)

commit ef1ea040d656ade64242432dc5f06810ed8dcde6
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 11:31:37 2018 +0200

    Improve logged info

commit d4adae3b14ed54c8d693060dd857fa9ba5ec8e06
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 11:27:48 2018 +0200

    Update examples

commit 63921e1346014701a22639a2611129563bb1eb78
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Thu Aug 9 11:02:56 2018 +0200

    Generate unions and fix some issues

    - add comments between sections
    - define structs on single line if it has no fields
    - generate unions with setters/getters for each field
    - fix detection of message type

commit 6ab3e3fa590b245898306a6ffaf32c7721eab60c
Author: Ondrej Fabry <ofabry@cisco.com>
Date:   Wed Aug 8 15:37:10 2018 +0200

    Refactor binapi-generator

    - split JSON parsing from code generation
    - parse and generate enums
    - parse unions (no generation yet)
    - change output file suffix to '.ba.go'
    - cleanup and simplify code
    - split code into files
    - add flag for debug mode

Change-Id: I58f685e0d4c7a38e9a7b6ea0a1f47792d95d7399
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
5 years agoMerge "Add support for jumbo frames to libmemif"
Rastislav Szabo [Mon, 16 Jul 2018 14:35:45 +0000 (14:35 +0000)]
Merge "Add support for jumbo frames to libmemif"

5 years agoMerge "make api.Channel as interface"
Rastislav Szabo [Mon, 9 Jul 2018 07:56:15 +0000 (07:56 +0000)]
Merge "make api.Channel as interface"

5 years agoAdd support for jumbo frames to libmemif 95/13295/16
Tomas Slusny [Tue, 26 Jun 2018 14:53:48 +0000 (16:53 +0200)]
Add support for jumbo frames to libmemif

Add support for frames larger than maximum buffer size to libmemif
adapter.

Change-Id: I8b2d9fe7e05328194cd0aafd6e3ab40392ebbfed
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
5 years agomake api.Channel as interface 29/13329/8
Vladimir Lavor [Tue, 3 Jul 2018 08:39:21 +0000 (10:39 +0200)]
make api.Channel as interface

Change-Id: I052d241ab09043b1195beebeee99df4d8536621f
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
5 years agoAdd gopacket adapter for libmemif 94/13294/4
Tomas Slusny [Thu, 28 Jun 2018 10:23:28 +0000 (12:23 +0200)]
Add gopacket adapter for libmemif

Add simple PacketHandle adapter for gopacket PacketDataSource + add
writePacketData convenience method to it.

Change-Id: I2280db33076c497c9b63fd107b6d77ecf85dd23b
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>