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

Reply via email to