Hi Burt,

Thanks for the insight on the problem. I would slightly need some more
assistance however.

The steps used to branch out vpp to vpp-sandbox given in the FRR
documentation were:

" 3 - Clone the VPPsb repository and checkout to commit dfae7:

$ cd ~
$ git clone https://gerrit.fd.io/r/vppsb
$ cd vppsb
$ git checkout dfae7

4 - Change the current directory to /vpp and checkout to commit 21bc8:

$ cd /vpp
$ git reset --hard HEAD
$ git checkout 21bc8

"

And then the builds are made in /vpp/build-root.

So where should I make the changes now?

On Fri, Dec 29, 2017 at 6:29 AM, Burt Silverman <bur...@gmail.com> wrote:

> Hello Hamid,
>
> I recommend that you try the experiment using the latest "master" levels
> of VPP and VPPSB. There were some small changes made around October so that
> they would compile. I just tried that just now and I did have to make one
> small change to vppsb/router/router/tap_inject_node.c; I had to add
>
> #include <sys/uio.h>
>
> Perhaps this header file was previously being picked up indirectly and the
> indirect include disappeared.
>
> I do not myself do the install-deb step, but the others, netlink-install
> and router-install are working for me given the above tweak.
>
> I have noticed the word "tap" in the recent VCL code, and so I wonder if
> VPPSB is still the recommended method, or if there are newer techniques
> that have been developed.
>
> Good luck, I have been a bit lazy about taking the built code and actually
> trying it!
>
> Burt
>
> On Thu, Dec 28, 2017 at 3:58 AM, Syed Hamid Rasool via vpp-dev <
> vpp-dev@lists.fd.io> wrote:
>
>> Hi,
>>
>> I am following the VPP installation guide from the FRR wiki given in the
>> link:
>>
>> https://github.com/FRRouting/frr/wiki/Alternate-forwarding-planes%3A-VPP
>>
>>
>> But the problem I am facing is in the "
>>
>> make V=0 PLATFORM=vpp TAG=vpp_debug install-deb netlink-install 
>> router-install"
>>
>> command, the router module does not perform correctly.
>>
>> Doing the "make router-install" subsequently gives out the following
>> error:
>> "
>> @@@@ Building router in /vpp/build-root/build-native/router @@@@
>> make[1]: Entering directory '/vpp/build-root/build-native/router'
>> depbase=`echo router/tap_inject.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
>> /bin/sh ./libtool  --tag=CC   --mode=compile gcc
>> -DPACKAGE_NAME=\"router\" -DPACKAGE_TARNAME=\"router\"
>> -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"router\ 1.0\"
>> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1
>> -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
>> -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
>> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"
>> -DPACKAGE=\"router\" -DVERSION=\"1.0\" -I. -I/vpp/build-data/../router
>> -Wall -I. -g -O2 -MT router/tap_inject.lo -MD -MP -MF $depbase.Tpo -c -o
>> router/tap_inject.lo /vpp/build-data/../router/router/tap_inject.c &&\
>> mv -f $depbase.Tpo $depbase.Plo
>> depbase=`echo router/tap_inject_netlink.lo | sed
>> 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
>> /bin/sh ./libtool  --tag=CC   --mode=compile gcc
>> -DPACKAGE_NAME=\"router\" -DPACKAGE_TARNAME=\"router\"
>> -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"router\ 1.0\"
>> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1
>> -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
>> -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
>> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"
>> -DPACKAGE=\"router\" -DVERSION=\"1.0\" -I. -I/vpp/build-data/../router
>> -Wall -I. -g -O2 -MT router/tap_inject_netlink.lo -MD -MP -MF $depbase.Tpo
>> -c -o router/tap_inject_netlink.lo 
>> /vpp/build-data/../router/router/tap_inject_netlink.c
>> &&\
>> mv -f $depbase.Tpo $depbase.Plo
>> depbase=`echo router/tap_inject_node.lo | sed
>> 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
>> /bin/sh ./libtool  --tag=CC   --mode=compile gcc
>> -DPACKAGE_NAME=\"router\" -DPACKAGE_TARNAME=\"router\"
>> -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"router\ 1.0\"
>> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1
>> -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
>> -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
>> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"
>> -DPACKAGE=\"router\" -DVERSION=\"1.0\" -I. -I/vpp/build-data/../router
>> -Wall -I. -g -O2 -MT router/tap_inject_node.lo -MD -MP -MF $depbase.Tpo -c
>> -o router/tap_inject_node.lo 
>> /vpp/build-data/../router/router/tap_inject_node.c
>> &&\
>> mv -f $depbase.Tpo $depbase.Plo
>> depbase=`echo router/tap_inject_tap.lo | sed
>> 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
>> /bin/sh ./libtool  --tag=CC   --mode=compile gcc
>> -DPACKAGE_NAME=\"router\" -DPACKAGE_TARNAME=\"router\"
>> -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"router\ 1.0\"
>> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1
>> -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
>> -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
>> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"
>> -DPACKAGE=\"router\" -DVERSION=\"1.0\" -I. -I/vpp/build-data/../router
>> -Wall -I. -g -O2 -MT router/tap_inject_tap.lo -MD -MP -MF $depbase.Tpo -c
>> -o router/tap_inject_tap.lo /vpp/build-data/../router/router/tap_inject_tap.c
>> &&\
>> mv -f $depbase.Tpo $depbase.Plo
>> libtool: compile:  gcc -DPACKAGE_NAME=\"router\"
>> -DPACKAGE_TARNAME=\"router\" -DPACKAGE_VERSION=\"1.0\"
>> "-DPACKAGE_STRING=\"router 1.0\"" -DPACKAGE_BUGREPORT=\"\"
>> -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
>> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
>> -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
>> -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"router\"
>> -DVERSION=\"1.0\" -I. -I/vpp/build-data/../router -Wall -I. -g -O2 -MT
>> router/tap_inject_netlink.lo -MD -MP -MF router/.deps/tap_inject_netlink.Tpo
>> -c /vpp/build-data/../router/router/tap_inject_netlink.c  -fPIC -DPIC -o
>> router/.libs/tap_inject_netlink.o
>> libtool: compile:  gcc -DPACKAGE_NAME=\"router\"
>> -DPACKAGE_TARNAME=\"router\" -DPACKAGE_VERSION=\"1.0\"
>> "-DPACKAGE_STRING=\"router 1.0\"" -DPACKAGE_BUGREPORT=\"\"
>> -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
>> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
>> -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
>> -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"router\"
>> -DVERSION=\"1.0\" -I. -I/vpp/build-data/../router -Wall -I. -g -O2 -MT
>> router/tap_inject_node.lo -MD -MP -MF router/.deps/tap_inject_node.Tpo
>> -c /vpp/build-data/../router/router/tap_inject_node.c  -fPIC -DPIC -o
>> router/.libs/tap_inject_node.o
>> libtool: compile:  gcc -DPACKAGE_NAME=\"router\"
>> -DPACKAGE_TARNAME=\"router\" -DPACKAGE_VERSION=\"1.0\"
>> "-DPACKAGE_STRING=\"router 1.0\"" -DPACKAGE_BUGREPORT=\"\"
>> -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
>> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
>> -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
>> -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"router\"
>> -DVERSION=\"1.0\" -I. -I/vpp/build-data/../router -Wall -I. -g -O2 -MT
>> router/tap_inject.lo -MD -MP -MF router/.deps/tap_inject.Tpo -c
>> /vpp/build-data/../router/router/tap_inject.c  -fPIC -DPIC -o
>> router/.libs/tap_inject.o
>> libtool: compile:  gcc -DPACKAGE_NAME=\"router\"
>> -DPACKAGE_TARNAME=\"router\" -DPACKAGE_VERSION=\"1.0\"
>> "-DPACKAGE_STRING=\"router 1.0\"" -DPACKAGE_BUGREPORT=\"\"
>> -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
>> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
>> -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
>> -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"router\"
>> -DVERSION=\"1.0\" -I. -I/vpp/build-data/../router -Wall -I. -g -O2 -MT
>> router/tap_inject_tap.lo -MD -MP -MF router/.deps/tap_inject_tap.Tpo -c
>> /vpp/build-data/../router/router/tap_inject_tap.c  -fPIC -DPIC -o
>> router/.libs/tap_inject_tap.o
>> /vpp/build-data/../router/router/tap_inject.c:89:41: error: unknown type
>> name 'vnet_plugin_handoff_t'
>>  vlib_plugin_register (vlib_main_t * vm, vnet_plugin_handoff_t * h, int f)
>>                                          ^
>> /vpp/build-data/../router/router/tap_inject.c: In function
>> 'tap_inject_enable':
>> /vpp/build-data/../router/router/tap_inject.c:140:5: error: unknown type
>> name 'ip4_add_del_route_args_t'
>>      ip4_add_del_route_args_t a;
>>      ^
>> /vpp/build-data/../router/router/tap_inject.c:147:6: error: request for
>> member 'add_adj' in something not a structure or union
>>      a.add_adj = &add_adj;
>>       ^
>> /vpp/build-data/../router/router/tap_inject.c:148:6: error: request for
>> member 'n_add_adj' in something not a structure or union
>>      a.n_add_adj = 1;
>>       ^
>> /vpp/build-data/../router/router/tap_inject.c:150:6: error: request for
>> member 'flags' in something not a structure or union
>>      a.flags = IP4_ROUTE_FLAG_TABLE_ID | IP4_ROUTE_FLAG_ADD;
>>       ^
>> /vpp/build-data/../router/router/tap_inject.c:150:15: error:
>> 'IP4_ROUTE_FLAG_TABLE_ID' undeclared (first use in this function)
>>      a.flags = IP4_ROUTE_FLAG_TABLE_ID | IP4_ROUTE_FLAG_ADD;
>>                ^
>> /vpp/build-data/../router/router/tap_inject.c:150:15: note: each
>> undeclared identifier is reported only once for each function it appears in
>> /vpp/build-data/../router/router/tap_inject.c:150:41: error:
>> 'IP4_ROUTE_FLAG_ADD' undeclared (first use in this function)
>>      a.flags = IP4_ROUTE_FLAG_TABLE_ID | IP4_ROUTE_FLAG_ADD;
>>                                          ^
>> /vpp/build-data/../router/router/tap_inject.c:151:6: error: request for
>> member 'table_index_or_table_id' in something not a structure or union
>>      a.table_index_or_table_id = 0;
>>       ^
>> /vpp/build-data/../router/router/tap_inject.c:152:6: error: request for
>> member 'dst_address' in something not a structure or union
>>      a.dst_address.as_u32 = 0x000000E0; /* 224.0.0.0 */
>>       ^
>> /vpp/build-data/../router/router/tap_inject.c:153:6: error: request for
>> member 'dst_address_length' in something not a structure or union
>>      a.dst_address_length = 24;
>>       ^
>> /vpp/build-data/../router/router/tap_inject.c:154:6: error: request for
>> member 'adj_index' in something not a structure or union
>>      a.adj_index = ~0;
>>       ^
>> /vpp/build-data/../router/router/tap_inject.c:159:12: error:
>> 'ip_adjacency_t {aka struct ip_adjacency_t_}' has no member named
>> 'explicit_fib_index'
>>      add_adj.explicit_fib_index = ~0;
>>             ^
>> /vpp/build-data/../router/router/tap_inject.c:160:27: error:
>> 'vnet_rewrite_header_t {aka struct <anonymous>}' has no member named
>> 'node_index'
>>      add_adj.rewrite_header.node_index = ip4_rewrite_node.index;
>>                            ^
>> /vpp/build-data/../router/router/tap_inject.c:162:12: error:
>> 'ip_adjacency_t {aka struct ip_adjacency_t_}' has no member named
>> 'if_address_index'
>>      add_adj.if_address_index = ~0;
>>             ^
>> /vpp/build-data/../router/router/tap_inject.c:164:5: warning: implicit
>> declaration of function 'ip4_add_del_route' [-Wimplicit-function-declarati
>> on]
>>      ip4_add_del_route (&ip4_main, &a);
>>      ^
>> Makefile:476: recipe for target 'router/tap_inject.lo' failed
>> make[1]: *** [router/tap_inject.lo] Error 1
>> make[1]: *** Waiting for unfinished jobs....
>> /vpp/build-data/../router/router/tap_inject_tap.c:33:22: error: unknown
>> type name 'unix_file_t'
>>  tap_inject_tap_read (unix_file_t * f)
>>                       ^
>> /vpp/build-data/../router/router/tap_inject_tap.c: In function
>> 'tap_inject_tap_connect':
>> /vpp/build-data/../router/router/tap_inject_tap.c:55:3: error: unknown
>> type name 'unix_file_t'
>>    unix_file_t template;
>>    ^
>> /vpp/build-data/../router/router/tap_inject_tap.c:120:11: error: request
>> for member 'read_function' in something not a structure or union
>>    template.read_function = tap_inject_tap_read;
>>            ^
>> /vpp/build-data/../router/router/tap_inject_tap.c:120:28: error:
>> 'tap_inject_tap_read' undeclared (first use in this function)
>>    template.read_function = tap_inject_tap_read;
>>                             ^
>> /vpp/build-data/../router/router/tap_inject_tap.c:120:28: note: each
>> undeclared identifier is reported only once for each function it appears in
>> /vpp/build-data/../router/router/tap_inject_tap.c:121:11: error: request
>> for member 'file_descriptor' in something not a structure or union
>>    template.file_descriptor = tap_fd;
>>            ^
>> /vpp/build-data/../router/router/tap_inject_tap.c:123:3: warning:
>> implicit declaration of function 'unix_file_add'
>> [-Wimplicit-function-declaration]
>>    unix_file_add (&unix_main, &template);
>>    ^
>> /vpp/build-data/../router/router/tap_inject_netlink.c:19:27: fatal
>> error: librtnl/netns.h: No such file or directory
>> compilation terminated.
>> Makefile:476: recipe for target 'router/tap_inject_tap.lo' failed
>> make[1]: *** [router/tap_inject_tap.lo] Error 1
>> Makefile:476: recipe for target 'router/tap_inject_netlink.lo' failed
>> make[1]: *** [router/tap_inject_netlink.lo] Error 1
>> libtool: compile:  gcc -DPACKAGE_NAME=\"router\"
>> -DPACKAGE_TARNAME=\"router\" -DPACKAGE_VERSION=\"1.0\"
>> "-DPACKAGE_STRING=\"router 1.0\"" -DPACKAGE_BUGREPORT=\"\"
>> -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
>> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
>> -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
>> -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"router\"
>> -DVERSION=\"1.0\" -I. -I/vpp/build-data/../router -Wall -I. -g -O2 -MT
>> router/tap_inject_node.lo -MD -MP -MF router/.deps/tap_inject_node.Tpo
>> -c /vpp/build-data/../router/router/tap_inject_node.c -o
>> router/tap_inject_node.o >/dev/null 2>&1
>> make[1]: Leaving directory '/vpp/build-root/build-native/router'
>> Makefile:699: recipe for target 'router-build' failed
>> make: *** [router-build] Error 2
>>
>> "
>>
>> As a result, there is no directory of "
>>
>> /vpp/build-root/install-vpp_debug-native/router/
>>
>> " created and the "vppctl enable tap-inject" command that is used to
>> confirm router plugin is also not working.
>>
>> Kindly help out. In general, I want to test CG-NAT use case of VPP using
>> FRR for routing protocols in x86 environment.
>>
>>
>> --
>> Regards,
>>
>> Hamid Rasool
>>
>> _______________________________________________
>> 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