Hoi, Currently, linux-cp API doesn't seem to work, at least in Python and GoVPP (see previous threads on this mailinglist with bugreports), lcp_itf_pair_add_del_v2() eventually succeeds but throws an error to the caller. This snippet:
r = vpp.api.create_loopback() print(r) host_if_name = "loop%d" % r.sw_if_index t=0 ## LCP_API_ITF_HOST_TAP n="dataplane" r = vpp.api.lcp_itf_pair_add_del_v2(is_add=True, sw_if_index=r.sw_if_index, host_if_name=host_if_name, host_if_type=t, namespace=n) print(r) Shows as log, the following: create_loopback_reply(_0=758, context=3, retval=0, sw_if_index=10) ### hangs for a few seconds ... Traceback (most recent call last): File "./v3.py", line 35, in <module> r = vpp.api.lcp_itf_pair_add_del_v2(is_add=True, sw_if_index=r.sw_if_index, host_if_name=host_if_name, host_if_type=t, namespace=n) File "/usr/lib/python3/dist-packages/vpp_papi/vpp_papi.py", line 121, in __call__ return self._func(**kwargs) File "/usr/lib/python3/dist-packages/vpp_papi/vpp_papi.py", line 495, in f return self._call_vpp(i, msg, multipart, **kwargs) File "/usr/lib/python3/dist-packages/vpp_papi/vpp_papi.py", line 757, in _call_vpp raise VPPIOError(2, 'VPP API client: read failed') vpp_papi.vpp_papi.VPPIOError: [Errno 2] VPP API client: read failed Even though the LCP was created: DBGvpp# show lcp lcp default netns dataplane lcp lcp-auto-subint off lcp lcp-sync on itf-pair: [0] GigabitEthernet3/0/0 tap1 e0 29 type tap netns dataplane itf-pair: [1] GigabitEthernet3/0/0.101 tap1.101 servers 33 type tap netns dataplane itf-pair: [2] GigabitEthernet3/0/0.179 tap1.179 ixp 32 type tap netns dataplane itf-pair: [3] loop0 tap6 loop10 34 type tap netns dataplane Matt may have more insights (and Ole at some point tried to help me fix it, also), but if the API is actually busted, I am personally comfortable changing it in-place from s/namespace/netns/ rather than adding a _v3; but that's just one user's opinion. I would defer to +Matthew Smith <mgsm...@netgate.com> as the maintainer of the plugin. groet, Pim On Fri, Jul 15, 2022 at 11:14 AM Andrew Yourtchenko <ayour...@gmail.com> wrote: > Hi Stanislav, > > The api is marked as “Production” so the behavior of checkstyle is there > to protect the users (as for the duplication - it is a choice to do it once > in VPP or in each and every downstream consumer). As for the pure code > exercise - I just did it for the sake of a test, took a grand total of 15 > minutes to add the new message versions. Hardly a massive deal. (We could > probably improve tooling on the lifecycle management of these, though) > > That said - for this specific case - is the presence of the “namespace” > member in a structure within the api a showstopper for you - that is, does > it cause a compilation failure of some sort ? If so - one option is to > mark the APIs as experimental and then change it in-place. It is up to > component owners to decide the policy. > > --a > > On 15 Jul 2022, at 09:39, Stanislav Zaikin <zsta...@gmail.com> wrote: > > > Hello folks, > > According to [0] it should be possible to add breaking changes to vpp api > with incrementing the major version of the api. There's one issue in the > LCP api - a C++ keyword "namespace" is used there and I want to change it > to "netns" and increase a major version. But make checkstyle-api still > fails. Any ideas? > > Of course, I can add new methods _v2 and deprecate the older ones. But > it'd lead to code duplication and still I'd need to wait at least 2 > releases. > > [0] https://wiki.fd.io/view/VPP/API_Versioning > > -- > Best regards > Stanislav Zaikin > > > > > > > -- Pim van Pelt <p...@ipng.nl> PBVP1-RIPE - http://www.ipng.nl/
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#21665): https://lists.fd.io/g/vpp-dev/message/21665 Mute This Topic: https://lists.fd.io/mt/92396431/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-