Closed bhattaraiakshaya closed 1 year ago
here is the lshw network bus info.
lshw -c network -businfo
WARNING: you should run this program as super-user. Bus info Device Class Description ======================================================== pci@0000:01:00.0 network 82599ES 10-Gigabit SFI/SFP+ Network Connection pci@0000:01:00.1 network 82599ES 10-Gigabit SFI/SFP+ Network Connection pci@0000:03:00.0 enp3s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller pci@0000:04:00.0 wlp4s0 network AR9485 Wireless Network Adapter WARNING: output may be incomplete or inaccurate, you should run this program as super-user. When we run the gatekeeper with no parameters, we get this log.
Now we are running gatekeeper
$ sudo build/gatekeeper
EAL: Detected 8 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'VA' EAL: No available hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... EAL: VFIO support initialized EAL: Invalid NUMA socket, default to 0 EAL: using IOMMU type 1 (Type 1) EAL: Ignore mapping IO port bar(2) EAL: Probe PCI driver: net_ixgbe (8086:10fb) device: 0000:01:00.0 (socket 0) EAL: Invalid NUMA socket, default to 0 EAL: Ignore mapping IO port bar(2) EAL: Probe PCI driver: net_ixgbe (8086:10fb) device: 0000:01:00.1 (socket 0) EAL: No legacy callbacks, legacy socket not created EAL: See files in . for further log
Do we need to run the gatekeeper with specific params? Thank you
This step we missed from the above, we did do a bind, sudo dependencies/dpdk/usertools/dpdk-devbind.py --bind=vfio-pci enp1s0f1
It seems you have not configured hugepages: EAL: No available hugepages reported in hugepages-1048576kB
.
lshw -c network -businfo
Here is the output
WARNING: you should run this program as super-user.
Bus info Device Class Description
========================================================
pci@0000:01:00.0 enp1s0f0 network 82599ES 10-Gigabit SFI/SFP+ Network Connection
pci@0000:01:00.1 enp1s0f1 network 82599ES 10-Gigabit SFI/SFP+ Network Connection
pci@0000:03:00.0 enp3s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
pci@0000:04:00.0 wlp4s0 network AR9485 Wireless Network Adapter
WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
We ran the bind command
sudo dependencies/dpdk/usertools/dpdk-devbind.py --bind=vfio-pci enp1s0f0
sudo dependencies/dpdk/usertools/dpdk-hugepages.py --setup 2G
We updated the net.lua
file, changed the front and back ports:
-- These parameters should likely be initially changed.
local log_level = staticlib.c.RTE_LOG_DEBUG
local user --= "gatekeeper"
local front_ports = {"enp1s0f0"}
local front_ips = {"10.0.1.1/24", "2001:db8:1::1/48"}
local front_bonding_mode = staticlib.c.BONDING_MODE_ROUND_ROBIN
local front_ipv4_vlan_tag = 0x123
local front_ipv6_vlan_tag = front_ipv4_vlan_tag
local front_vlan_insert = true
local front_mtu = 1500
local back_ports = {"enp1s0f1"}
local back_ips = {"10.0.2.1/24", "2001:db8:2::1/48"}
local back_bonding_mode = staticlib.c.BONDING_MODE_ROUND_ROBIN
local back_ipv4_vlan_tag = 0x456
local back_ipv6_vlan_tag = back_ipv4_vlan_tag
local back_vlan_insert = true
local back_mtu = 2048
sudo build/gatekeeper
Here is the log
dcm@dcm1:~/gatekeeper$ sudo cat gatekeeper_2023_08_25_18_04.log
Main/0: cycles/second = 3591677940, cycles/millisecond = 3591677, picosec/cycle = 278
Main/0: config: ./lua/gatekeeper/staticlib.lua:506: There is no map for enp1s0f0 in the front interface configuration
Main/0: Failed to configure Gatekeeper
Have you updated the file if_map.lua
after adding the new NIC?
Notice that, in step 2 above, you have to bind enp1s0f1
as well since you're using it for the back interface.
Thank you, it resolved the issue, now we see this, cm@dcm1:~/gatekeeper$ sudo cat gatekeeper_2023_08_26_22_25.log Main/0: cycles/second = 3591679047, cycles/millisecond = 3591679, picosec/cycle = 278 rte_bpf_elf_load() is not supported with current config rebuild with libelf installed Main/0: gk_load_bpf_flow_handler(): file "./lua/bpf/granted.bpf" does not have the BPF program "init"; rte_errno = 95: Operation not supported Main/0: config: ./lua/gk.lua:108: Failed to load BPF program: ./lua/bpf/granted.bpf Main/0: Failed to configure Gatekeeper
Here is the install sys out:
cm@dcm1:~/gatekeeper$ sudo apt-get install libelf-dev
[sudo] password for dcm:
Reading package lists... Done
Building dependency tree
Reading state information... Done
libelf-dev is already the newest version (0.176-1.1build1).
0 upgraded, 0 newly installed, 0 to remove and 46 not upgraded.
dcm@dcm1:~/gatekeeper$ sudo apt-get install libelf
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libelf
We have spent like a week to go through README and Docs and we still have issues just running gatekeeper! :) It should just run out of box for a layman who wants to use your product? Will it help if I give you guys access to my server? I surely want to update readme with my notes PR coming soon.
The problem with libelf you are reporting seems to be the same issue discussed here.
We have spent like a week to go through README and Docs and we still have issues just running gatekeeper! :) It should just run out of box for a layman who wants to use your product? Will it help if I give you guys access to my server? I surely want to update readme with my notes PR coming soon.
I understand your frustration. Pull requests to improve the documentation are more than welcome, so we all lower the effort to deploy Gatekeeper. Nevertheless, you should recalibrate your expectations: deploying Gatekeeper is not easy. Even after you get Gatekeeper running, you'll still need to integrate it into your network and write your policy. There's no other open source that does what Gatekeeper does to compare. Commercial options lower their deployment challenges by selling appliances or DDoS protection services; they don't sell the software. We expect appliances and protection services based on Gatekeeper will become available as our community grows.
There's a company that intends to offer commercial support to Gatekeeper. They are setting up their service based on some initial contracts with new deployers who want to save time to deploy and scale their deployments. Once they make the service publically available, I'll add them to the home of the wiki. They will hopefully be a better route to get newcomers started.
Thank you so much, we are also trying to package it in a black box, with commercial support and Splunk integration for SoC. All the changes if any we will give back to the project, we are small team but working with DDoS for more than 10 yrs. Thanks again for your support. https://discretecomputingmachines.com
Welcome to the community!
We are seeing the following output when running . setup.sh
. setup.sh
Directory already configured.
Just run your build command (e.g. ninja) and Meson will regenerate as necessary.
If ninja fails, run "ninja reconfigure" or "meson --reconfigure"
to force Meson to regenerate.
If build failures persist, run "meson setup --wipe" to rebuild from scratch
using the same options as passed when configuring the build.
To change option values, run "meson configure" instead.
[3/1561] Linking target lib/librte_bpf.so.21.0.
FAILED: lib/librte_bpf.so.21.0
cc -o lib/librte_bpf.so.21.0 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf.c.o' 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_exec.c.o' 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_load.c.o' 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_pkt.c.o' 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_validate.c.o' 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_jit_x86.c.o' -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,librte_bpf.so.21 -Wl,--no-as-needed -pthread -lm -ldl -lnuma lib/librte_eal.so.21.0 lib/librte_kvargs.so.21.0 lib/librte_telemetry.so.21.0 lib/librte_mbuf.so.21.0 lib/librte_mempool.so.21.0 lib/librte_ring.so.21.0 lib/librte_net.so.21.0 lib/librte_ethdev.so.21.0 lib/librte_meter.so.21.0 -Wl,--end-group -Wl,--version-script=/home/dcm/gatekeeper/dependencies/dpdk/lib/librte_bpf/version.map '-Wl,-rpath,$ORIGIN/' -Wl,-rpath-link,/home/dcm/gatekeeper/dependencies/dpdk/build/lib
/usr/bin/ld: lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_pkt.c.o: in function `bpf_eth_elf_load':
bpf_pkt.c:(.text+0x197): undefined reference to `rte_bpf_elf_load'
/usr/bin/ld: bpf_pkt.c:(.text+0x233): undefined reference to `rte_bpf_elf_load'
collect2: error: ld returned 1 exit status
[12/1561] Compiling C object 'drivers/a715181@@tmp_rte_bus_dpaa@sta/bus_dpaa_base_fman_fman.c.o'.
ninja: build stopped: subcommand failed.
[3/1551] Linking target lib/librte_bpf.so.21.0.
FAILED: lib/librte_bpf.so.21.0
cc -o lib/librte_bpf.so.21.0 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf.c.o' 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_exec.c.o' 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_load.c.o' 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_pkt.c.o' 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_validate.c.o' 'lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_jit_x86.c.o' -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,librte_bpf.so.21 -Wl,--no-as-needed -pthread -lm -ldl -lnuma lib/librte_eal.so.21.0 lib/librte_kvargs.so.21.0 lib/librte_telemetry.so.21.0 lib/librte_mbuf.so.21.0 lib/librte_mempool.so.21.0 lib/librte_ring.so.21.0 lib/librte_net.so.21.0 lib/librte_ethdev.so.21.0 lib/librte_meter.so.21.0 -Wl,--end-group -Wl,--version-script=/home/dcm/gatekeeper/dependencies/dpdk/lib/librte_bpf/version.map '-Wl,-rpath,$ORIGIN/' -Wl,-rpath-link,/home/dcm/gatekeeper/dependencies/dpdk/build/lib
/usr/bin/ld: lib/76b5a35@@rte_bpf@sta/librte_bpf_bpf_pkt.c.o: in function `bpf_eth_elf_load':
bpf_pkt.c:(.text+0x197): undefined reference to `rte_bpf_elf_load'
/usr/bin/ld: bpf_pkt.c:(.text+0x233): undefined reference to `rte_bpf_elf_load'
collect2: error: ld returned 1 exit status
[12/1551] Compiling C object 'drivers/a715181@@tmp_rte_net_octeontx2@sta/net_octeontx2_otx2_tx.c.o'.
ninja: build stopped: subcommand failed.
==== Building LuaJIT 2.0.5 ====
make -C src
make[1]: Entering directory '/home/dcm/gatekeeper/dependencies/luajit-2.0/src'
make[1]: Nothing to be done for 'default'.
make[1]: Leaving directory '/home/dcm/gatekeeper/dependencies/luajit-2.0/src'
==== Successfully built LuaJIT 2.0.5 ====
==== Installing LuaJIT 2.0.5 to /usr/local ====
mkdir -p /usr/local/bin /usr/local/lib /usr/local/include/luajit-2.0 /usr/local/share/man/man1 /usr/local/lib/pkgconfig /usr/local/share/luajit-2.0.5/jit /usr/local/share/lua/5.1 /usr/local/lib/lua/5.1
cd src && install -m 0755 luajit /usr/local/bin/luajit-2.0.5
cd src && test -f libluajit.a && install -m 0644 libluajit.a /usr/local/lib/libluajit-5.1.a || :
rm -f /usr/local/bin/luajit /usr/local/lib/libluajit-5.1.so.2.0.5 /usr/local/lib/libluajit-5.1.so /usr/local/lib/libluajit-5.1.so.2
cd src && test -f libluajit.so && \
install -m 0755 libluajit.so /usr/local/lib/libluajit-5.1.so.2.0.5 && \
ldconfig -n /usr/local/lib && \
ln -sf libluajit-5.1.so.2.0.5 /usr/local/lib/libluajit-5.1.so && \
ln -sf libluajit-5.1.so.2.0.5 /usr/local/lib/libluajit-5.1.so.2 || :
cd etc && install -m 0644 luajit.1 /usr/local/share/man/man1
cd etc && sed -e "s|^prefix=.*|prefix=/usr/local|" -e "s|^multilib=.*|multilib=lib|" luajit.pc > luajit.pc.tmp && \
install -m 0644 luajit.pc.tmp /usr/local/lib/pkgconfig/luajit.pc && \
rm -f luajit.pc.tmp
cd src && install -m 0644 lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h /usr/local/include/luajit-2.0
cd src/jit && install -m 0644 bc.lua v.lua dump.lua dis_x86.lua dis_x64.lua dis_arm.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua bcsave.lua vmdef.lua /usr/local/share/luajit-2.0.5/jit
ln -sf luajit-2.0.5 /usr/local/bin/luajit
==== Successfully installed LuaJIT 2.0.5 to /usr/local ====
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for library containing clock_gettime... none required
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking for gcc option to accept ISO C99... none needed
checking whether _Thread_local is known... yes
checking whether POSIX threads are available... yes
checking whether CC supports -Wno-pointer-sign... yes
checking whether CC supports -Wno-missing-field-initializers... yes
checking whether link time optimizer is available... yes
checking CFLAGS... -g -O2 -pthread -fno-strict-aliasing -fno-strict-overflow -flto -Wall -Wextra -Wstrict-prototypes -Wno-parentheses -Wno-pointer-sign -Wno-missing-field-initializers
checking LDFLAGS... -pthread -flto=4 -g
checking how to run the C preprocessor... gcc -E
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for flex... flex
checking for bison... bison
checking for gm4... no
checking for m4... m4
checking bison version... 3.5.1
checking which OS configuration should we use... ./sysdep/cf/linux.h
checking system-dependent directories... sysdep/linux sysdep/unix
checking for libssh/libssh.h... no
checking for ssh_connect in -lssh... no
checking for Linux MPLS headers... yes
checking protocols... ok
checking for linux/rtnetlink.h... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for alloca.h... yes
checking for syslog.h... yes
checking for struct sockaddr.sa_len... no
checking whether byte ordering is bigendian... no
checking for glob.h... yes
checking for syslog lib flags... yes
checking for curses.h... yes
checking for library containing tgetent... -ltinfo
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for library containing rl_callback_read_char... -lreadline
checking for rl_crlf in -lreadline... yes
checking for rl_ding in -lreadline... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating obj/sysdep/autoconf.h
config.status: obj/sysdep/autoconf.h is unchanged
BIRD was configured with the following options:
Source directory: .
Object directory: obj
Iproute2 directory: /etc/iproute2
System configuration: ./sysdep/cf/linux.h
Debugging: no
POSIX threads: yes
Routing protocols: bfd babel bgp mrt ospf perf pipe radv rip rpki static
LibSSH support in RPKI: no
Kernel MPLS support: yes
Client: yes
MKDIR -p obj/client obj/conf obj/doc obj/filter obj/lib obj/nest obj/test obj/proto/bfd obj/proto/babel obj/proto/bgp obj/proto/mrt obj/proto/ospf obj/proto/perf obj/proto/pipe obj/proto/radv obj/proto/rip obj/proto/rpki obj/proto/static obj/sysdep/linux obj/sysdep/unix obj/doc
m4 -s -P conf/gen_parser.m4 conf/confbase.Y conf/flowspec.Y client/cmds.Y filter/config.Y nest/config.Y proto/bfd/config.Y proto/babel/config.Y proto/bgp/config.Y proto/mrt/config.Y proto/ospf/config.Y proto/perf/config.Y proto/pipe/config.Y proto/radv/config.Y proto/rip/config.Y proto/rpki/config.Y proto/static/config.Y sysdep/linux/netlink.Y sysdep/unix/config.Y sysdep/unix/krt.Y >obj/conf/cf-parse.y
bison -Dparse.lac=full -Dparse.error=verbose -dv -pcf_ -b obj/conf/cf-parse obj/conf/cf-parse.y
obj/conf/cf-parse.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr]
obj/conf/cf-parse.y: warning: 2 reduce/reduce conflicts [-Wconflicts-rr]
m4 -s -P conf/gen_keywords.m4 conf/confbase.Y conf/flowspec.Y client/cmds.Y filter/config.Y nest/config.Y proto/bfd/config.Y proto/babel/config.Y proto/bgp/config.Y proto/mrt/config.Y proto/ospf/config.Y proto/perf/config.Y proto/pipe/config.Y proto/radv/config.Y proto/rip/config.Y proto/rpki/config.Y proto/static/config.Y sysdep/linux/netlink.Y sysdep/unix/config.Y sysdep/unix/krt.Y >obj/conf/keywords.h
m4 -s -P conf/gen_commands.m4 conf/confbase.Y conf/flowspec.Y client/cmds.Y filter/config.Y nest/config.Y proto/bfd/config.Y proto/babel/config.Y proto/bgp/config.Y proto/mrt/config.Y proto/ospf/config.Y proto/perf/config.Y proto/pipe/config.Y proto/radv/config.Y proto/rip/config.Y proto/rpki/config.Y proto/static/config.Y sysdep/linux/netlink.Y sysdep/unix/config.Y sysdep/unix/krt.Y >obj/conf/commands.h
m4 -s -DTARGET=I -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-interpret.c
m4 -s -DTARGET=H -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-gen.h
echo >obj/sysdep/paths.h "/* Generated by Makefile, don't edit manually! */"
echo >>obj/sysdep/paths.h "#define PATH_CONFIG_FILE \"/usr/local/etc/bird.conf\""
echo >>obj/sysdep/paths.h "#define PATH_CONTROL_SOCKET \"/usr/local/var/run/bird.ctl\""
if test -n "/etc/iproute2" ; then echo >>obj/sysdep/paths.h "#define PATH_IPROUTE_DIR \"/etc/iproute2\"" ; fi
CC -o obj/conf/cf-parse.tab.o -c obj/conf/cf-parse.tab.c
flex -f -s -B -8 -Pcf_ -oobj/conf/cf-lex.c conf/cf-lex.l
CC -o obj/conf/cf-lex.o -c obj/conf/cf-lex.c
CC -o obj/conf/conf.o -c conf/conf.c
CC -o obj/filter/filter.o -c filter/filter.c
CC -o obj/filter/data.o -c filter/data.c
CC -o obj/filter/f-util.o -c filter/f-util.c
CC -o obj/filter/tree.o -c filter/tree.c
CC -o obj/filter/trie.o -c filter/trie.c
m4 -s -DTARGET=C -P filter/decl.m4 filter/f-inst.c obj/.dir-stamp >obj/filter/inst-gen.c
CC -o obj/filter/inst-gen.o -c obj/filter/inst-gen.c
CC -o obj/lib/bitmap.o -c lib/bitmap.c
CC -o obj/lib/bitops.o -c lib/bitops.c
CC -o obj/lib/checksum.o -c lib/checksum.c
CC -o obj/lib/event.o -c lib/event.c
CC -o obj/lib/flowspec.o -c lib/flowspec.c
CC -o obj/lib/idm.o -c lib/idm.c
CC -o obj/lib/ip.o -c lib/ip.c
CC -o obj/lib/lists.o -c lib/lists.c
CC -o obj/lib/mac.o -c lib/mac.c
CC -o obj/lib/md5.o -c lib/md5.c
CC -o obj/lib/mempool.o -c lib/mempool.c
CC -o obj/lib/net.o -c lib/net.c
CC -o obj/lib/patmatch.o -c lib/patmatch.c
CC -o obj/lib/printf.o -c lib/printf.c
CC -o obj/lib/resource.o -c lib/resource.c
CC -o obj/lib/sha1.o -c lib/sha1.c
CC -o obj/lib/sha256.o -c lib/sha256.c
CC -o obj/lib/sha512.o -c lib/sha512.c
CC -o obj/lib/slab.o -c lib/slab.c
CC -o obj/lib/slists.o -c lib/slists.c
CC -o obj/lib/strtoul.o -c lib/strtoul.c
CC -o obj/lib/tbf.o -c lib/tbf.c
CC -o obj/lib/timer.o -c lib/timer.c
CC -o obj/lib/xmalloc.o -c lib/xmalloc.c
CC -o obj/nest/a-path.o -c nest/a-path.c
CC -o obj/nest/a-set.o -c nest/a-set.c
CC -o obj/nest/cli.o -c nest/cli.c
CC -o obj/nest/cmds.o -c nest/cmds.c
CC -o obj/nest/iface.o -c nest/iface.c
CC -o obj/nest/locks.o -c nest/locks.c
CC -o obj/nest/neighbor.o -c nest/neighbor.c
CC -o obj/nest/password.o -c nest/password.c
CC -o obj/nest/proto.o -c nest/proto.c
CC -o obj/nest/rt-attr.o -c nest/rt-attr.c
CC -o obj/nest/rt-dev.o -c nest/rt-dev.c
CC -o obj/nest/rt-fib.o -c nest/rt-fib.c
CC -o obj/nest/rt-show.o -c nest/rt-show.c
CC -o obj/nest/rt-table.o -c nest/rt-table.c
CC -o obj/proto/bfd/bfd.o -c proto/bfd/bfd.c
CC -o obj/proto/bfd/io.o -c proto/bfd/io.c
CC -o obj/proto/bfd/packets.o -c proto/bfd/packets.c
CC -o obj/proto/babel/babel.o -c proto/babel/babel.c
CC -o obj/proto/babel/packets.o -c proto/babel/packets.c
CC -o obj/proto/bgp/attrs.o -c proto/bgp/attrs.c
CC -o obj/proto/bgp/bgp.o -c proto/bgp/bgp.c
CC -o obj/proto/bgp/packets.o -c proto/bgp/packets.c
CC -o obj/proto/mrt/mrt.o -c proto/mrt/mrt.c
CC -o obj/proto/ospf/dbdes.o -c proto/ospf/dbdes.c
CC -o obj/proto/ospf/hello.o -c proto/ospf/hello.c
CC -o obj/proto/ospf/iface.o -c proto/ospf/iface.c
CC -o obj/proto/ospf/lsack.o -c proto/ospf/lsack.c
CC -o obj/proto/ospf/lsalib.o -c proto/ospf/lsalib.c
CC -o obj/proto/ospf/lsreq.o -c proto/ospf/lsreq.c
CC -o obj/proto/ospf/lsupd.o -c proto/ospf/lsupd.c
CC -o obj/proto/ospf/neighbor.o -c proto/ospf/neighbor.c
CC -o obj/proto/ospf/ospf.o -c proto/ospf/ospf.c
CC -o obj/proto/ospf/packet.o -c proto/ospf/packet.c
CC -o obj/proto/ospf/rt.o -c proto/ospf/rt.c
CC -o obj/proto/ospf/topology.o -c proto/ospf/topology.c
CC -o obj/proto/perf/perf.o -c proto/perf/perf.c
CC -o obj/proto/pipe/pipe.o -c proto/pipe/pipe.c
CC -o obj/proto/radv/packets.o -c proto/radv/packets.c
CC -o obj/proto/radv/radv.o -c proto/radv/radv.c
CC -o obj/proto/rip/packets.o -c proto/rip/packets.c
CC -o obj/proto/rip/rip.o -c proto/rip/rip.c
CC -o obj/proto/rpki/rpki.o -c proto/rpki/rpki.c
CC -o obj/proto/rpki/packets.o -c proto/rpki/packets.c
CC -o obj/proto/rpki/tcp_transport.o -c proto/rpki/tcp_transport.c
CC -o obj/proto/rpki/ssh_transport.o -c proto/rpki/ssh_transport.c
CC -o obj/proto/rpki/transport.o -c proto/rpki/transport.c
CC -o obj/proto/static/static.o -c proto/static/static.c
CC -o obj/sysdep/linux/netlink.o -c sysdep/linux/netlink.c
CC -o obj/sysdep/unix/io.o -c sysdep/unix/io.c
CC -o obj/sysdep/unix/krt.o -c sysdep/unix/krt.c
CC -o obj/sysdep/unix/log.o -c sysdep/unix/log.c
CC -o obj/sysdep/unix/main.o -c sysdep/unix/main.c
CC -o obj/sysdep/unix/random.o -c sysdep/unix/random.c
LD -pthread -flto=4 -g -o bird obj/conf/cf-parse.tab.o obj/conf/cf-lex.o obj/conf/conf.o obj/filter/filter.o obj/filter/data.o obj/filter/f-util.o obj/filter/tree.o obj/filter/trie.o obj/filter/inst-gen.o obj/lib/bitmap.o obj/lib/bitops.o obj/lib/checksum.o obj/lib/event.o obj/lib/flowspec.o obj/lib/idm.o obj/lib/ip.o obj/lib/lists.o obj/lib/mac.o obj/lib/md5.o obj/lib/mempool.o obj/lib/net.o obj/lib/patmatch.o obj/lib/printf.o obj/lib/resource.o obj/lib/sha1.o obj/lib/sha256.o obj/lib/sha512.o obj/lib/slab.o obj/lib/slists.o obj/lib/strtoul.o obj/lib/tbf.o obj/lib/timer.o obj/lib/xmalloc.o obj/nest/a-path.o obj/nest/a-set.o obj/nest/cli.o obj/nest/cmds.o obj/nest/iface.o obj/nest/locks.o obj/nest/neighbor.o obj/nest/password.o obj/nest/proto.o obj/nest/rt-attr.o obj/nest/rt-dev.o obj/nest/rt-fib.o obj/nest/rt-show.o obj/nest/rt-table.o obj/proto/bfd/bfd.o obj/proto/bfd/io.o obj/proto/bfd/packets.o obj/proto/babel/babel.o obj/proto/babel/packets.o obj/proto/bgp/attrs.o obj/proto/bgp/bgp.o obj/proto/bgp/packets.o obj/proto/mrt/mrt.o obj/proto/ospf/dbdes.o obj/proto/ospf/hello.o obj/proto/ospf/iface.o obj/proto/ospf/lsack.o obj/proto/ospf/lsalib.o obj/proto/ospf/lsreq.o obj/proto/ospf/lsupd.o obj/proto/ospf/neighbor.o obj/proto/ospf/ospf.o obj/proto/ospf/packet.o obj/proto/ospf/rt.o obj/proto/ospf/topology.o obj/proto/perf/perf.o obj/proto/pipe/pipe.o obj/proto/radv/packets.o obj/proto/radv/radv.o obj/proto/rip/packets.o obj/proto/rip/rip.o obj/proto/rpki/rpki.o obj/proto/rpki/packets.o obj/proto/rpki/tcp_transport.o obj/proto/rpki/ssh_transport.o obj/proto/rpki/transport.o obj/proto/static/static.o obj/sysdep/linux/netlink.o obj/sysdep/unix/io.o obj/sysdep/unix/krt.o obj/sysdep/unix/log.o obj/sysdep/unix/main.o obj/sysdep/unix/random.o
CC -o obj/client/commands.o -c client/commands.c
CC -o obj/client/util.o -c client/util.c
CC -o obj/client/client.o -c client/client.c
CC -o obj/client/birdcl.o -c client/birdcl.c
LD -pthread -flto=4 -g -o birdcl obj/client/commands.o obj/client/util.o obj/client/client.o obj/client/birdcl.o
CC -o obj/client/birdc.o -c client/birdc.c
LD -pthread -flto=4 -g -o birdc obj/client/commands.o obj/client/util.o obj/client/client.o obj/client/birdc.o -lreadline -ltinfo
/usr/bin/install -c -d //usr/local/sbin //usr/local/etc //usr/local/var/run
for BIN in bird birdcl birdc ; do \
/usr/bin/install -c ./$BIN //usr/local/sbin/$BIN ; \
done
if ! test -f //usr/local/etc/bird.conf ; then \
/usr/bin/install -c -m 644 ./doc/bird.conf.example //usr/local/etc/bird.conf ; \
else \
echo "Not overwriting old bird.conf" ; \
fi
Not overwriting old bird.conf
make: Nothing to be done for 'all'.
install -d "../lua/bpf"
install -m660 granted.bpf declined.bpf grantedv2.bpf web.bpf tcp-services.bpf "../lua/bpf"
We were able to move past this error after ninja reconfigure
Thank you.
here is the lshw network bus info.
lshw -c network -businfo
Now we are running gatekeeper
$ sudo build/gatekeeper
Do we need to run the gatekeeper with specific params? Thank you