Hi Jon,

On 5/17/17, Jon Loeliger <j...@netgate.com> wrote:
> On Wed, May 17, 2017 at 4:35 PM, Andrew 👽 Yourtchenko <ayour...@gmail.com>
> wrote:
>
>> Jon,
>>
>> No, you are not missing anything, there is a ping missing there indeed...
>> :-)
>>
>
> Hi Andrew,
>
> OK, *phew*.  Not this time then.  Good to know!
>
>
>> At the time I could not figure out how to get the CONTROL_PING to be
>> sent from within the VAT, and since the main use case was
>> programmatic-API driven (I had used VAT primarily during the initial
>> debugging/sanity checks), it fell through the cracks. Appears the
>> solution is not trivial though - the SNAT plugin seems to define its
>> own CONTROL_PING flavour ping, with its own reply code which is
>> exactly the same as the "real" CONTROL_PING handler...
>>
>> That seems a bit wasteful....
>>
>
> There are two competing factors at work there.
>
> One can not #include both the VPE message enum file and the
> plugin's message enum file.  The issue is conflicting notions of
> the LAST_MESSAGE.
>

Indeed.

> The reason SNAT has its own CONTROL_PING is so that when the
> plugin is used in stand-alone testing, it can have a CONTROL_PING
> to coordinate its DUMP messaging synchronization.
>
> Technically, it doesn't need to have its own; it could use the CONTROL_PING
> from VPE, except for the stand-alone case where it wouldn't be present.
>

Oh, interesting! I had assumed the CONTROL_PING message is always
present... Do you have any more pointers about such "standalone"
deployment scenario ? What other facilities will be missing in that
case ?

> I wrote a simple interface to the VPE control ping like this:
>
> int vmgmt_control_ping_sync(void)
> {
>         vl_api_control_ping_t *mp_ping;
>         int ret;
>
>         vmgmt_msg_alloc(VL_API_CONTROL_PING, mp_ping);
>         vmgmt_msg_send((u8 *)&mp_ping);
>
>         ret = vmgmt_msg_wait();
>
>         return ret;
> }
>
> and have used that in the ACL code to gain synchronization with
> its REPLY and DETAILS handlers.
>
> But, for ACL to continue to have a standalone testing mechanism,
> I think it will need to have its own ACL_CONTROL_PING added
> just like SNAT does.
>
> I am pretty sure this will generalize to all of the VPP plugins that
> send/receive messages.

Ok, cool... If there is a compelling reason to have ACL_CONTROL_PING
added, why not... would you like to push it to gerrit ?

This does technically qualify as an "API change" - although, I think
since the functionality is fully compatible, we would probably be ok
with bumping just the minor version...

--a

>
> HTH,
> jdl
>
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to