summaryrefslogtreecommitdiffstats
path: root/src/vpp-api
AgeCommit message (Collapse)AuthorFilesLines
2018-01-04VOM: NAT coverity found bugsNeale Ranns2-3/+3
Change-Id: Ic55ad2e0a1435f552ce84ed1a9b1981191bc178b Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-01-02VOM: NAT updatesNeale Ranns12-174/+518
Change-Id: I112afaa1f2ccd2ee62a436c73802afaea9b44779 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-12-20L2 EmulationNeale Ranns6-1/+560
L2 Emulation is a feautre that is applied to L2 ports to 'extract' IP packets from the L2 path and inject them into the L3 path (i.e. into the appropriate ip[4|6]_input node). L3 routes in the table_id for that interface should then be configured as DVR routes, therefore the forwarded packet has the L2 header preserved and togehter the L3 routed system behaves like an L2 bridge. Change-Id: I8effd7e2f4c67ee277b73c7bc79aa3e5a3e34d03 Signed-off-by: Neale Ranns <nranns@cisco.com>
2017-12-14vom: acl: Extend constructor for l3 ruleMohsin Kazmi2-9/+23
New constructor can construct the l3 rule using all or partial paratmeters. Change-Id: I828ec1c4713decb5824e4a73c3692cebc2324cc2 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-12-14vom: acl-list: Add comparison operator - for UTMohsin Kazmi1-0/+12
Change-Id: I341f522b46dd85fb3b1dd43fd125513f16f89171 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-12-13VOM: a couple of print fixesNeale Ranns2-2/+3
Change-Id: I4c22ad08bf8fa3e8f05b8938ff447cafa4eea5b2 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-12-10improve vapi json parser error handlingKlement Sekera1-1/+19
Change-Id: I39b975e6dc3b3ed1f81c1736ed498aee05f6a88b Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-12-09jvpp: include all api files from @top_builddir@/vppMarek Gradzki2-6/+5
Currently: - vpe.api (supported previously) - stats.api - oam.api Change-Id: Iab48d5d142e9a1ea0a4f366352b1d9429cc47309 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-12-09jvpp: do not hardcode event sufixes (VPP-940)Marek Gradzki7-141/+175
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>
2017-12-08vom: acl-l3: Fix pretty print for TCP mask and flagsMohsin Kazmi1-2/+2
Change-Id: If14d1b2d9b73de77321d94f10d48fa1bb04846f6 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-12-08VOM: prefix bit fiddlingNeale Ranns3-19/+130
Change-Id: I4fbf4a574f455628d56e78cefc1a76adc06bc801 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-12-07jvpp: unify notification handlingMarek Gradzki3-23/+7
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>
2017-12-07jvpp: remove special request<>reply mappingsMarek Gradzki10-102/+28
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>
2017-12-02VOM: l2fib: Add bvi flag supportMohsin Kazmi3-13/+29
Change-Id: I03d7508649e80a538fcf9541815e2c29224bc87a Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-12-01VOM: fixes for interface recreate on agent restart and L2 re-bindingNeale Ranns4-10/+24
Change-Id: I14c838ee99f9bc2db66bb2e775039d2cb2e7924f Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-29NAT: Remove old SNAT API (VPP-1070)Matus Fabian1-10/+10
Change-Id: I3d936d456ee27b2e0857843295efb60a9f2d0be7 Signed-off-by: Matus Fabian <matfabia@cisco.com>
2017-11-29VOM: logging, populate and stats fixesNeale Ranns22-251/+372
logging: allow a client to register a callback handler to recieve log messages that way the client can maintain a correctly sequenced log populate: fix the creation of interface and the setting of the handle stats: the reset promise idea is not defined behaviour. Use an eanble/disable command pair Change-Id: I347720bb65df2874c7619e722d593bc863ee2bf1 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-27VOM: favour make_sharedNeale Ranns13-45/+49
Change-Id: I0c5e198049d510f3b3f9a6aefe49c315449768e3 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-25VOM: handle null for iterator in dump cmdNeale Ranns1-2/+21
Change-Id: I2e8743d70a8d8604d370218a73d5f37c2f7c4617 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-24VOM: Additions to allow uses to UT applications that use VOMNeale Ranns51-295/+676
- find object by key - compare objects Change-Id: I36ec8612be9482bcef7ceced2a59f7403f77b3e8 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-22VOM: stats: Associate stat obj to interfaceMohsin Kazmi5-25/+71
Change-Id: Id8b159dd72b92798538a32fe570fb0038d742ef2 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-20Have PAPI find its API definition filesChris Luke1-5/+140
- Add a basic heuristic to have vpp_papi search in several places for the JSON API files. - It's clever enough to work out the path to these files from within several places in the source tree, falling back to the system location as a last resort. Change-Id: I1f823588e5aa0064d545ce4206ab29dbdedc4c7f Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-11-20nowhere to set read_timeoutdongjuan1-2/+2
Change-Id: I8a16f2ba884451ca8028adb91383d57fdf1d9d50 Signed-off-by: dongjuan <dong.juan1@zte.com.cn>
2017-11-17VOM fixes and logger improvementsNeale Ranns7-30/+47
Change-Id: I5e3fa5e098a8ea26dbc3d3a1dc064e3507e33d8e Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-15VOM: interface's handle() retreives from singular instanceNeale Ranns2-0/+11
Change-Id: I262f2113f5805c0f89b615a0383efa8520184dd1 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-15VOM: interface RD update reconfigures L3 bindingsNeale Ranns4-21/+82
Change-Id: I273e1ea28c3c146e4a88d031c790c1cc56dccf00 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-14VOM: bridge-domain learning mode and route help commandsNeale Ranns8-7/+125
Change-Id: I2fa219d6530f1e7a3b8ae32d35a0c60ba57c5129 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-11Handle CPU flags from autotools projectDamjan Marion2-2/+2
Change-Id: Id085c1e3cbc7bf03df02755f9e35896cdb57e9e3 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-11-10Break up vpe.apiNeale Ranns2-2/+2
- makes the VAPI generated file more consumable. - VOM build times improve. Change-Id: I838488930bd23a0d3818adfdffdbca3eead382df Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-10VOM: enum_base - not constexpr to appease coverityNeale Ranns1-23/+23
Change-Id: Id87e245882eab80a85a2883ffdb7a0f3b7f26a75 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-10VOM: memset DHCP hostname in VPP APINeale Ranns1-0/+1
Change-Id: I74886c31f8ceba2561679513560cf5ae46757236 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-09VOM: Inspect: fix the bugMohsin Kazmi1-2/+1
If key is passed without ":", results in segmentation fault. This patch fixes this issue. Change-Id: I4e6bb3431c261cc2ac752b966a11edd7aa3304a0 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-09VOM: Makefile: Fix the execution time initialization orderMohsin Kazmi1-1/+1
When compile with gcc version 4.8.5, the compiler doesn't able to optimize the execution time initialization order. This patch fixes the initialization order. Change-Id: I14eacdf30f7ef481f72452adfc955400e37ae559 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-09VOM logger levels fixNeale Ranns1-4/+4
Change-Id: I0e627adb7846a33ee6e43f66cde648b4ae7f5cd4 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-08jvpp: test measuring number of invocations per time (VPP-619)Matej4-2/+454
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>
2017-11-08VOM rpm build fixesNeale Ranns1-1/+1
Change-Id: I1f76aabecfd7d33b924a4856a4c3fc683b9b8802 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-07Fix include header for cmdsMohsin Kazmi1-0/+2
Change-Id: I4dfdbf7f58af4f37141fa325edf8780b2dc4c8bb Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-06VOM reshuffleNeale Ranns105-3458/+4791
split the VOM into two halves; a top/front-end and a bottom/backend. Only the backend includes the auto-generated VAPI. This serves two purposes: 1 - improves ompile times for VOM, since the VAPI is included only in the backend. 2 - does not expose VAPI to users of VOM Change-Id: I17b93aeaef10c0eba8612016d9034aca5628d9f7 Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-11-05Fix coverity warnings in VOM and VAPINeale Ranns6-13/+19
Change-Id: I0db55e079f9b1835668c8efe69e6e6f7f8437b00 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-01VPP-959: Support old version of CFFIOle Troan2-3/+17
Change-Id: I3d3e5dff5b22fca58a50da6a9d0aaf1182e736dd Signed-off-by: Ole Troan <ot@cisco.com>
2017-11-01vom: fix build with gcc7Damjan Marion1-0/+1
Change-Id: I0b5806dd1d8cb45f40354cfe6cae7f4e76309f92 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-11-01VOM fixes for 9090 - ships in the night commitsNeale Ranns4-43/+10
Change-Id: I4b03a4f86a7e0e47874715398ca9f8ff0f5386ee Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2017-11-01VPP Object Model (VOM)Neale Ranns111-2/+21599
The VOM is a C++ library for use by clients/agents of VPP for programming state. It uses the binary APIs to do so. Various other common client side functions are also provided. Please see om.hpp for a more detailed description. Change-Id: Ib756bfe99817093815a9e26ccf464aa5583fc523 Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Co-authored-by: Mohsin Kazmi <sykazmi@cisco.com>
2017-10-31VPP PAPI: Error in unserializer for non-array compound types.Ole Troan1-0/+1
A bug in the decoder of messages when there was a non-array compound type. The typical result was an error message from the struct library: "error:unpack_from requires a buffer of at least 4 bytes" Change-Id: Ie30fec6fc39b9f4177b54fa4adc4fc69674f0e12 Signed-off-by: Ole Troan <ot@cisco.com>
2017-10-30jvpp: bugfix for deadlock in java future API (VPP-1037)Matej3-72/+160
- 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>
2017-10-25VPP-1033: Python API support arbitrary sized input parameters.Ole Troan1-13/+49
Dynamically calculate the required buffer size to pack into based on message definition. Also add input parameter length checking. Change-Id: I7633bec596e4833bb328fbf63a65b866c7985de5 Signed-off-by: Ole Troan <ot@cisco.com>
2017-10-16jvpp: stop plugin intialization on first mismatchMarek Gradzki9-12/+15
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>
2017-10-10jvpp: adding callbacks for all messages (VPP-914)Matej Perina21-147/+171
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>
2017-10-03jvpp: added logs for sending and receiving event messages (VPP-982)Matej Perina5-0/+30
Change-Id: I47f9d12d934378f18c6f841b902af2a64ee7b187 Signed-off-by: Matej Perina <mperina@cisco.com>
2017-10-03Repair vlib API socket serverDave Barach2-1/+38
- Teach vpp_api_test to send/receive API messages over sockets - Add memfd-based shared memory - Add api messages to create memfd-based shared memory segments - vpp_api_test supports both socket and shared memory segment connections - vpp_api_test pivot from socket to shared memory API messaging - add socket client support to libvlibclient.so - dead client reaper sends ping messages, container-friendly - dead client reaper falls back to kill (<pid>, 0) live checking if e.g. a python app goes silent for tens of seconds - handle ping messages in python client support code - teach show api ring about pairwise shared-memory segments - fix ip probing of already resolved destinations (VPP-998) We'll need this work to implement proper host-stack client isolation Change-Id: Ic23b65f75c854d0393d9a2e9d6b122a9551be769 Signed-off-by: Dave Barach <dave@barachs.net> Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Signed-off-by: Florin Coras <fcoras@cisco.com>