Hi Michael, I came up with a patch that compiles, but I have not tested it. Hopefully it is this simple:
burts@burtvb:~/vppsb/netlink/librtnl$ git diff . diff --git a/netlink/librtnl/rtnl.c b/netlink/librtnl/rtnl.c index 04f0440..fa31617 100644 --- a/netlink/librtnl/rtnl.c +++ b/netlink/librtnl/rtnl.c @@ -31,6 +31,7 @@ #include <sys/types.h> #include <sys/wait.h> +#include <errno.h> #undef DBL_MAX #define DBL_MAX 1000000000.0 @@ -102,7 +103,7 @@ rtnl_cancel_timeout(rtnl_ns_t *ns) ns->timeout = DBL_MAX; } -static clib_error_t *rtnl_read_cb(struct unix_file * f) +static clib_error_t *rtnl_read_cb(struct clib_file * f) { rtnl_main_t *rm = &rtnl_main; vlib_main_t *vm = vlib_get_main(); @@ -138,7 +139,7 @@ int rtnl_dump_request(rtnl_ns_t *ns, int type, void *req, size_t len) static void rtnl_socket_close(rtnl_ns_t *ns) { - unix_file_del(&unix_main, &unix_main.file_pool[ns->unix_index]); + clib_file_del(&file_main, &file_main.file_pool[ns->unix_index]); close(ns->rtnl_socket); } @@ -259,11 +260,11 @@ static int rtnl_socket_open(rtnl_ns_t *ns) return -3; } - unix_file_t template = {0}; + clib_file_t template = {0}; template.read_function = rtnl_read_cb; template.file_descriptor = ns->rtnl_socket; template.private_data = (uword) (ns - rm->streams); - ns->unix_index = unix_file_add (&unix_main, &template); + ns->unix_index = clib_file_add (&file_main, &template); return 0; } On Wed, Sep 27, 2017 at 1:41 PM, Michael Borokhovich <michael...@gmail.com> wrote: > Hi Burt, Pawel, > > Did you eventually manage to install the router plugin with the latest VPP? > > Thanks, > Michael. > > > On Tue, Sep 19, 2017 at 6:05 PM, Burt Silverman <bur...@gmail.com> wrote: > >> Same problem here. I guess the vlib code was updated but the vppsb has >> not caught up. >> >> Burt >> >> On Mon, Sep 18, 2017 at 12:56 PM, Paweł Staszewski <pstaszew...@itcare.pl >> > wrote: >> >>> Trying to add netlink from vppsb to the latest vpp git but : >>> >>> >>> @@@@ Building netlink in /git/vpp/build-root/build-vpp_debug-native/netlink >>> @@@@ >>> make[1]: Entering directory '/git/vpp/build-root/build-vpp >>> _debug-native/netlink' >>> CC librtnl/netns.lo >>> CC librtnl/rtnl.lo >>> CC librtnl/mapper.lo >>> CC test/test.lo >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c:105:42: error: ‘struct >>> unix_file’ declared inside parameter list will not be visible outside of >>> this definition or declaration [-Werror] >>> static clib_error_t *rtnl_read_cb(struct unix_file * f) >>> ^~~~~~~~~ >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c: In function >>> ‘rtnl_read_cb’: >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c:109:33: error: >>> dereferencing pointer to incomplete type ‘struct unix_file’ >>> rtnl_ns_t *ns = &rm->streams[f->private_data]; >>> ^~ >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c: In function >>> ‘rtnl_socket_close’: >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c:141:3: error: implicit >>> declaration of function ‘unix_file_del’ [-Werror=implicit-function-dec >>> laration] >>> unix_file_del(&unix_main, &unix_main.file_pool[ns->unix_index]); >>> ^~~~~~~~~~~~~ >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c:141:39: error: >>> ‘unix_main_t {aka struct <anonymous>}’ has no member named ‘file_pool’ >>> unix_file_del(&unix_main, &unix_main.file_pool[ns->unix_index]); >>> ^ >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c: In function >>> ‘rtnl_socket_open’: >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c:262:3: error: unknown >>> type name ‘unix_file_t’ >>> unix_file_t template = {0}; >>> ^~~~~~~~~~~ >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c:263:11: error: request >>> for member ‘read_function’ in something not a structure or union >>> template.read_function = rtnl_read_cb; >>> ^ >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c:264:11: error: request >>> for member ‘file_descriptor’ in something not a structure or union >>> template.file_descriptor = ns->rtnl_socket; >>> ^ >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c:265:11: error: request >>> for member ‘private_data’ in something not a structure or union >>> template.private_data = (uword) (ns - rm->streams); >>> ^ >>> /git/vpp/build-data/../netlink/librtnl/rtnl.c:266:20: error: implicit >>> declaration of function ‘unix_file_add’ [-Werror=implicit-function-dec >>> laration] >>> ns->unix_index = unix_file_add (&unix_main, &template); >>> ^~~~~~~~~~~~~ >>> cc1: all warnings being treated as errors >>> Makefile:520: recipe for target 'librtnl/rtnl.lo' failed >>> make[1]: *** [librtnl/rtnl.lo] Error 1 >>> make[1]: *** Waiting for unfinished jobs.... >>> /git/vpp/build-data/../netlink/test/test.c: In function >>> ‘mapper_ns_add_command_fn’: >>> /git/vpp/build-data/../netlink/test/test.c:125:14: error: implicit >>> declaration of function ‘ip4_fib_index_from_table_id’ >>> [-Werror=implicit-function-declaration] >>> u32 fib4 = ip4_fib_index_from_table_id(table_id); >>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> /git/vpp/build-data/../netlink/test/test.c:126:14: error: implicit >>> declaration of function ‘ip6_fib_index_from_table_id’ >>> [-Werror=implicit-function-declaration] >>> u32 fib6 = ip6_fib_index_from_table_id(table_id); >>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> cc1: all warnings being treated as errors >>> Makefile:520: recipe for target 'test/test.lo' failed >>> make[1]: *** [test/test.lo] Error 1 >>> make[1]: Leaving directory '/git/vpp/build-root/build-vpp >>> _debug-native/netlink' >>> Makefile:698: recipe for target 'netlink-build' failed >>> make: *** [netlink-build] Error 2 >>> >>> >>> >>> >>> >>> W dniu 2017-09-17 o 16:27, Paweł Staszewski pisze: >>> >>> Also latest vpp from git without including vppsb >>>> >>>> Sep 17 16:28:02 ubuntu systemd[1]: vpp.service: Service hold-off time >>>> over, scheduling restart. >>>> Sep 17 16:28:02 ubuntu systemd[1]: Stopped vector packet processing >>>> engine. >>>> Sep 17 16:28:02 ubuntu systemd[1]: Starting vector packet processing >>>> engine... >>>> Sep 17 16:28:02 ubuntu systemd[1]: Started vector packet processing >>>> engine. >>>> Sep 17 16:28:02 ubuntu vpp[1557]: vlib_plugin_early_init:356: plugin >>>> path /usr/lib/vpp_plugins >>>> Sep 17 16:28:02 ubuntu vpp[1557]: load_one_plugin:184: Loaded plugin: >>>> acl_plugin.so (Access Control Lists) >>>> Sep 17 16:28:02 ubuntu vpp[1557]: load_one_plugin:142: >>>> /usr/lib/vpp_plugins/dpdk_plugin.so: undefined symbol: >>>> aes_gcm_enc_128_sse >>>> Sep 17 16:28:02 ubuntu vpp[1557]: load_one_plugin:143: Failed to load >>>> plugin 'dpdk_plugin.so' >>>> Sep 17 16:28:02 ubuntu systemd[1]: vpp.service: Main process exited, >>>> code=dumped, status=6/ABRT >>>> Sep 17 16:28:02 ubuntu systemd[1]: vpp.service: Unit entered failed >>>> state. >>>> Sep 17 16:28:02 ubuntu systemd[1]: vpp.service: Failed with result >>>> 'core-dump'. >>>> Sep 17 16:28:02 ubuntu systemd[1]: vpp.service: Service hold-off time >>>> over, scheduling restart. >>>> Sep 17 16:28:02 ubuntu systemd[1]: Stopped vector packet processing >>>> engine. >>>> Sep 17 16:28:02 ubuntu systemd[1]: Starting vector packet processing >>>> engine... >>>> Sep 17 16:28:02 ubuntu systemd[1]: Started vector packet processing >>>> engine. >>>> Sep 17 16:28:02 ubuntu vpp[1597]: vlib_plugin_early_init:356: plugin >>>> path /usr/lib/vpp_plugins >>>> Sep 17 16:28:02 ubuntu vpp[1597]: load_one_plugin:184: Loaded plugin: >>>> acl_plugin.so (Access Control Lists) >>>> Sep 17 16:28:02 ubuntu vpp[1597]: load_one_plugin:142: >>>> /usr/lib/vpp_plugins/dpdk_plugin.so: undefined symbol: >>>> aes_gcm_enc_128_sse >>>> Sep 17 16:28:02 ubuntu vpp[1597]: load_one_plugin:143: Failed to load >>>> plugin 'dpdk_plugin.so' >>>> Sep 17 16:28:02 ubuntu systemd[1]: vpp.service: Main process exited, >>>> code=dumped, status=6/ABRT >>>> Sep 17 16:28:02 ubuntu systemd[1]: vpp.service: Unit entered failed >>>> state. >>>> Sep 17 16:28:02 ubuntu systemd[1]: vpp.service: Failed with result >>>> 'core-dump'. >>>> Sep 17 16:28:03 ubuntu systemd[1]: vpp.service: Service hold-off time >>>> over, scheduling restart. >>>> Sep 17 16:28:03 ubuntu systemd[1]: Stopped vector packet processing >>>> engine. >>>> Sep 17 16:28:03 ubuntu systemd[1]: vpp.service: Start request repeated >>>> too quickly. >>>> Sep 17 16:28:03 ubuntu systemd[1]: Failed to start vector packet >>>> processing engine. >>>> Sep 17 16:28:03 ubuntu systemd[1]: vpp.service: Unit entered failed >>>> state. >>>> Sep 17 16:28:03 ubuntu systemd[1]: vpp.service: Failed with result >>>> 'start-limit-hit'. >>>> >>>> >>>> >>>> W dniu 2017-09-17 o 15:51, Paweł Staszewski pisze: >>>> >>>>> Hi just get the latest git: >>>>> >>>>> cd / >>>>> >>>>> git clonehttps://gerrit.fd.io/r/vpp >>>>> >>>>> git clonehttps://gerrit.fd.io/r/vppsb >>>>> >>>>> >>>>> $ cd /vpp >>>>> $ ln -sf /vppsb/netlink >>>>> $ ln -sf /vppsb/router >>>>> $ ln -sf ../../netlink/netlink.mk build-data/packages/ >>>>> $ ln -sf ../../router/router.mk build-data/packages/ >>>>> >>>>> $ cd build-root >>>>> $ ./bootstrap.sh >>>>> $ make V=0 PLATFORM=vpp TAG=vpp_debug router-install >>>>> >>>>> And: >>>>> >>>>> make V=0 PLATFORM=vpp TAG=vpp_debug router-install >>>>> @@@@ Arch for platform 'vpp' is native @@@@ >>>>> @@@@ Finding source for router @@@@ >>>>> @@@@ Makefile fragment found in /vpp/build-data/packages/router.mk >>>>> @@@@ >>>>> @@@@ Source found in /vpp/router @@@@ >>>>> @@@@ Configuring router: nothing to do @@@@ >>>>> @@@@ Building router in /vpp/build-root/build-vpp_debug-native/router >>>>> @@@@ >>>>> make[1]: Entering directory '/vpp/build-root/build-vpp_deb >>>>> ug-native/router' >>>>> CC router/tap_inject.lo >>>>> CC router/tap_inject_netlink.lo >>>>> CC router/tap_inject_node.lo >>>>> /vpp/build-data/../router/router/tap_inject_node.c:34:1: error: >>>>> unknown type name ‘dpo_type_t’ >>>>> dpo_type_t tap_inject_dpo_type; >>>>> ^~~~~~~~~~ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:323:22: error: >>>>> unknown type name ‘dpo_id_t’ >>>>> tap_inject_dpo_lock (dpo_id_t * dpo) >>>>> ^~~~~~~~ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:331:24: error: >>>>> unknown type name ‘dpo_id_t’ >>>>> tap_inject_dpo_unlock (dpo_id_t * dpo) >>>>> ^~~~~~~~ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:341:14: error: >>>>> unknown type name ‘dpo_vft_t’ >>>>> const static dpo_vft_t tap_inject_vft = { >>>>> ^~~~~~~~~ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:342:3: error: >>>>> field name not in record or union initializer >>>>> .dv_lock = tap_inject_dpo_lock, >>>>> ^ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:342:3: note: (near >>>>> initialization for ‘tap_inject_vft’) >>>>> /vpp/build-data/../router/router/tap_inject_node.c:342:14: error: >>>>> ‘tap_inject_dpo_lock’ undeclared here (not in a function) >>>>> .dv_lock = tap_inject_dpo_lock, >>>>> ^~~~~~~~~~~~~~~~~~~ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:343:3: error: >>>>> field name not in record or union initializer >>>>> .dv_unlock = tap_inject_dpo_unlock, >>>>> ^ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:343:3: note: (near >>>>> initialization for ‘tap_inject_vft’) >>>>> /vpp/build-data/../router/router/tap_inject_node.c:343:16: error: >>>>> ‘tap_inject_dpo_unlock’ undeclared here (not in a function) >>>>> .dv_unlock = tap_inject_dpo_unlock, >>>>> ^~~~~~~~~~~~~~~~~~~~~ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:343:16: error: >>>>> excess elements in scalar initializer [-Werror] >>>>> /vpp/build-data/../router/router/tap_inject_node.c:343:16: note: >>>>> (near initialization for ‘tap_inject_vft’) >>>>> /vpp/build-data/../router/router/tap_inject_node.c:344:3: error: >>>>> field name not in record or union initializer >>>>> .dv_format = format_tap_inject_dpo, >>>>> ^ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:344:3: note: (near >>>>> initialization for ‘tap_inject_vft’) >>>>> /vpp/build-data/../router/router/tap_inject_node.c:344:16: error: >>>>> excess elements in scalar initializer [-Werror] >>>>> .dv_format = format_tap_inject_dpo, >>>>> ^~~~~~~~~~~~~~~~~~~~~ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:344:16: note: >>>>> (near initialization for ‘tap_inject_vft’) >>>>> /vpp/build-data/../router/router/tap_inject_node.c:352:50: error: >>>>> ‘DPO_PROTO_NUM’ undeclared here (not in a function) >>>>> const static char *const *const tap_inject_nodes[DPO_PROTO_NUM] = { >>>>> ^~~~~~~~~~~~~ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:353:4: error: >>>>> ‘DPO_PROTO_IP6’ undeclared here (not in a function) >>>>> [DPO_PROTO_IP6] = tap_inject_tx_nodes, >>>>> ^~~~~~~~~~~~~ >>>>> /vpp/build-data/../router/router/tap_inject_node.c:353:4: error: >>>>> array index in initializer not of integer type >>>>> /vpp/build-data/../router/router/tap_inject_node.c:353:4: note: (near >>>>> initialization for ‘tap_inject_nodes’) >>>>> /vpp/build-data/../router/router/tap_inject_node.c: In function >>>>> ‘tap_inject_init’: >>>>> /vpp/build-data/../router/router/tap_inject_node.c:365:25: error: >>>>> implicit declaration of function ‘dpo_register_new_type’ >>>>> [-Werror=implicit-function-declaration] >>>>> tap_inject_dpo_type = dpo_register_new_type (&tap_inject_vft, >>>>> tap_inject_nodes); >>>>> ^~~~~~~~~~~~~~~~~~~~~ >>>>> At top level: >>>>> /vpp/build-data/../router/router/tap_inject_node.c:352:33: error: >>>>> ‘tap_inject_nodes’ defined but not used [-Werror=unused-variable] >>>>> const static char *const *const tap_inject_nodes[DPO_PROTO_NUM] = { >>>>> ^~~~~~~~~~~~~~~~ >>>>> cc1: all warnings being treated as errors >>>>> Makefile:476: recipe for target 'router/tap_inject_node.lo' failed >>>>> make[1]: *** [router/tap_inject_node.lo] Error 1 >>>>> make[1]: *** Waiting for unfinished jobs.... >>>>> /vpp/build-data/../router/router/tap_inject.c:24:26: fatal error: >>>>> vnet/fib/fib.h: No such file or directory >>>>> #include <vnet/fib/fib.h> >>>>> ^ >>>>> compilation terminated. >>>>> Makefile:476: recipe for target 'router/tap_inject.lo' failed >>>>> make[1]: *** [router/tap_inject.lo] Error 1 >>>>> In file included from /vpp/build-data/../router/rout >>>>> er/tap_inject_netlink.c:19:0: >>>>> /vppsb/netlink/librtnl/netns.h:26:26: fatal error: librtnl/rtnl.h: No >>>>> such file or directory >>>>> #include <librtnl/rtnl.h> >>>>> ^ >>>>> compilation terminated. >>>>> Makefile:476: recipe for target 'router/tap_inject_netlink.lo' failed >>>>> make[1]: *** [router/tap_inject_netlink.lo] Error 1 >>>>> make[1]: Leaving directory '/vpp/build-root/build-vpp_deb >>>>> ug-native/router' >>>>> Makefile:698: recipe for target 'router-build' failed >>>>> make: *** [router-build] Error 2 >>>>> >>>>> _______________________________________________ >>>>> vpp-dev mailing list >>>>> vpp-dev@lists.fd.io >>>>> https://lists.fd.io/mailman/listinfo/vpp-dev >>>>> >>>> >>>> _______________________________________________ >>>> vpp-dev mailing list >>>> vpp-dev@lists.fd.io >>>> https://lists.fd.io/mailman/listinfo/vpp-dev >>>> >>> >>> _______________________________________________ >>> vpp-dev mailing list >>> vpp-dev@lists.fd.io >>> https://lists.fd.io/mailman/listinfo/vpp-dev >>> >> >> >> _______________________________________________ >> vpp-dev mailing list >> vpp-dev@lists.fd.io >> https://lists.fd.io/mailman/listinfo/vpp-dev >> > >
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev