aboutsummaryrefslogtreecommitdiffstats
path: root/adapter/mock
AgeCommit message (Collapse)AuthorFilesLines
2020-09-02fixed data race in mock vpp adapterSergey Elantsev1-1/+4
There was a race in reading VppAdapter.mode in SendMsg and writing in MockReply/MockReplyHandler/MockReplyWithContext. All these *Reply* methods hold VppAdapter.repliesLock, so this fix uses this lock to safely read the value of a mode field. Signed-off-by: Sergey Elantsev <elantsev.s@yandex.ru> Change-Id: I6c8873b766df6ea866196a9b96a48ebd08689772
2020-07-17Improve binapi generatorOndrej Fabry1-30/+56
- simplified Size/Marshal/Unmarshal methods - replace struc in unions with custom marshal/unmarshal - fix imports in generated files - fix mock adapter - generate rpc service using low-level stream API (dumps generate control ping or stream msg..) - move examples/binapi to binapi and generate all API for latest release - add binapigen.Plugin for developing custom generator plugins - optionally generate HTTP handlers (REST API) for RPC services - add govpp program for browsing VPP API Change-Id: I092e9ed2b0c17972b3476463c3d4b14dd76ed42b Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2019-10-03Optimizations for statsclientOndrej Fabry1-6/+24
- this dramatically improves performance for stats data collection - memory allocation is now done only when stat dirs change - updating prepared stat dir does not need to allocate memory - created integration test for testing stats client - added NumWorkerThreads and VectorRatePerWorker to SystemStats - added ReduceSimpleCounterStatIndex, ReduceCombinedCounterStatIndex for aggregating specific index Change-Id: I702731a69024ab5dd0832bb5cfe2773a987359e5 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2019-09-09add MockClearReplyHandlers() api for mock vpp adapterRavi Raju1-0/+10
Change-Id: I12285c77c9cf09a24c957a777b26ae54f082f317 Signed-off-by: Ravi Raju <ravir@employees.org>
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-15added mock adapter for new VPP statsVladimir Lavor2-0/+61
Change-Id: I9d6cf28fcde79ba648321cbd92941ee7ef8e0812 Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
2018-10-22Introduce StatsAPI and it's initial implementationOndrej Fabry1-3/+3
- this implementation is basically Go wrapper around VPP's vppapiclient C library Change-Id: I6f53dc3e228868834bf3a8a00c686ad05e22f3dd Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-08-24Simplify subscribing to events and fix eventsOndrej Fabry1-6/+5
- 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 Fabry1-27/+23
Change-Id: I3b216748df1a372f25cc94e3df5d7b1b2b7a8a40 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-08-16Refactor GoVPPOndrej Fabry1-16/+14
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-06make api.Channel as interfaceVladimir Lavor1-14/+13
Change-Id: I052d241ab09043b1195beebeee99df4d8536621f Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
2018-06-27mock adapter: Group all replies for one request under one call to MockReplyMilan Lenco1-43/+78
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 Lenco1-17/+56
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-03-23Support mocking reply for more multi requests at onceOndrej Fabry1-5/+4
Change-Id: I3610fe1e0c04f4487f6b7139fc62ef4515fad640 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-03-23Make global vars part of mock adapterOndrej Fabry1-34/+43
Change-Id: I30f4c4212a6866ac567c4a00af7feab3d84ad7d6 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2018-01-04Merge "Mock Adapter: Switch back to handlers once the queue is empty."Rastislav Szabo1-0/+5
2017-12-13Remove map usage via pointersOndrej Fabry1-9/+9
Change-Id: Idf2a119e633851ab8e3ddfe17dadca4e96c6a4ac Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2017-12-04Fix events for mock adapterOndrej Fabry1-23/+10
Change-Id: Iee5fa6282e845ed2aef76c9246a9068f3765139c Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2017-11-30Removes unnecessary returned func from WaitReadyOndrej Fabry1-2/+2
Change-Id: I34889c8c79fa8ef7a196f8d067edca7f1cb5ad33 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2017-11-28Add WaitReady to VppAdapterOndrej Fabry1-0/+5
- this fixes issue with mocked adapter during AsyncConnect Change-Id: I952025fec865422f9e83cec9383d96f79a639c90 Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
2017-11-15Mock Adapter: Switch back to handlers once the queue is empty.Milan Lenco1-0/+5
Change-Id: Ifc85a80498521ef218a34072cce470bf32cead9c Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
2017-06-09Fix name of fieldsLukas Macko1-5/+5
Change-Id: I9dd1ab75c3619e6ddc6cf07491491b556b96fb20 Signed-off-by: Lukas Macko <lmacko@cisco.com>
2017-05-25added async connect API, new structure of examplesRastislav Szabo2-4/+4
Change-Id: Iab9bce174596c30998981e02b7030c248c423384 Signed-off-by: Rastislav Szabo <raszabo@cisco.com>
2017-05-22fixed golint issuesRastislav Szabo2-64/+71
Change-Id: I325fa618d8db7a9f1783ec7d208fd7b6e853d9a3 Signed-off-by: Rastislav Szabo <raszabo@cisco.com>
2017-05-17multiple small fixesRastislav Szabo1-4/+11
Change-Id: I9e822ce7e9b9f44f7d074b0294d6eda37c2a0f12 Signed-off-by: Rastislav Szabo <raszabo@cisco.com>
2017-05-04changes import paths from gerrit.fd.io/r/govpp.git to git.fd.io/govpp.gitRastislav Szabo1-3/+3
Signed-off-by: Rastislav Szabo <raszabo@cisco.com>
2017-05-04fixed import pathsRastislav Szabo1-3/+3
Signed-off-by: Rastislav Szabo <raszabo@cisco.com>
2017-05-04initial commitRastislav Szabo2-0/+376
Signed-off-by: Rastislav Szabo <raszabo@cisco.com>