summaryrefslogtreecommitdiffstats
path: root/src/plugins/map/map.api
AgeCommit message (Collapse)AuthorFilesLines
2020-07-16adl: move allow/deny list function to pluginDave Barach1-2/+2
Provide binary API compatibility support for the "cop" APIs until vpp 21.01. Change the deprecation date in map.api to vpp 21.01. Type: refactor Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: I0e60d96de4ae9ae4448f134cf257934126f3b760
2020-05-25api: add new stream message conventionOle Troan1-1/+21
Instead of having to wrap dump/detail calls in control ping, send details messages in between a normal reply / request pair. As expressed in the below service statement. Example: service { rpc map_domains_gets returns map_domains_get_reply stream map_domain_details; }; define map_domains_get { u32 client_index; u32 context; u32 cursor; }; define map_domains_get_reply { u32 context; i32 retval; u32 cursor; }; To avoid blocking the main thread for too long, the replies are now sent in client message queue size chunks. The reply message returns VNET_API_ERROR_EAGAIN when there is more to read. The API handler must also include a "cursor" that is used to the next call to the get function. API handler example: REPLY_AND_DETAILS_MACRO (VL_API_MAP_DOMAINS_GET_REPLY, mm->domains, ({ send_domain_details (cursor, rp, mp->context); })); The macro starts from cursor and iterates through the pool until vl_api_process_may_suspend() returns true or the iteration reaches the end of the list. Client Example: cursor = 0 d = [] while True: rv, details = map_domains_get(cursor=cursor) d += details if rv.retval == 0 or rv.retval != -165: break cursor = rv.cursor or the convenience iterator: for x in vpp.details_iter(vpp.api.map_domains_get): pass or list(details_iter(map_domains_get)) Change-Id: Iad9f6b41b0ef886adb584c97708dd91cf552749e Type: feature Signed-off-by: Ole Troan <ot@cisco.com>
2020-04-28tests: move defaults from defaultmapping to .api filesPaul Vinciguerra1-2/+2
facilitates use of papi beyond the tests. Type: improvement Change-Id: I3d502d9130b81a7fb65ee69bb06fe55802b28a27 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-12-07map: use explicit types in apiOle Troan1-2/+3
Type: fix Signed-off-by: Ole Troan <ot@cisco.com> Change-Id: I8f01f9e71c788fbca989d43d5b87da9c33fba0b1
2019-10-09map: use ip6-full-reassembly instead of own codeKlement Sekera1-30/+0
Remove map's implementation of reassembly and use common ip6-full-reassembly functionality. This makes it easier to maintain by removing duplicate code/functionality. Type: refactor Change-Id: I430e888b704e28c100a9ce075d1460cb529e4676 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2019-10-01map: use SVR for MAP-TKlement Sekera1-4/+0
This change is part of an effort to unify reassembly code. By removing shallow virtual reassembly functionality in MAP and using the common vnet provided shallow virtual reassembly, code size and complexity is reduced. Type: refactor Change-Id: Iec8edd039f7b967b53e17bb9bca228a8b452ac0c Signed-off-by: Klement Sekera <ksekera@cisco.com>
2019-09-03api: enforce vla is last and fixed string typeOle Troan1-3/+3
Enforce that variable length fields are the last element of API messages. Add a 'fixed' version of string type, since dealing with multiple variable length strings turned out too painful for the C language bindings. The string type is now: { string name[64]; // NUL terminated C-string. Essentially decays to u8 name[64] string name[]; // Variable length string with embedded len field (vl_api_string_t) }; The latter notation could be made available to other types as well. e.g. { vl_api_address_t addresses[]; } instead of { u32 n_addr; vl_api_address_t addresses[n_addr]; }; Type: fix Change-Id: I18fa17ef47227633752ab50453e8d20a652a9f9b Signed-off-by: Ole Troan <ot@cisco.com>
2019-08-19vppapigen map: raise ValueError when fieldname is python keywordPaul Vinciguerra1-5/+5
When working on the lb api, one of the field names was chosen as 'as' (application server). Since 'as' is a python keyword, the field was renamed to _1 in vpp_papi. This changeset instead fails early with a descriptive message, hopefully saving others time troubleshooting the issue. ValueError: Fieldname 'as' is a python keyword and is not accessible via the python API. Type: feature Change-Id: Ib048d97de0e392645540092e356cf8989848c947 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-05-29map: Use vl_api_string macros.Paul Vinciguerra1-4/+4
* Add optional tag to api call in tests * Add test for map_domain_dump() for api code coverage. Type: fix Change-Id: I2f7784aecdca4bf9e94de3319f959786e3d2c607 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2019-03-19MAP: Add optional user-supplied 'tag' field in MAPs.Jon Loeliger1-1/+17
Like other entities, allow an arbitrray user-supplied 'tag' field to be place on created MAP domains. It is also later returned with the MAP details. You might be thinking "User assigned MAP name" here. As the MAP domain structure was at the limit of a cacheline size, introduce a parallel "extra data" vector with non-essential domain information in it. Change-Id: Icc12b64cc4cb3e040c9a475908b19f6abaf4c293 Signed-off-by: Jon Loeliger <jdl@netgate.com>
2018-12-21MAP: Convert from DPO to input feature.Jon Loeliger1-4/+1
Change-Id: I25c86aea23dff19656449b23133db27b1f062ac0 Signed-off-by: Jon Loeliger <jdl@netgate.com> Signed-off-by: Ole Troan <ot@cisco.com>
2018-12-19MAP: Add API support for MAP input feature.Jon Loeliger1-0/+29
Change-Id: I336919a1d3a9d1b404e375a30575cce5e5335137 Signed-off-by: Jon Loeliger <jdl@netgate.com>
2018-12-11MAP: Add API support for setting parameters.Jon Loeliger1-1/+168
Change-Id: Ic67073e1f2ebe54bee5cb96a951eb92a28b1de06 Signed-off-by: Jon Loeliger <jdl@netgate.com>
2018-11-29MAP: Use bool type in map.api instead of u8.Ole Troan1-5/+5
Change-Id: I4e40bb6d6bf274a27892053f37aeeb81a7278965 Signed-off-by: Ole Troan <ot@cisco.com>
2018-11-22MAP: Use explicit address/prefix types in APIOle Troan1-19/+11
Change-Id: Ic751fecc4a060eedcdb9eaf5d02e1416c838fd63 Signed-off-by: Ole Troan <ot@cisco.com>
2018-06-25MAP: Move MAP-E/T to a plugin.Ole Troan1-0/+163
Only remaining traces of MAP in the src/vnet is now in buffer.h. Awaiting a new buffer opaque API (hint, hint). Change-Id: Ie165561484731f1d7ed6e0f604b43624e06db3f0 Signed-off-by: Ole Troan <ot@cisco.com>