This file lists changes for the GoVPP releases.
19 September 2024
- Minor changes (#223)
- Add well-known reply timeout error (#234)
- Gomemif improvemets (#228)
- Improves gomemif library (#216)
- Add Release workflow with goreleaser (#202)
- Add Login to ghcr step to release Workflow (#212)
- Extras integration testing (#233)
- lint: check markdown files (#238)
03 April 2024
- Add missing VPPApiError (#183)
- Trace refactored (#116)
- Fix stream timer leak (#182)
- Memory leaks in govpp core (#184)
04 January 2024
- Update run_integration.sh (#151, #154)
- Add VPP 23.10 to CI (#175)
- Improvements GoVPP CLI (#156)
- Fix running integration tests outside of GitHub (#168)
- Add check for stats vector length (#172)
- gomemif: Packet sent on Tx queue is received back on Rx queue of sender (#165)
18 July 2023
- Add VPP 23.06 to CI (#136)
- Improvements for GoVPP CLI (#135)
- Skip running CI tests for docs updates (#137)
- binapigen: initial support for counters and paths (#121)
- Refactor resolving VPP API input (#130)
- Update Dockerfile.integration (#134)
- Add README for examples (#128)
- Invalidate msgTable map during reconnect (#127)
- Add more GoVPP CLI features (#117)
- Update README.md (#115)
- Generate message comments (#109)
- Add User Guide (#110)
- Enhancements for binapigen (#93)
- Update Go and test if binapi is up-to-date (#105)
- Create RELEASE document (#89)
- Fix returning message reply on retval errors (#147)
- Fix memory leak for timers (#138)
- Fix channel pool (#131)
- Fix race in statsclient during reconnect (#126)
- Fix memory leak with reply timers (#124)
- Fix for Dockerfile smell DL3008 (#123)
- Fix disconnect for AsyncConnect case (#106)
- Fix binapi generation if old binapi files are not present (#73)
- Fix memif abstract socket support (#119)
- Handle EINTR error (#99)
29 November 2022
- Switch to using a generic pool for channels in Connection (#39)
- feat: Disable default reply timeout (#45)
- gomemif: migrate from vpp repository (#65)
- Run golangci-lint in CI (#69)
- Add GoVPP logo to README (#79)
- Introduce VPP integration tests (#75)
- docs: Add troubleshooting guide (#70)
- Add support of watching events to Connection (#80)
- Fix format of package comment (#44)
- Fixes for staticcheck (#27)
- Prevent data race on msgMapByPath map (#50)
- Fix panic on the pool put/get operations (#54)
- Fix endless loop in Reset (#57)
- Fix generate RPC client for stream with reply (#72)
- Fix endless Stream's reply waiting on vpp disconnect (#77)
- Fix WaitReady if directory does not exist (#84)
- Added GitHub CI
- Remove deprecated vppapiclient
- Remove unused Travis CI
- Remove gerrit remains
09 September 2022
- Added GitHub CI
- Remove deprecated vppapiclient
- Remove unused Travis CI
- Remove gerrit remains
- Call munmap when failed to check stat segment version (#34)
28 July 2022
- Also generate APIName/APIVersion/CrcVersion constants for the types packages
- Stat segment client fixes & improvements
- Fix go 1.18 support
- Fixed data race in core.Connection.Close()
- Fix channel ID overlap
17 January 2022
- the generator code has been split into multiple packages:
- added support for VPP enumflags type
- previously required manual patches for generated code should no longer be needed
- many generated aliases were removed and referenced to
*_types
files for simpler reading - any types imported from other VPP API (
*_types.api
) files are now automatically resolved for generated Go code - marshal/unmarshal methods for memory client messages are now generated
- generated new helper methods for more convenient IP and MAC address conversion
- RPC service code is now generated into a separated file (
*_rpc.ba.go
) in the same directory and uses a new low level stream API - added option to generate HTTP handlers for RPC services
- generated code now contains comments with information about versions of VPP and binapi-generator
- in addition to the file name, the binapi generator now accepts full path (including extension,
e.g.
/usr/share/vpp/api/core/vpe.api.json
) - dependency on
github.com/lunixbochs/struc
was removed - generated helper methods for
vpe_types.Timestamp
- generated API messages comment may contain additional information about the given API development state (in progress, deprecated)
- type
[]bool
is now known to the generator - enhanced VPP version resolution - the generator is more reliable to evaluate installed VPP version
- socketclient was optimized and received a new method to add client name
- added new API stream for low-level access to VPP API
- the
Stream
API uses the same default values as theChannel
API - it supports the same functional options (request size, reply size, reply timeout)
- the
- statsclient supports additional options (retry period, retry timeout)
- the compatibility check error now contains a list of compatible and incompatible messages wrapped
as
CompatibilityError
- removed global binary API adapter. This change allows GoVPP to manage multiple VPP connections with different sockets simultaneously
- added support for the stats v2. The
statsclient
adapter recognizes the version automatically so theStatsAPI
remains unchanged. In relation to this change, the legacy support (i.e. stat segment v0) for VPP <=19.04 was dropped. - GoVPP now recognizes VPP state
NotResponding
which can be used to prevent disconnecting in case the VPP hangs or is overloaded - added method
SetLogger()
for setting the global logger StatsAPI
has a new methodGetMemory()
retrieving values related to the statseg memory heap- the stats socket allows an option to connect asynchronously in the same manner as the API socket connection.
Use
AsyncConnectStats()
to receiveConnectionEvent
notifications - Instead of a cumulative value, the
statsclient
error counter now provides a value per worker ListStats(patterns ...string)
returnsStatIdentifier
containing the message name and the ID (instead of the name only)- added support for VPP stat symlinks
- GoVPP received its own API trace. See the example for more details.
MsgCodec
will recover panic occurring during a message decoding- calling
Unsubscibe
will close the notification channel - GoVPP omits to send
sockclnt_delete
while cleaning up socket clients in order to remove VPP duplicated close complaints - VPP handles it itself - fixed major bug causing GoVPP to not receive stats updates after VPP restart
- fixed name conflict in generated union field constructors
- the size of unions composed of other unions is now calculated correctly
- fixed race condition in the VPP adapter mock
- fixed crash caused by the return value of uint kind
- fixed encoding/decoding of float64
- fixed the stats reconnect procedure which occasionally failed re-enable the connection.
- fixed occasional panic during disconnect
statsclient
wait for socket procedure works properly- fixed memory leak in health check
- improved log messages to provide more relevant info
- updated extras/libmemif to be compatible with the latest VPP changes
- default health check parameter was increased to 250 milliseconds (up from 100 milliseconds), and the default threshold was increased to 2 (up from 1)
- improved decoding of message context (message evaluation uses also the package path, not just the message ID)
statsclient
now recognizes between empty stat directories and does not treat them as unknown- proxy client was updated to VPP 20.05
- added more code samples of working with unions in binapi-types
- added profiling mode to perf bench example
- improved simple client example to work properly even with multiple runs
- added multi-vpp example displaying management of two VPP instances from single application
- added stream-client example showing usage of the new stream API
- simple client and binapi-types examples show usage of
the
vpe_types.Timestamp
- added API trace example
- updated
github.com/sirupsen/logrus
dep tov1.6.0
- updated
github.com/lunixbochs/struc
dep tov0.0.0-20200521075829-a4cb8d33dbbe
18 May 2020
- statsclient: Fix stats data errors and panic for VPP 20.05
17 April 2020
- binapi-generator: Format generated Go source code in-process
9 April 2020
- proxy: Unexport methods that do not satisfy rpc to remove warning
20 March 2020
- statsclient: Fix panic occurring with VPP 20.05-rc0 (master)
18 March 2020
- Fix import path in examples/binapi
18 March 2020
- binapi-generator: Fix parsing default meta parameter
- api: Improve compatibility checking with new error types:
adapter.UnknownMsgError
andapi.CompatibilityError
- api: Added exported function
api.GetRegisteredMessageTypes()
for getting list of all registered message types - binapi-generator: Support imports of common types from other packages
- binapi-generator: Generate
Reset()
method for messages - binapi-generator: Compact generated methods
- deps: Update
github.com/bennyscetbun/jsongo
tov1.1.0
- regenerate examples/binapi for latest VPP from stable/2001
04 November 2019
- fixed socketclient for 19.08
- fixed binapi compatibility with master (20.01-rc0)
- fixed panic during stat data conversion
- introduce proxy for remote access to stats and binapi
- optimizations for statclient
- migrate to Go modules
- print info for users when sockets are missing
03 July 2019
The first release that introduces versioning for GoVPP.