summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2019-03-21Fixup build with golang 1.12Nicolas PLANEL2-6/+6
_Ctype_ direct call are prohibited, use C namespace instead. Change-Id: Ifd77469e15a10ce8381b8308282d549c62f1318c Signed-off-by: Nicolas PLANEL <nplanel@redhat.com>
2019-03-20fixup race on ch.reqChanNicolas PLANEL1-4/+1
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>
2019-03-08Add socketclient implementationOndrej Fabry6-8/+1523
Change-Id: Ibf9edc0e5911d08229ac590b37c5afbc27f424a0 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2019-02-19Introduce higer-level API for retrieving statisticsOndrej Fabry8-32/+649
- see stats-api example Change-Id: I11d29d32b60d25238e75cb6b86ee34842348ab38 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2019-02-08Add support for using multiple generated versionsOndrej Fabry15-88/+411
- 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>
2019-02-08Generator improvements and cleanupOndrej Fabry25-8163/+348
- 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>
2019-02-07Mock VPP adapter nitbrecode1-1/+1
- change the api reference from api.GetAllMessages() to GetRegisteredMessages() Change-Id: I8ba43b7640f3482e8398dd1e35dd74d71de0fc4e Signed-off-by: Nikos Bregiannis <nikos.bre@gmail.com>
2019-01-31Merge "Generator improvements"Rastislav Szabo15-4291/+4361
2019-01-31Generator improvementsOndrej Fabry15-4291/+4361
- 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>
2019-01-31Update VPPApi error listOndrej Fabry1-2/+8
Change-Id: I6e2ff140b3742774dc37d58e332eea372b089234 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2019-01-15added mock adapter for new VPP statsVladimir Lavor3-0/+75
Change-Id: I9d6cf28fcde79ba648321cbd92941ee7ef8e0812 Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
2019-01-10Add support for string typesOndrej Fabry323-79674/+655
- 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>
2019-01-02added support for string typeVladimir Lavor2-13/+11
Change-Id: I2de04fba137004d1d7148ae910e9ccbd47589611 Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
2018-12-13Merge "Add support for aliases and boolean type"Rastislav Szabo23-7878/+12781
2018-12-13Add support for aliases and boolean typeOndrej Fabry23-7878/+12781
- 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>
2018-11-20Merge "Rename skipzero flag to all"Ondrej Fabry1-4/+4
2018-11-19Merge "Update libmemif adapter with changes in vpp"Rastislav Szabo2-37/+42
2018-11-17Rename skipzero flag to allOndrej Fabry1-4/+4
Change-Id: I3ec848c3c7ba00481f6642c01e446bba935abf5b Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-11-17Improve Stats API example and add READMEOndrej Fabry2-17/+159
Change-Id: If25c7d05c42fbed6c43558f84fb86aca6c5af4d5 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-11-07Update libmemif adapter with changes in vppTomas Slusny2-37/+42
- 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>
2018-11-06Merge "Fix compilation failure in libmemif adapter.go"Ondrej Fabry1-2/+2
2018-11-06Fix compilation failure in libmemif adapter.goSerguei Bezverkhi1-2/+2
Change-Id: I39704999503bb4e61f6f0abe8aede5d1d569e5b7 Signed-off-by: Serguei Bezverkhi <sbezverk@cisco.com>
2018-10-23Remove the global variable for connectionOndrej Fabry2-52/+20
- 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>
2018-10-23Unexport adapter implementations to make it clear that API interfaces should ↵Ondrej Fabry4-43/+54
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>
2018-10-22Merge "Introduce StatsAPI and it's initial implementation"Ondrej Fabry14-122/+640
2018-10-22Introduce StatsAPI and it's initial implementationOndrej Fabry14-122/+640
- this implementation is basically Go wrapper around VPP's vppapiclient C library Change-Id: I6f53dc3e228868834bf3a8a00c686ad05e22f3dd Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-10-10Merge "Add .gitreview"Rastislav Szabo1-0/+4
2018-10-03Omit message factory and line numbers from generated outputOndrej Fabry13-1121/+105
Change-Id: Ie48cc0a641242625daf55caf00ab630e78aa86b7 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-09-12Recover possible panic in EncodeMsg and improve debug logsOndrej Fabry3-23/+89
Change-Id: I771c171ae30a957f4436e7f4ba834d8a38d02f80 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-09-05Copy data in msg callbackOndrej Fabry1-2/+3
Change-Id: I642b0f586a57101633982bcee5bad187a0749090 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-08-24Add .gitreviewVanessa Rene Valderrama1-0/+4
Adding .gitreview file Change-Id: Ia0c12ffcb142db370107ea8823a8355462b24372 Signed-off-by: Vanessa Rene Valderrama <vvalderrama@linuxfoundation.org>
2018-08-24Simplify subscribing to events and fix eventsOndrej Fabry24-765/+528
- 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>
2018-08-22Show VPPApiError value always and remove RegisterBinAPITypes for mock adapterOndrej Fabry7-61/+88
Change-Id: I3b216748df1a372f25cc94e3df5d7b1b2b7a8a40 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-08-21Make the warnings for validating services more obviousOndrej Fabry4-125/+169
- 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>
2018-08-21Fix perf-bench exampleOndrej Fabry3-44/+1188
Change-Id: I62a7a27adbb44b9d8070b448c17bb7781b0637fe Signed-off-by: Ondrej Fabry <ondrej.fabry@pantheon.tech>
2018-08-16Refactor GoVPPOndrej Fabry45-4538/+9178
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>
2018-07-16Merge "Add support for jumbo frames to libmemif"Rastislav Szabo4-37/+372
2018-07-09Merge "make api.Channel as interface"Rastislav Szabo16-496/+547
2018-07-06Add support for jumbo frames to libmemifTomas Slusny4-37/+372
Add support for frames larger than maximum buffer size to libmemif adapter. Change-Id: I8b2d9fe7e05328194cd0aafd6e3ab40392ebbfed Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2018-07-06make api.Channel as interfaceVladimir Lavor16-496/+547
Change-Id: I052d241ab09043b1195beebeee99df4d8536621f Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
2018-07-02Add gopacket adapter for libmemifTomas Slusny4-1/+573
Add simple PacketHandle adapter for gopacket PacketDataSource + add writePacketData convenience method to it. Change-Id: I2280db33076c497c9b63fd107b6d77ecf85dd23b Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2018-07-02Add compatibility with libmemif 2Milan Lenco3-31/+39
Change-Id: Iff143c7aeb973b3f8629a7412bb956c1b8f8f81d Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2018-06-27mock adapter: Group all replies for one request under one call to MockReplyMilan Lenco4-122/+222
Sequence numbers are now used to match requests with replies. Mock adapter thus has to be able to tell how many messages from the head of the queue with mock replies belong to the currently processed request. Then they can be given the right context and the rest of the queued replies are postponed to be delivered later (when context of their request is known). All replies for one request are now therefore queued together. This affects just multipart requests for which replies have to be pushed all at once. The trailling control ping reply is still queued separately, however, because that is actualy another request, e.g.: mockVpp.MockReply( // push multipart messages all at once &interfaces.SwInterfaceDetails{SwIfIndex:1}, &interfaces.SwInterfaceDetails{SwIfIndex:2}, &interfaces.SwInterfaceDetails{SwIfIndex:3}, ) mockVpp.MockReply(&vpe.ControlPingReply{}) Even if the multipart request has no replies, MockReply has to be called exactly twice: mockVpp.MockReply() // zero multipart messages mockVpp.MockReply(&vpe.ControlPingReply{}) Change-Id: I28c15d2f52d14dca0b7fb06033d7270a7da2bde6 Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
2018-06-26Pair requests with replies using sequence numbersMilan Lenco8-170/+508
Requests are given sequence numbers (cycling over a finite set of 2^16 integers) that are stored into the lower 16bits of the context. 1bit is also allocated for isMultipart boolean flag and the remaining 15bits are used to store the channel ID. The sequence numbers allow to reliably pair replies with requests, even in scenarious with timeouted requests or ignored (unread) replies. Sequencing is not used with asynchronous messaging as it is implemented by methods of the Channel structure, i.e. above ReqChan and ReplyChan channels. Change-Id: I7ca0e8489c7ffcc388c3cfef6d05c02f9500931c Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
2018-06-12Fix empty adapterOndrej Fabry1-3/+3
Change-Id: I4472aeb5f8ceb682c8520723ae094fc1cd306b3d Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-05-31Improve handling of probes on timeoutsOndrej Fabry2-27/+74
Change-Id: If94059586d4be739d6c8ae7843cfaf3bc90a5323 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-05-02support for shm prefixesVladimir Lavor5-24/+39
Change-Id: I279653deb9911862d29143269aea5dffbd564478 Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
2018-04-13Fix missing lock in LookupByIDOndrej Fabry1-0/+3
Change-Id: I699052d179c98ad3a29218fa33fafef0affb97a6 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-04-12Add warning message when health check failsOndrej Fabry1-1/+2
Change-Id: I89d465ec9395eeb298a6ca209a8a0fff9107674e Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-04-05Lookup message name by ID when receiving unexpected messageOndrej Fabry5-20/+71
Change-Id: I693e8084b7e3f036dec5e557dc772857bb7d5f3d Signed-off-by: Ondrej Fabry <ofabry@cisco.com>