Thanks, Burt!

I've realized that I also need to add #include <vppinfra/file.h> to the
rtnl.c

However it says: "*fatal error: *vppinfra/file.h: No such file or directory"

Do you have any suggestions for this? Otherwise, I will try to figure it
out.

Michael.





On Wed, Sep 27, 2017 at 2:06 PM, Burt Silverman <bur...@gmail.com> wrote:

> 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