Age | Commit message (Collapse) | Author | Files | Lines |
|
This is a version of the VPP API generator in Python PLY. It supports
the existing language, and has a plugin architecture for generators.
Currently C and JSON are supported.
Changes:
- vl_api_version to option version = "major.minor.patch"
- enum support
- Added error checking and reporting
- import support (removed the C pre-processor)
- services (tying request/reply together)
Version:
option version = "1.0.0";
Enum:
enum colours {
RED,
BLUE = 50,
};
define foo {
vl_api_colours_t colours;
};
Services:
service {
rpc foo returns foo_reply;
rpc foo_dump returns stream foo_details;
rpc want_stats returns want_stats_reply
events ip4_counters, ip6_counters;
};
Future planned features:
- unions
- bool, text
- array support (including length)
- proto3 output plugin
- Refactor C/C++ generator as a plugin
- Refactor Java generator as a plugin
Change-Id: Ifa289966c790e1b1a8e2938a91e69331e3a58bdf
Signed-off-by: Ole Troan <ot@cisco.com>
|
|
- separate client/server code for both memory and socket apis
- separate memory api code from generic vlib api code
- move unix_shared_memory_fifo to svm and rename to svm_fifo_t
- overall declutter
Change-Id: I90cdd98ff74d0787d58825b914b0f1eafcfa4dc2
Signed-off-by: Florin Coras <fcoras@cisco.com>
|
|
Currently:
- vpe.api (supported previously)
- stats.api
- oam.api
Change-Id: Iab48d5d142e9a1ea0a4f366352b1d9429cc47309
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
JVpp maps request messages with replies
for Java API user convenience, e.g.:
- do not polute send APIs with messages other than requests/dumps,
- allow callback registration only for replies/details and events.
Since there are no conventions for event message naming
(https://wiki.fd.io/view/VPP/API_Concepts#API_Conventions),
jvpp should not limit events to messages
that end with 'event' or 'counters' suffix.
Instead jvpp should treat all messages
except for requests/dumps as potential events.
Such behaviour was introduced on Java API level by
https://gerrit.fd.io/r/#/c/8377/
in order support reusing
details messages as events (e.g. BFD events).
This patch goes one step forward by
relaxing rules at jvpp generation level.
Change-Id: I2a35e9eb2a288b2cf02d36ca95e6cb13e76e19e3
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Since introduction of dedicated SW Interface Event,
there is no need for special handling of messages
that can be both requests and events.
Change-Id: I76575e32c6d5b19e9a1ca953e5841d8ac3de4de7
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Since L2FibTable removal
and introduction of dedicated SW Interface Event,
special message handling code can be removed.
The patch also fixes issues
found by Intelij's code inspection tool.
Change-Id: Ic4b2fd12ac30c7627f4cd6769716e4bb52ec0b10
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Change-Id: I3d936d456ee27b2e0857843295efb60a9f2d0be7
Signed-off-by: Matus Fabian <matfabia@cisco.com>
|
|
Change-Id: Id085c1e3cbc7bf03df02755f9e35896cdb57e9e3
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
test provide two ways to count invocations:
1) maximum number of invocations and received replyies within 1 sec
2) measure time in ns from first request to receiving last reply
over set amount of requests
specific command is included in Readme
results from testing on my local machine were:
350K/sec Callback Api Read - show version
250K/Sec Future Api Read - show version
120K/sec allback Api Write - add table
Change-Id: Ie0383d848b98ee2b4b90c38a827a24acd28cac72
Signed-off-by: Matej <matej.perina@pantheon.tech>
|
|
- message sending method inside synchronization blocks causes
deadlock between sending and receiving part
- breaking atomicity of sending message and putting future with
corresponding id to map needs additional handling by writer and receiver,
regardless which part get access to sync block first will create
new future and second one will complete it and remove from map,
in case of dump calls where control ping reply is required
as confirmation that all information were send, if ping reply is
received before writer put future in map, reader will create
regular control ping future instead and writer needs to made association
between these two futures
Change-Id: Id29a19be7a5319291a5e07cf931080610178f00c
Signed-off-by: Matej <matej.perina@pantheon.tech>
|
|
Java bindings use get_message_id from jvpp-common
to detect if messages known at compile time
are avaliable at runtime.
In case of missing entry, Java exception is propagated
via JNI using (*env)->ThrowNew.
But this function does not end code execution so,
in order to prevent unexpected behaviour
(e.g. calling vl_msg_api_set_handlers with id == 0),
get_message_id caller should do it manually.
Change-Id: I2edb5013fd3658dcdd77a867b5cdf62e559ee071
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
1) In the previous version callbacks were generated based on
request-replay naming conventions. It turned out they were too
strict in case of events (e.g. BFD sends Details messages as
notifications). So now we generate callback for all messages,
allowing to receive any message as notification.(callback_gen.py)
2) "notification" suffix is no longer added because all messages
are treated same (dto_gen.py, jvpp_c_gen_.py)
3) name of property that holds notification/events changed in callback
facade and future apis
4) JVppNotification.java is no longer used since all events are treated
equally
Change-Id: I13f6438affc3473040d63cd4acb3984d03e97482
Signed-off-by: Matej <matej.perina@pantheon.tech>
|
|
Change-Id: I47f9d12d934378f18c6f841b902af2a64ee7b187
Signed-off-by: Matej Perina <mperina@cisco.com>
|
|
Change-Id: I5ca5763f0dc0a73cc6f014b855426b7ac180f356
Signed-off-by: Matej Perina <mperina@cisco.com>
|
|
ConnectionInfo now contains pid of vpp process
pid is aquired through initial control ping during
connection creation
Change-Id: I68457770e07792d11c47bc7d8cbd0d2fd722d9b4
Signed-off-by: Matej Perina <mperina@cisco.com>
|
|
Change-Id: Ia5c869b2d8b8ad012b9e89fb6720c9c32d9ee065
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
|
|
added debug version commands to Readme files for example tests
Change-Id: Icc5d5cdd33efb6d7c7512c7a78e22d9dc3d31fdc
Signed-off-by: Matej Perina <mperina@cisco.com>
|
|
test can be run with:
make test TEST=test_jvpp
memory_shared.c:
declaring and assigning variable in if statement
makes it usage outside statement impossible. Looks like memory
space assigned to variable declared in statement is freed when
statement ends
svm.c:
- fixed case when root path can have a "/" at beggining
- added option for test to operate over shared memory space
with /vpe-api name and not create new one with name consisting of
root path and region name which would require root permisions
Change-Id: Iff1170dc6a5c1be134c152f2757c7ab9b919a8ed
Signed-off-by: Matej Perina <mperina@cisco.com>
|
|
Change-Id: I6cca455ead986cb8a507c84957a97a40b733b16c
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Change-Id: I30a7e3da7a4efc6038a91e27b48045d4b07e2764
Signed-off-by: Matus Fabian <matfabia@cisco.com>
|
|
DTOs fields are initialized by generated JNI code, so
we can safely ignore FB.UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD.
Coverity uses FindBugs to analyse Java code,
so it should be possible to suppress some of the
issues that are false positives or intentional.
Change-Id: I1375f6123e3eb44db44065d603d9d81726161acb
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Should make Coverity stop thinking we try to synchronize reply.context.
Change-Id: I97169e46b9c8f594836d6beb75b9f42dfc6e5bad
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Change-Id: I6a06dbcd8339bd6645a6b02ae70154aa0885dcf8
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
svm.c - set default map region root path only if root path is not
already present
memory_shared.c - added option for tests to send memory region name
and root path in one variable, if so name and root path are
separated here and set to map region structure so find function
can find it properly
jvpp-registry.c - added parameters shmPrefix to be able pass +
removed sudo restriction
specific shared memory prefix that is used while starting
python tests(see framework.py)
JVppRegistyImpl - added option to specify shmPrefix
VppJNIConnection - added option to specify shmPrefix
Change-Id: I3f89f867fb9b20eef00fbd497cb0e41b25d6eab7
Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
Signed-off-by: Matej Perina <mperina@cisco.com>
|
|
Change-Id: I06a10a4291e61aec3f1396d2514ed6fe3901897a
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Supports 64K PPPoE sessions
This plugin adds three graph nodes:
1) pppoe-input for PPPoE decapsulation
2) pppoe-encap for PPPoE encapsulation
3) pppoe-tap-dispatch for control plane process
Below is the configuration to make PPPoE CP and DP work:
vim /etc/vpp/startup.conf
tuntap {
enable
ethernet
name newtap
}
create pppoe tap tap-if-index 1
//Configure it after a subscriber's PPPoE discovery and PPP link establishment succeeds:
create pppoe session client-ip 100.1.2.1 session-id 1 client-mac 00:11:01:00:00:01
show pppoe fib
show pppoe session
Change-Id: I73e724b6bf7c3e4181a9914c5752da1fa72d7e60
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
|
|
Error descriptions provided in api_errno.h are never used,
only error tag/name and number make it to enum vnet_api_error_t
so new macro is introduced in jvpp_common.c to extract message
according to error number and passed to VppCallbackException
constuctor.
Change-Id: If2a687752807d7250d9226987583df00f151e87f
Signed-off-by: Matej Perina <mperina@cisco.com>
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Change-Id: Ib1a13e0a6cba69aba7a26e1bd52f4c55c4ccc027
Signed-off-by: Matej Perina <mperina@cisco.com>
|
|
Change-Id: I67839281623721bf42f0a918a53356143d9dc78a
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
|
|
Since all objects of the array have the same type, the object
constructor is a loop invariant. Move the lookup out of the loop,
making things faster.
Change-Id: I631c72b59c6c63eccd49ede41c6dc0541c325db9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Robert Varga <nite@hq.sk>
|
|
The JNI templates around array and object handling are wrong in the
sense that they fail to delete local references for objects which
have been assigned to fields/arrays. Fix this by invoking
DeleteLocalRef.
Change-Id: I1c31d81f4235d821ccd51c96be7b176f64284928
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Robert Varga <nite@hq.sk>
|
|
is_address_reachable - Disabled so deleted
cli_request - Renamed to cli
vnet_summary_stats_reply - Renamed to vnet_get_summary_stats_reply
bridge_domain_sw_if_details - Deleted, incorporated in main message
l2_fib_table_entry - Renamed to l2_fib_table_details
Change-Id: I93b7e8769a3ba7b4989b3c270270f575f386464f
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Signed-off-by: Ole Troan <ot@cisco.com>
|
|
Basic GTP-U feature
Change-Id: I31226f890a92c5303ac06e112ed7820cae52d9bd
Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
|
|
Change-Id: I9a46125e3cf9815c08cf8cca17713ec6e9121eae
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
(cherry picked from commit 307cfd8eb14ff7df04316ffa56f2c2481d650d7e)
|
|
Change-Id: Ia7cb986544a13cc17b43b2f0948482deb02e8fb5
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Change-Id: I97e03d98758a08b1f75a9a1f35f0181385a10ae8
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Change-Id: I6081a38af3817f0957a2faf0e3e41afa4a74f3a4
Signed-off-by: Dave Barach <dave@barachs.net>
|
|
Jvpp code uses CRCs to obtain msg IDs.
Checking api_main_t.msg_index_by_name_and_crc is
enough to detect API mismatch.
Calling vl_client_get_first_plugin_msg_id is not needed.
Also fixes VPP-627.
Change-Id: Ie3085dfa458795fa11f17615ac94e76197a1c8cd
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Remote mapping and locator set binary APIs uses zero length arrays
defined as 'u8 array[0]' in .api file.
This path will change such cases to form 'type_t array[count];'
in order to enhance maintainability.
Change-Id: I98d0252b441020609c550d48186ed0d8338a3f2d
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
|
|
Change-Id: I8333b7d19ebdacac5445b4505750dd0a46764b36
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
At the least, $(BUILT_SOURCES) should be added to CLEANFILES. Also
beneficial is $(api_DATA), and in the case of Java, *.files and *.h.
Also there is a vpp/app/version.h, and some grammar and lex files in
vppapigen.
Change-Id: Ic6d3f2d40ce65e1d9a8b88217fa1f36de393ebb4
Signed-off-by: Burt Silverman <burtms@gmail.com>
|
|
Since messages ids are no longer statically referenced,
fixes also VPP-611.
Change-Id: Ic8e6ee2b7f1142c185595347984d69350be25ac3
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Change-Id: Idef5f036c9dc679b062931f38fcc311d00fc0017
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Change-Id: I02d01ce210d5bbe11ad2ee70f7703647f9147416
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Change-Id: Idcf37fc4a031c1c95362aeadf11768103e40d0fd
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Change-Id: Ifa6845458f7249d2179a20b954fcdd49d6c68aa1
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
- remove unused stuff
- add --quiet flag to libtool
- avoid building some tests programs when tests are not enabled
Change-Id: Ie34aeec1a598ad811256a00354f66cfddae9d0b9
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
Most Java bindings for VPP APIs provide some tests/examples.
The patch includes them in the compilation process.
Change-Id: Icef3d061c1afd727e8544a7fe5c0204453b1c1d0
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
|
|
Change-Id: Idffaafda8fac06a45edef6f3ef13379293d0faa0
Signed-off-by: Damjan Marion <damarion@cisco.com>
|
|
added missing path for vpe.api file
Change-Id: I61f727002dd663d6a5656b0d01380e77b44c4a42
Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
|