I would say that as a community we where advocating LD_PRELOAD'ing TCP shim's for a while - which I would see as being more 10x more invasive than sniffing Netlink messages. :-)

My 2c is that we start with sniffing netlink, and then you open the door to the upstream community about native integration with FD.io VPP.

The netlink/router plugin is serving a real demand for FD.io consumers. We see more ML traffic because of it, than any other VPPSB project.

Ray K

On 05/11/2018 03:06, Florin Coras wrote:
Agreed with Damjan. Why not manage this as a separate project, just like Sweetcomb? Goal for Sandbox was to host plugins that could later convert into fully fledged projects.

Also, can’t netlink/router plugins use the binary APIs instead of, I would assume, raw C FIB APIs? That should simplify code maintenance.

Florin

On Nov 4, 2018, at 6:41 PM, Ni, Hongjun <hongjun...@intel.com <mailto:hongjun...@intel.com>> wrote:

Hi Damjan,
With some talks with customers, they want us to provide two options:
One option is what you mentioned here, routing daemon is integrated with VPP through binary APIs directly.
That is what we plan to do in Sweetcomb project.
Another option is to leverage legacy routing daemon without any change.
That is what vppsb netlink and router plugin have provided.
Since more than ten customers are using this feature,
and staying in vppsb makes it not sync with VPP code change in time.
So I suggest that we move it to VPP main repo.
Thanks,
Hongjun
*From:*Damjan Marion [mailto:dmar...@me.com]
*Sent:*Monday, November 5, 2018 1:32 AM
*To:*Ni, Hongjun <hongjun...@intel.com <mailto:hongjun...@intel.com>>
*Cc:*alp.ars...@xflowresearch.com <mailto:alp.ars...@xflowresearch.com>; Kevin Yan <kevin....@mavenir.com <mailto:kevin....@mavenir.com>>;vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
*Subject:*Re: [E] [vpp-dev] VPPSB Netlink build failing
Personally  i think it should stay in vppsb. I agree we miss integration with open source routing protocol implementation but it should be done natively trough binary APIs  and not with netlink hacks...

—
Damjan


On 4 Nov 2018, at 11:52, Ni, Hongjun <hongjun...@intel.com <mailto:hongjun...@intel.com>> wrote:

    Hi Guys,
    We are working on moving VPPSB Netlink to VPP main repo:
    https://gerrit.fd.io/r/#/c/15062/Port VPPSB's rtnetlink & router
    plugin to VPP main
    This patch is under review and consolidating, but it could work
    well and you can use it.
    Thanks,
    Hongjun
    *From:*vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>[mailto:vpp-dev@lists.fd.io]*On Behalf
    Of*alp.ars...@xflowresearch.com <mailto:alp.ars...@xflowresearch.com>
    *Sent:*Friday, November 2, 2018 6:43 PM
    *To:*'Kevin Yan' <kevin....@mavenir.com
    <mailto:kevin....@mavenir.com>>;vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>
    *Subject:*Re: [E] [vpp-dev] VPPSB Netlink build failing
    Using this command and running the application again, solved the
    issue,
    # rm -rf /dev/shm/*
    Thank you for the help.
    *From:*vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>[mailto:vpp-dev@lists.fd.io]*On Behalf
    Of*alp.ars...@xflowresearch.com <mailto:alp.ars...@xflowresearch.com>
    *Sent:*Friday, November 2, 2018 12:42 PM
    *To:*'Kevin Yan';vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
    *Subject:*Re: [E] [vpp-dev] VPPSB Netlink build failing
    No luck. Getting a seg fault. Will try to build again with
    stable/1810 instead of the master.
    [root@vpp-build bin]# ./vpp -c startup.conf
    vlib_plugin_early_init:361: plugin path
    /vpp/build-root/install-vpp_debug-native/vpp/lib/vpp_plugins
    load_one_plugin:189: Loaded plugin: abf_plugin.so (ACL based
    Forwarding)
    load_one_plugin:189: Loaded plugin: acl_plugin.so (Access Control
    Lists)
    load_one_plugin:189: Loaded plugin: avf_plugin.so (Intel Adaptive
    Virtual Function (AVF) Device Plugin)
    load_one_plugin:191: Loaded plugin: cdp_plugin.so
    load_one_plugin:189: Loaded plugin: dpdk_plugin.so (Data Plane
    Development Kit (DPDK))
    load_one_plugin:189: Loaded plugin: flowprobe_plugin.so (Flow per
    Packet)
    load_one_plugin:189: Loaded plugin: gbp_plugin.so (Group Based Policy)
    load_one_plugin:189: Loaded plugin: gtpu_plugin.so (GTPv1-U)
    load_one_plugin:189: Loaded plugin: igmp_plugin.so (IGMP messaging)
    load_one_plugin:189: Loaded plugin: ila_plugin.so
    (Identifier-locator addressing for IPv6)
    load_one_plugin:189: Loaded plugin: ioam_plugin.so (Inbound OAM)
    load_one_plugin:117: Plugin disabled (default): ixge_plugin.so
    load_one_plugin:189: Loaded plugin: l2e_plugin.so (L2 Emulation)
    load_one_plugin:189: Loaded plugin: lacp_plugin.so (Link
    Aggregation Control Protocol)
    load_one_plugin:189: Loaded plugin: lb_plugin.so (Load Balancer)
    load_one_plugin:189: Loaded plugin: mactime_plugin.so (Time-based
    MAC source-address filter)
    load_one_plugin:189: Loaded plugin: map_plugin.so (Mapping of
    address and port (MAP))
    load_one_plugin:189: Loaded plugin: memif_plugin.so (Packet Memory
    Interface (experimental))
    load_one_plugin:189: Loaded plugin: nat_plugin.so (Network Address
    Translation)
    load_one_plugin:189: Loaded plugin: nsh_plugin.so (Network Service
    Header)
    load_one_plugin:189: Loaded plugin: nsim_plugin.so (network delay
    simulator plugin)
    load_one_plugin:189: Loaded plugin: perfmon_plugin.so (Performance
    monitor plugin)
    load_one_plugin:189: Loaded plugin: pppoe_plugin.so (PPPoE)
    load_one_plugin:189: Loaded plugin: router.so (router)
    load_one_plugin:189: Loaded plugin: srv6ad_plugin.so (Dynamic SRv6
    proxy)
    load_one_plugin:189: Loaded plugin: srv6am_plugin.so (Masquerading
    SRv6 proxy)
    load_one_plugin:189: Loaded plugin: srv6as_plugin.so (Static SRv6
    proxy)
    load_one_plugin:189: Loaded plugin: stn_plugin.so (VPP Steals the
    NIC for Container integration)
    load_one_plugin:189: Loaded plugin: svs_plugin.so (Source VRF Select)
    load_one_plugin:189: Loaded plugin: tlsopenssl_plugin.so (openssl
    based TLS Engine)
    load_one_plugin:117: Plugin disabled (default): unittest_plugin.so
    load_one_plugin:189: Loaded plugin: vmxnet3_plugin.so (VMWare
    Vmxnet3 Device Plugin)
    ./vpp[15923]: svm_map_region:766: region /global_vm mutex held by
    dead pid 15806, tag 2, force unlock
    ./vpp[15923]: svm_map_region:774: recovery: attempt to re-lock region
    Segmentation fault
    *From:*vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>[mailto:vpp-dev@lists.fd.io]*On Behalf
    Of*Kevin Yan
    *Sent:*Friday, November 2, 2018 12:28 PM
    *To:*alp.ars...@xflowresearch.com
    <mailto:alp.ars...@xflowresearch.com>;vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>
    *Subject:*Re: [E] [vpp-dev] VPPSB Netlink build failing
I think rpm packages can be generated but I never tried that, just use “make run ” or “vpp -c /etc/vpp/startup.conf” to start
    vpp,  the additional thing you should do is just copy router.so to
    the default plugin location.
    *From:*alp.ars...@xflowresearch.com
    <mailto:alp.ars...@xflowresearch.com>[mailto:alp.ars...@xflowresearch.com]
    *Sent:*Friday, November 02, 2018 3:17 PM
    *To:*Kevin Yan <kevin....@mavenir.com
    <mailto:kevin....@mavenir.com>>;vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>
    *Subject:*RE: [E] [vpp-dev] VPPSB Netlink build failing
    Yes, did that and its compiling. Thanks.
    One question, after the build is completed, how do I install it to
    my system? I can see the install directory with all the binaries,
    but how do I get them to proper locations, like I would if I
    installed using the rpms.
    *From:*vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>[mailto:vpp-dev@lists.fd.io]*On Behalf
    Of*Kevin Yan
    *Sent:*Friday, November 2, 2018 12:16 PM
    *To:*alp.ars...@xflowresearch.com
    <mailto:alp.ars...@xflowresearch.com>;vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>
    *Subject:*Re: [E] [vpp-dev] VPPSB Netlink build failing
    And also remove
    else if (r->rtm.rtm_family == AF_MPLS)
    part
    *From:*Kevin Yan
    *Sent:*Friday, November 02, 2018 3:15 PM
    *To:*'alp.ars...@xflowresearch.com
    <mailto:alp.ars...@xflowresearch.com>'
    <alp.ars...@xflowresearch.com
    <mailto:alp.ars...@xflowresearch.com>>;vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>
    *Subject:*RE: [E] [vpp-dev] VPPSB Netlink build failing
    for(int i = 1; label != 0; i++)

    change to :
    int I;
    for(i = 1; label != 0; i++)
    *From:*alp.ars...@xflowresearch.com
    <mailto:alp.ars...@xflowresearch.com>[mailto:alp.ars...@xflowresearch.com]
    *Sent:*Friday, November 02, 2018 3:11 PM
    *To:*Kevin Yan <kevin....@mavenir.com
    <mailto:kevin....@mavenir.com>>;vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>
    *Subject:*RE: [E] [vpp-dev] VPPSB Netlink build failing
    Tried removing both macros (RTNLGRP_MPLS_ROUTE & RTA_VIA), failed
    with another MPLS related error in the router plugin.
    make[1]: Entering directory
    `/vpp/build-root/build-vpp_debug-native/router'
      CC       router/tap_inject_netlink.lo
    /vpp/build-data/../router/router/tap_inject_netlink.c: In function
    'get_mpls_label_stack':
    /vpp/build-data/../router/router/tap_inject_netlink.c:154:3:
    error: 'for' loop initial declarations are only allowed in C99 mode
       for(int i = 1; label != 0; i++) {
       ^
    /vpp/build-data/../router/router/tap_inject_netlink.c:154:3: note:
    use option -std=c99 or -std=gnu99 to compile your code
    /vpp/build-data/../router/router/tap_inject_netlink.c: In function
    'add_del_route':
    /vpp/build-data/../router/router/tap_inject_netlink.c:200:9:
    error: 'for' loop initial declarations are only allowed in C99 mode
             for(int i = 0; i < MPLS_STACK_DEPTH && stack[i] != 0; i++) {
             ^
    /vpp/build-data/../router/router/tap_inject_netlink.c:228:33:
    error: 'AF_MPLS' undeclared (first use in this function)
       else if (r->rtm.rtm_family == AF_MPLS)
                                     ^
    /vpp/build-data/../router/router/tap_inject_netlink.c:228:33:
    note: each undeclared identifier is reported only once for each
    function it appears in
    In file included from
    /vpp/build-root/install-vpp_debug-native/vpp/include/vppinfra/mem.h:55:0,
                     from
    /vpp/build-root/install-vpp_debug-native/vpp/include/vppinfra/vec.h:42,
                     from
    /vpp/build-root/install-vpp_debug-native/vpp/include/vppinfra/format.h:44,
                     from
    /vpp/build-root/install-vpp_debug-native/vpp/include/vppinfra/elf.h:41,
                     from
    /vpp/build-root/install-vpp_debug-native/vpp/include/vppinfra/elf_clib.h:41,
                     from
    /vpp/build-root/install-vpp_debug-native/vpp/include/vlib/vlib.h:44,
                     from
    /vpp/build-root/install-vpp_debug-native/netlink/include/librtnl/netns.h:19,
                     from
    /vpp/build-data/../router/router/tap_inject_netlink.c:17:
    /vpp/build-data/../router/router/tap_inject_netlink.c:241:44:
    error: dereferencing pointer to incomplete type
           clib_memcpy (&rpath.frp_addr.ip4, via->rtvia_addr, sizeof
    (rpath.frp_addr.ip4));
                                                ^
    
/vpp/build-root/install-vpp_debug-native/vpp/include/vppinfra/string.h:153:48:
    note: in definition of macro 'clib_memcpy'
    #define clib_memcpy(d,s,n) memcpy_s_inline(d,n,s,n)
                                                    ^
    make[1]: *** [router/tap_inject_netlink.lo] Error 1
    make[1]: Leaving directory
    `/vpp/build-root/build-vpp_debug-native/router'
    make: *** [router-build] Error 2
    It is compiling after I removed the whole else block, not sure how
    it will affect the plugin.
    One question, after the build is completed, how do I install it to
    my system? I can see the install directory with all the binaries,
    but how do I get them to proper locations, like I would if I
    installed using the rpms.
    *From:*vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>[mailto:vpp-dev@lists.fd.io]*On Behalf
    Of*Kevin Yan
    *Sent:*Friday, November 2, 2018 11:38 AM
    *To:*alp.ars...@xflowresearch.com
    <mailto:alp.ars...@xflowresearch.com>;vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>
    *Subject:*Re: [E] [vpp-dev] VPPSB Netlink build failing
    I also met this error when compiling vppsb on centos, just remove
    the MPLS related macro,and re-compile
    *From:*vpp-dev@lists.fd.io
    <mailto:vpp-dev@lists.fd.io>[mailto:vpp-dev@lists.fd.io]*On Behalf
    Of*alp.ars...@xflowresearch.com <mailto:alp.ars...@xflowresearch.com>
    *Sent:*Friday, November 02, 2018 1:55 PM
    *To:*vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
    *Subject:*[E] [vpp-dev] VPPSB Netlink build failing
    Dear All,
    I am trying to build the latest VPP with router and netlink
    plugins on CentOS 7.5. Here are the steps that I followed.
    # cd /vpp
    # ln -sf /vppsb/router/
    # ln -sf /vppsb/netlink/
    # ln -sf /vppsb/router/router.mk build-data/packages/
    # ln -sf /vppsb/netlink/netlink.mk build-data/packages/
    #
    # make V=0 PLATFORM=vpp TAG=vpp_debug netlink-install router-install
    The command fails with the following error:
    make[1]: Entering directory
    `/vpp/build-root/build-vpp_debug-native/netlink'
      CC       librtnl/netns.lo
      CC       librtnl/rtnl.lo
    /vpp/build-data/../netlink/librtnl/rtnl.c: In function
    'rtnl_socket_open':
    /vpp/build-data/../netlink/librtnl/rtnl.c:269:39: error:
    'RTNLGRP_MPLS_ROUTE' undeclared (first use in this function)
         grpmask(RTNLGRP_NOTIFY) | grpmask(RTNLGRP_MPLS_ROUTE),
                                           ^
    /vpp/build-data/../netlink/librtnl/rtnl.c:269:39: note: each
    undeclared identifier is reported only once for each function it
    appears in
    /vpp/build-data/../netlink/librtnl/netns.c:69:5: error: 'RTA_VIA'
    undeclared here (not in a function)
       _(RTA_VIA, via, 1)                            \
         ^
    /vpp/build-data/../netlink/librtnl/netns.c:82:13: note: in
    definition of macro '_'
         .type = t, .unique = u,                     \
                 ^
    /vpp/build-data/../netlink/librtnl/netns.c:86:3: note: in
    expansion of macro 'ns_foreach_rta'
       ns_foreach_rta
       ^
    make[1]: *** [librtnl/rtnl.lo] Error 1
    make[1]: *** Waiting for unfinished jobs....
    make[1]: *** [librtnl/netns.lo] Error 1
    make[1]: Leaving directory
    `/vpp/build-root/build-vpp_debug-native/netlink'
    make: *** [netlink-build] Error 2
    Can anyone help me with this? Or point me towards the versions of
    VPP and VPPSB where they are working with each other.
    Regards,
    Alp Arslan
    ------------------------------------------------------------------------
    This e-mail message may contain confidential or proprietary
    information of Mavenir Systems, Inc. or its affiliates and is
    intended solely for the use of the intended recipient(s). If you
    are not the intended recipient of this message, you are hereby
    notified that any review, use or distribution of this information
    is absolutely prohibited and we request that you delete all copies
    in your control and contact us by e-mailing tosecur...@mavenir.com
    <mailto:secur...@mavenir.com>. This message contains the views of
    its author and may not necessarily reflect the views of Mavenir
    Systems, Inc. or its affiliates, who employ systems to monitor
    email messages, but make no representation that such messages are
    authorized, secure, uncompromised, or free from computer viruses,
    malware, or other defects. Thank You
    ------------------------------------------------------------------------
    This e-mail message may contain confidential or proprietary
    information of Mavenir Systems, Inc. or its affiliates and is
    intended solely for the use of the intended recipient(s). If you
    are not the intended recipient of this message, you are hereby
    notified that any review, use or distribution of this information
    is absolutely prohibited and we request that you delete all copies
    in your control and contact us by e-mailing tosecur...@mavenir.com
    <mailto:secur...@mavenir.com>. This message contains the views of
    its author and may not necessarily reflect the views of Mavenir
    Systems, Inc. or its affiliates, who employ systems to monitor
    email messages, but make no representation that such messages are
    authorized, secure, uncompromised, or free from computer viruses,
    malware, or other defects. Thank You
    ------------------------------------------------------------------------
    This e-mail message may contain confidential or proprietary
    information of Mavenir Systems, Inc. or its affiliates and is
    intended solely for the use of the intended recipient(s). If you
    are not the intended recipient of this message, you are hereby
    notified that any review, use or distribution of this information
    is absolutely prohibited and we request that you delete all copies
    in your control and contact us by e-mailing tosecur...@mavenir.com
    <mailto:secur...@mavenir.com>. This message contains the views of
    its author and may not necessarily reflect the views of Mavenir
    Systems, Inc. or its affiliates, who employ systems to monitor
    email messages, but make no representation that such messages are
    authorized, secure, uncompromised, or free from computer viruses,
    malware, or other defects. Thank You

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

    View/Reply Online (#11086):https://lists.fd.io/g/vpp-dev/message/11086
    Mute This Topic:https://lists.fd.io/mt/27825214/675642
    Group Owner:vpp-dev+ow...@lists.fd.io
    <mailto:vpp-dev+ow...@lists.fd.io>
    Unsubscribe:https://lists.fd.io/g/vpp-dev/unsub [dmar...@me.com
    <mailto:dmar...@me.com>]
    -=-=-=-=-=-=-=-=-=-=-=-

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

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



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

View/Reply Online (#11090): https://lists.fd.io/g/vpp-dev/message/11090
Mute This Topic: https://lists.fd.io/mt/27825214/675355
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [m...@ashroe.eu]
-=-=-=-=-=-=-=-=-=-=-=-

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

View/Reply Online (#11119): https://lists.fd.io/g/vpp-dev/message/11119
Mute This Topic: https://lists.fd.io/mt/27825214/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to