Age | Commit message (Collapse) | Author | Files | Lines |
|
The problem is triggered by the following events:
1. VPP stops.
2. core.Connection.healthCheckLoop() detects it and calls disconnectVPP(),
which does close healthCheckDone channel for the first time.
At this point Connection becomes unusable - re-entrance to
connectLoop() will return immediately because of a closed
healthCheckDone channel.
But, the race is that connection may set c.vppConnected = 1
before terminating the connect loop.
3. User calls Connection.Close(), who seed c.vppConnected = 1,
and tries to close already closed channel, which leads to a panic.
This commit fixes this race by telling disconnectVPP() whether
it is a terminal stop triggered via Close(), or a temporary one
from connectLoop().
Change-Id: I555149da35ca3dc2b606bad59f2101266c0ef6b9
Signed-off-by: Sergey Elantsev <elantsev.s@yandex.ru>
|
|
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Change-Id: Ic4a500ea83b392eb9720575d95597bc48b44c759
|
|
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Change-Id: I40665a0413f273e52bcaeaabacdf1bd55afcfd67
|
|
When creating a new channel and the channel ID wraps around, make sure
to not re-use a channel ID that is still in use. Re-using the channel
ID usually means that the connection health check will stop working and
other things might break as well.
Also rename maxChannelID to nextChannelID and use a lock to guard access
instead of using an atomic. The lock does anyway need to be acquired
because to put the entry in the map.
This commit was inspired by the following PR on Github:
https://github.com/FDio/govpp/pull/14.
Change-Id: I8c1a4ca63a53d07a6482b6047a3005065168c0b4
Signed-off-by: Lukas Vogel <vogel@anapaya.net>
|
|
Change-Id: I612aca78176a9195db05387291335e5a12791f40
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
|
|
Change-Id: I5e3cefc0e8b3eda4beacd2aab680a723e78884d6
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
|
|
Change-Id: Id070a39c871a1d428523cbf2eec58dcb51e2c14a
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
|
|
Change-Id: I577ec64c78fe5684fcef109c216810e5fe6b4009
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
|
|
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Change-Id: I1a260fae5633783624f28a658ebf72977effdf76
|
|
Change-Id: Ib34b84b8267c95ce3bacef4806cc52a6c7c24f05
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
|
|
1. On connection disconnect, health check loop ends immediately
and independently on probe interval setup
2. Proper resource cleanup
On disconnect, health check terminates itself with a delay based
on the probe interval. It causes memory usage going up if
AsyncConnect() & Disconnect() are called in a loop.
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Change-Id: Ibcdfec9d2d7736f9390e21039d9a917228114273
|
|
Fixes core.Stream leaking on every core.(*Connection).Invoke()
https://lists.fd.io/g/govpp-dev/topic/govpp_is_leaking_channels_on/85836420
Signed-off-by: Vladimir Popov <vladimir.popov@xored.com>
Change-Id: I8d5bcb3c3aa40ccda3fb249ee80bb82809f284b1
|
|
While assuming whether the VPP is installed (in order to retrieve a version),
the generator looks directly for the VPP executable instead of the API path.
This allows to get version if generated from any directory.
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Change-Id: I147e4fba49c102bf5f1cbcf2784c212479dc15b6
|
|
* refactor creation of new channel
* add missing closing of created streams
* correct documentation regarding thread safety of stream
Signed-off-by: mhalaj1 <matus.halaj@pantheon.tech>
Change-Id: Ic601efff298fcbdecaafab83fa236253af69de21
|
|
Signed-off-by: mhalaj1 <matus.halaj@pantheon.tech>
Change-Id: I9bb6a5ca00aa542128bde0bfbbba7b57b9f16ed2
|
|
Signed-off-by: mhalaj1 <matus.halaj@pantheon.tech>
Change-Id: I1c7b11950756d0fe789eb7badc3e883c12826671
|
|
Signed-off-by: Kusakabe Si <linux@kskb.eu.org>
Change-Id: Ib1761e3b93dae70680646ce7fdd78a1168fd0b9f
|
|
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Change-Id: I7de363dfb3930db13a30e97f154c57d75c07f01c
|
|
Signed-off-by: Kusakabe Si <linux@kskb.eu.org>
Change-Id: I14ae5071414d945a45d3d104390982085f3109ab
|
|
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Change-Id: I6649d6825a208b9cd936bf8f3b80e69ff84f8b74
|
|
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Change-Id: Id51fa03ac69a2fc29aca5ff644178cdfcabe523c
|
|
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>
|
|
* 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>
|
|
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>
|
|
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>
|
|
Change-Id: Id18086b2d1df911cdc5d0092e48fd6034ddc414e
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
|
|
Change-Id: Ib5674fee5862a2b16f4b0044b6f6af533a7b6b33
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
|
|
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
|
|
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>
|
|
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>
|
|
Change-Id: I2f46504bd05862e415dab518fad349d08aedf919
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
|
|
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>
|
|
Change-Id: I5e72df39c0e4ba4f0a70d561d7f9b220b4e72a4c
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
|
|
Change-Id: Id63f1516678cddfef82570958be7e1871ead2c45
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
|
|
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>
|
|
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>
|
|
Change-Id: I08f5ba1fb5ec02717e5715447837ca3b75fa894d
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
|
|
Retrieved numbers relate to the statseg heap.
Change-Id: I72750183db3524481918c71c993b39e65c28ddb6
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
|
|
- 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>
|
|
Change-Id: I5e588d48461a0cf551552a5068218a58920e52aa
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
|
|
* 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>
|
|
* This should fix GoVPP build
Change-Id: If53177253ad4a6616860aad50ce54e5944bbea6e
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
|
|
* 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>
|
|
Change-Id: I816b4802cb5fc46239f6db0480fa4cf3645fe2f0
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
|
|
Change-Id: I3290bbc8cbdfb634533ceb4606e4708b1a386dce
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
|
|
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>
|
|
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>
|
|
Change-Id: If77b7b37ae736fdf21f4c337350905480e6fb011
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
|
|
Change-Id: Id6f6bc3de5b9ff7230108a4171810207c94f9a38
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
|
|
Change-Id: I0b5fbbd98fc1bb6fc9d86ed81cb1b3f9755fed67
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
|