+1

On 11/8/2019 11:15 AM, Andrew Yourtchenko wrote:
Ah. Well makes sense. But then the solution is simple - rather than disabling *all* the plugins by default, disable individually all plugins you know of “now”.

That way you get the backwards compatibility automatically.

You will still need to be vigilant in case you want to be precise about having “no extra plugins” - but I presume you could put a hook to notify you into the crc job, and update it so it doesn’t notify when it sees that particular plugin.

For bonus points: launch the VPP with and without the “new” plugin, see which API messages it serves and whether you need any of them, and then use that knowledge to automatically update the list.

Unlike an API change, which can have a huge impact radius, the decision about the breaking case of the “chipped off” plugin takes O(1) time when manual (and can be trivially fully automated), so a blocking process does not appear appropriate.

Thoughts ?

--a

On 8 Nov 2019, at 16:51, Vratko Polak -X (vrpolak - PANTHEON TECH SRO at Cisco) <vrpo...@cisco.com> wrote:



> plugins are not disabled by default

So? Default is not minimal, we are explicitly disabling default plugins:

plugins { plugin default { disable } plugin dpdk_plugin.so { enable } }

Vratko.

*From:*vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> *On Behalf Of *Andrew Yourtchenko
*Sent:* Friday, November 8, 2019 4:17 PM
*To:* Vratko Polak -X (vrpolak - PANTHEON TECH SRO at Cisco) <vrpo...@cisco.com>
*Cc:* vpp-api-...@lists.fd.io; vpp-dev@lists.fd.io
*Subject:* Re: [vpp-dev] API and plugins

These “New” plugins are not disabled by default, how comes they are not loaded in your scenario if you say you don’t know about them?

What does the config that experiences problems look like ?

--a



    On 8 Nov 2019, at 14:47, Vratko Polak -X (vrpolak - PANTHEON
    TECHNOLOGIES at Cisco) via Lists.Fd.Io
    <vrpolak=cisco....@lists.fd.io
    <mailto:vrpolak=cisco....@lists.fd.io>> wrote:

    

    <image001.gif>

    Questions: If an API message handler is moved into a different
    plugin,

    does it constitute a (backward incompatible) API change?

    If yes, should we use similar checks and processes as for CRC
    changes?

    Example (not merged yet): sw_interface_ip6nd_ra_config

    is being moved from vnet [0] to plugins/ip6-nd [1].

    Discussion: While section 7 of RFC2544 [2] requires the tests

    to be run with all plugins enabled, CSIT tests are also aimed

    at detecting performance regressions in specific functions,

    which is less noisy when enabling minimal set of plugins needed.

    In order to keep equivalence between configurations

    of performance and functional tests,

    CSIT uses minimal plugin configurations when verifying API
    functionality.

    As ip6-nd is a new plugin introduced in 22819,

    CSIT functional tests are not enabling it,

    which results in the API message to become unrecognized [3] by
    the VPP process.

    The current CRC checks aggregate all messages (with CRCs)

    into a flat list, so the information on which plugin handles a
    message is lost.

    Should we (CSIT) change the checks to track also the implementing
    plugin

    (making 22819 fail the CRC job and triggering API upgrade process
    [4])?

    Note: The issue of changing plugin requirements

    was first encountered in a Change [5],

    which does not touch .api files,

    so even the proposed update of CRC job would not have detected it.

    Vratko.

    [0] https://gerrit.fd.io/r/c/vpp/+/22819/10/src/vnet/ip/ip.api#b253

    [1]
    https://gerrit.fd.io/r/c/vpp/+/22819/10/src/plugins/ip6-nd/ip6_nd.api#93

    [2] https://tools.ietf.org/html/rfc2544

    [3]
    
https://logs.fd.io/production/vex-yul-rot-jenkins-1/vpp-csit-verify-device-master-1n-skx/4129/archives/log.html.gz#s1-s1-s1-s6-s1-t1-k2-k8-k13

    [4]
    
https://github.com/FDio/csit/blob/f7d43390a6ce60284f54cad4e66b66d1ecd4a166/docs/automating_vpp_api_flag_day.rst

    [5] https://gerrit.fd.io/r/c/vpp/+/22980

    -=-=-=-=-=-=-=-=-=-=-=-
    Links: You receive all messages sent to this group.

    View/Reply Online (#14546):
    https://lists.fd.io/g/vpp-dev/message/14546
    Mute This Topic: https://lists.fd.io/mt/47762399/675608
    Group Owner: vpp-dev+ow...@lists.fd.io
    <mailto:vpp-dev+ow...@lists.fd.io>
    Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
     [ayour...@gmail.com]
    -=-=-=-=-=-=-=-=-=-=-=-


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#14549): https://lists.fd.io/g/vpp-dev/message/14549
Mute This Topic: https://lists.fd.io/mt/47762399/675079
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [dwallac...@gmail.com]
-=-=-=-=-=-=-=-=-=-=-=-

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#14552): https://lists.fd.io/g/vpp-dev/message/14552
Mute This Topic: https://lists.fd.io/mt/47762399/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-
  • ... Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco) via Lists.Fd.Io
    • ... Andrew Yourtchenko
      • ... Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco) via Lists.Fd.Io
        • ... Andrew Yourtchenko
          • ... Ole Troan
          • ... Dave Wallace
    • ... Paul Vinciguerra

Reply via email to