mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-29 18:10:23 +00:00
build: zebra: remove *_method Makefile hacks
replace with preprocessor checks in source files. Much simpler... Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
parent
64d44794fe
commit
ddfeb48652
239
configure.ac
239
configure.ac
@ -415,26 +415,6 @@ if test "${enable_rr_semantics}" != "no" ; then
|
|||||||
AC_DEFINE(HAVE_V6_RR_SEMANTICS,, Compile in v6 Route Replacement Semantics)
|
AC_DEFINE(HAVE_V6_RR_SEMANTICS,, Compile in v6 Route Replacement Semantics)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl ----------
|
|
||||||
dnl MPLS check
|
|
||||||
dnl ----------
|
|
||||||
AC_MSG_CHECKING(whether this OS has MPLS stack)
|
|
||||||
case "$host" in
|
|
||||||
*-linux*)
|
|
||||||
MPLS_METHOD="zebra_mpls_netlink.o"
|
|
||||||
AC_MSG_RESULT(Linux MPLS)
|
|
||||||
;;
|
|
||||||
*-openbsd*)
|
|
||||||
MPLS_METHOD="zebra_mpls_openbsd.o"
|
|
||||||
AC_MSG_RESULT(OpenBSD MPLS)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
MPLS_METHOD="zebra_mpls_null.o"
|
|
||||||
AC_MSG_RESULT(Unsupported kernel)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
AC_SUBST(MPLS_METHOD)
|
|
||||||
|
|
||||||
if test "${enable_datacenter}" = "yes" ; then
|
if test "${enable_datacenter}" = "yes" ; then
|
||||||
AC_DEFINE(HAVE_DATACENTER,,Compile extensions for a DataCenter)
|
AC_DEFINE(HAVE_DATACENTER,,Compile extensions for a DataCenter)
|
||||||
DFLT_NAME="datacenter"
|
DFLT_NAME="datacenter"
|
||||||
@ -850,49 +830,51 @@ FRR_INCLUDES
|
|||||||
|
|
||||||
dnl V6 headers are checked below, after we check for v6
|
dnl V6 headers are checked below, after we check for v6
|
||||||
|
|
||||||
dnl Some systems (Solaris 2.x) require libnsl (Network Services Library)
|
AC_MSG_CHECKING([which operating system interface to use])
|
||||||
case "$host" in
|
case "$host_os" in
|
||||||
[*-sunos5.[6-7]*] | [*-solaris2.[6-7]*])
|
sunos* | solaris2*)
|
||||||
opsys=sol2-6
|
AC_MSG_RESULT([Solaris])
|
||||||
AC_DEFINE(SUNOS_56, 1, SunOS 5.6 to 5.7)
|
|
||||||
AC_DEFINE(SUNOS_5, 1, SunOS 5)
|
|
||||||
AC_CHECK_LIB(xnet, main)
|
|
||||||
CURSES=-lcurses
|
|
||||||
SOLARIS="solaris"
|
|
||||||
;;
|
|
||||||
[*-sunos5.[8-9]] \
|
|
||||||
| [*-sunos5.1[0-9]] \
|
|
||||||
| [*-sunos5.1[0-9].[0-9]] \
|
|
||||||
| [*-solaris2.[8-9]] \
|
|
||||||
| [*-solaris2.1[0-9]] \
|
|
||||||
| [*-solaris2.1[0-9].[0-9]])
|
|
||||||
opsys=sol8
|
|
||||||
AC_DEFINE(SUNOS_59, 1, [SunOS 5.8 up])
|
|
||||||
AC_DEFINE(SUNOS_5, 1, [SunOS 5])
|
AC_DEFINE(SUNOS_5, 1, [SunOS 5])
|
||||||
|
AC_DEFINE(SOLARIS_IPV6, 1, Solaris IPv6)
|
||||||
|
|
||||||
AC_CHECK_LIB(socket, main)
|
AC_CHECK_LIB(socket, main)
|
||||||
AC_CHECK_LIB(nsl, main)
|
AC_CHECK_LIB(nsl, main)
|
||||||
AC_CHECK_LIB(umem, main)
|
AC_CHECK_LIB(umem, main)
|
||||||
AC_CHECK_FUNCS([printstack],
|
AC_CHECK_FUNCS([printstack], [
|
||||||
[AC_DEFINE([HAVE_PRINTSTACK],1,[Solaris printstack])
|
AC_DEFINE([HAVE_PRINTSTACK],1,[Solaris printstack])
|
||||||
AC_DEFINE([HAVE_STACK_TRACE],1,[Stack symbols decode functionality])
|
AC_DEFINE([HAVE_STACK_TRACE],1,[Stack symbols decode functionality])
|
||||||
])
|
])
|
||||||
CURSES=-lcurses
|
CURSES=-lcurses
|
||||||
SOLARIS="solaris"
|
SOLARIS="solaris"
|
||||||
;;
|
;;
|
||||||
*-sunos5* | *-solaris2*)
|
linux*)
|
||||||
AC_DEFINE(SUNOS_5,,SunOS 5, Unknown SunOS)
|
AC_MSG_RESULT([Linux])
|
||||||
AC_CHECK_LIB(socket, main)
|
|
||||||
AC_CHECK_LIB(nsl, main)
|
|
||||||
CURSES=-lcurses
|
|
||||||
SOLARIS="solaris"
|
|
||||||
;;
|
|
||||||
*-linux*)
|
|
||||||
opsys=gnu-linux
|
|
||||||
AC_DEFINE(GNU_LINUX,,GNU Linux)
|
AC_DEFINE(GNU_LINUX,,GNU Linux)
|
||||||
|
AC_DEFINE(HAVE_NETLINK,,netlink)
|
||||||
|
AC_DEFINE(LINUX_IPV6,1,Linux IPv6 stack)
|
||||||
|
|
||||||
|
dnl Linux has a compilation problem with mixing
|
||||||
|
dnl netinet/in.h and linux/in6.h they are not
|
||||||
|
dnl compatible. There has been discussion on
|
||||||
|
dnl how to fix it but no real progress on implementation
|
||||||
|
dnl when they fix it, remove this
|
||||||
|
AC_DEFINE(IPV6_MINHOPCOUNT, 73, Linux ipv6 Min Hop Count)
|
||||||
|
|
||||||
|
AC_CHECK_DECLS([IFLA_INFO_SLAVE_KIND], [], [], [#include <linux/if_link.h>])
|
||||||
;;
|
;;
|
||||||
*-openbsd*)
|
openbsd*)
|
||||||
opsys=openbsd
|
AC_MSG_RESULT([OpenBSD])
|
||||||
|
|
||||||
AC_DEFINE(OPEN_BSD,,OpenBSD)
|
AC_DEFINE(OPEN_BSD,,OpenBSD)
|
||||||
|
AC_DEFINE(KAME,1,KAME IPv6)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_MSG_RESULT([BSD])
|
||||||
|
|
||||||
|
AC_DEFINE(HAVE_NET_RT_IFLIST,,NET_RT_IFLIST)
|
||||||
|
AC_DEFINE(KAME,1,KAME IPv6)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -1049,26 +1031,6 @@ AC_CHECK_HEADER([asm-generic/unistd.h],
|
|||||||
AC_CHECK_FUNCS(setns)]
|
AC_CHECK_FUNCS(setns)]
|
||||||
)
|
)
|
||||||
|
|
||||||
dnl ------------------------------------
|
|
||||||
dnl Determine routing get and set method
|
|
||||||
dnl ------------------------------------
|
|
||||||
AC_MSG_CHECKING(zebra between kernel interface method)
|
|
||||||
if test x"$opsys" = x"gnu-linux"; then
|
|
||||||
AC_MSG_RESULT(netlink)
|
|
||||||
RT_METHOD=rt_netlink.o
|
|
||||||
KERNEL_METHOD=kernel_netlink.o
|
|
||||||
AC_DEFINE(HAVE_NETLINK,,netlink)
|
|
||||||
netlink=yes
|
|
||||||
AC_CHECK_DECLS([IFLA_INFO_SLAVE_KIND], [], [], [#include <linux/if_link.h>])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(Route socket)
|
|
||||||
KERNEL_METHOD="kernel_socket.o"
|
|
||||||
RT_METHOD="rt_socket.o"
|
|
||||||
fi
|
|
||||||
AC_SUBST(RT_METHOD)
|
|
||||||
AC_SUBST(KERNEL_METHOD)
|
|
||||||
AM_CONDITIONAL([HAVE_NETLINK], [test "x$netlink" = "xyes"])
|
|
||||||
|
|
||||||
dnl --------------------------
|
dnl --------------------------
|
||||||
dnl Determine IS-IS I/O method
|
dnl Determine IS-IS I/O method
|
||||||
dnl --------------------------
|
dnl --------------------------
|
||||||
@ -1078,13 +1040,17 @@ AC_DEFINE(ISIS_METHOD_BPF, 3, [ constant value for isis method bpf ])
|
|||||||
AC_CHECK_HEADER(net/bpf.h)
|
AC_CHECK_HEADER(net/bpf.h)
|
||||||
AC_CHECK_HEADER(sys/dlpi.h)
|
AC_CHECK_HEADER(sys/dlpi.h)
|
||||||
AC_MSG_CHECKING(zebra IS-IS I/O method)
|
AC_MSG_CHECKING(zebra IS-IS I/O method)
|
||||||
if test x"$opsys" = x"gnu-linux"; then
|
|
||||||
|
case "$host_os" in
|
||||||
|
linux*)
|
||||||
AC_MSG_RESULT(pfpacket)
|
AC_MSG_RESULT(pfpacket)
|
||||||
ISIS_METHOD_MACRO="ISIS_METHOD_PFPACKET"
|
ISIS_METHOD_MACRO="ISIS_METHOD_PFPACKET"
|
||||||
elif test x"$opsys" = x"sol2-6" -o x"$opsys" = x"sol8"; then
|
;;
|
||||||
|
solaris* | sunos*)
|
||||||
AC_MSG_RESULT(DLPI)
|
AC_MSG_RESULT(DLPI)
|
||||||
ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
|
ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
|
||||||
else
|
;;
|
||||||
|
*)
|
||||||
if test $ac_cv_header_net_bpf_h = no; then
|
if test $ac_cv_header_net_bpf_h = no; then
|
||||||
if test $ac_cv_header_sys_dlpi_h = no; then
|
if test $ac_cv_header_sys_dlpi_h = no; then
|
||||||
AC_MSG_RESULT(none)
|
AC_MSG_RESULT(none)
|
||||||
@ -1098,7 +1064,8 @@ else
|
|||||||
AC_MSG_RESULT(BPF)
|
AC_MSG_RESULT(BPF)
|
||||||
ISIS_METHOD_MACRO="ISIS_METHOD_BPF"
|
ISIS_METHOD_MACRO="ISIS_METHOD_BPF"
|
||||||
fi
|
fi
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
AC_DEFINE_UNQUOTED(ISIS_METHOD, $ISIS_METHOD_MACRO, [ selected method for isis, == one of the constants ])
|
AC_DEFINE_UNQUOTED(ISIS_METHOD, $ISIS_METHOD_MACRO, [ selected method for isis, == one of the constants ])
|
||||||
|
|
||||||
dnl ------------------------------------
|
dnl ------------------------------------
|
||||||
@ -1128,59 +1095,6 @@ main()
|
|||||||
}]])],[AC_MSG_RESULT(yes - using workaround) AC_DEFINE(HAVE_BROKEN_CMSG_FIRSTHDR,,Broken CMSG_FIRSTHDR)],
|
}]])],[AC_MSG_RESULT(yes - using workaround) AC_DEFINE(HAVE_BROKEN_CMSG_FIRSTHDR,,Broken CMSG_FIRSTHDR)],
|
||||||
[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
|
[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
|
||||||
|
|
||||||
dnl ------------------------------
|
|
||||||
dnl check kernel route read method
|
|
||||||
dnl ------------------------------
|
|
||||||
AC_CACHE_CHECK([route read method], [frr_cv_rtread_method],
|
|
||||||
[if test "x$netlink" = xyes; then
|
|
||||||
frr_cv_rtread_method="netlink"
|
|
||||||
else
|
|
||||||
for frr_cv_rtread_method in /dev/ip /dev/null;
|
|
||||||
do
|
|
||||||
test x`ls $frr_cv_rtread_method 2>/dev/null` = x"$frr_cv_rtread_method" && break
|
|
||||||
done
|
|
||||||
case $frr_cv_rtread_method in
|
|
||||||
"/dev/ip")
|
|
||||||
case "$host" in
|
|
||||||
*-freebsd*) frr_cv_rtread_method="sysctl";;
|
|
||||||
*) frr_cv_rtread_method="getmsg";;
|
|
||||||
esac;;
|
|
||||||
*)
|
|
||||||
frr_cv_rtread_method="sysctl";;
|
|
||||||
esac
|
|
||||||
fi])
|
|
||||||
RTREAD_METHOD=rtread_${frr_cv_rtread_method}.o
|
|
||||||
AC_SUBST(RTREAD_METHOD)
|
|
||||||
|
|
||||||
dnl -----------------------------
|
|
||||||
dnl check interface lookup method
|
|
||||||
dnl -----------------------------
|
|
||||||
IOCTL_METHOD=ioctl.o
|
|
||||||
AC_MSG_CHECKING(interface looking up method)
|
|
||||||
if test "$netlink" = yes; then
|
|
||||||
AC_MSG_RESULT(netlink)
|
|
||||||
IF_METHOD=if_netlink.o
|
|
||||||
elif test "$opsys" = "sol2-6";then
|
|
||||||
AC_MSG_RESULT(Solaris GIF)
|
|
||||||
IF_METHOD=if_ioctl.o
|
|
||||||
elif test "$opsys" = "sol8";then
|
|
||||||
AC_MSG_RESULT(Solaris GLIF)
|
|
||||||
IF_METHOD=if_ioctl_solaris.o
|
|
||||||
IOCTL_METHOD=ioctl_solaris.o
|
|
||||||
elif test "$opsys" = "openbsd";then
|
|
||||||
AC_MSG_RESULT(openbsd)
|
|
||||||
IF_METHOD=if_ioctl.o
|
|
||||||
elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
|
|
||||||
AC_MSG_RESULT(sysctl)
|
|
||||||
IF_METHOD=if_sysctl.o
|
|
||||||
AC_DEFINE(HAVE_NET_RT_IFLIST,,NET_RT_IFLIST)
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(ioctl)
|
|
||||||
IF_METHOD=if_ioctl.o
|
|
||||||
fi
|
|
||||||
AC_SUBST(IF_METHOD)
|
|
||||||
AC_SUBST(IOCTL_METHOD)
|
|
||||||
|
|
||||||
dnl ---------------------------------------------------------------
|
dnl ---------------------------------------------------------------
|
||||||
dnl figure out how to specify an interface in multicast sockets API
|
dnl figure out how to specify an interface in multicast sockets API
|
||||||
dnl ---------------------------------------------------------------
|
dnl ---------------------------------------------------------------
|
||||||
@ -1276,71 +1190,11 @@ if test $ac_cv_have_decl_TCP_MD5SIG = no; then
|
|||||||
AC_CHECK_DECLS([TCP_MD5SIG], [], [], MD5_INCLUDES)])
|
AC_CHECK_DECLS([TCP_MD5SIG], [], [], MD5_INCLUDES)])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl -----------------------------
|
|
||||||
dnl check ipforward detect method
|
|
||||||
dnl -----------------------------
|
|
||||||
AC_CACHE_CHECK([ipforward method], [frr_cv_ipforward_method],
|
|
||||||
[if test x$cross_compiling = xyes; then
|
|
||||||
if test x"$opsys" = x"gnu-linux"; then
|
|
||||||
frr_cv_ipforward_method=/proc/net/snmp
|
|
||||||
else
|
|
||||||
frr_cv_ipforward_method=/dev/ip
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
for frr_cv_ipforward_method in /proc/net/snmp /dev/ip /dev/null;
|
|
||||||
do
|
|
||||||
test x`ls $frr_cv_ipforward_method 2>/dev/null` = x"$frr_cv_ipforward_method" && break
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
case $frr_cv_ipforward_method in
|
|
||||||
"/proc/net/snmp") frr_cv_ipforward_method="proc";;
|
|
||||||
"/dev/ip")
|
|
||||||
case "$host" in
|
|
||||||
*-freebsd*) frr_cv_ipforward_method="sysctl";;
|
|
||||||
*) frr_cv_ipforward_method="solaris";;
|
|
||||||
esac;;
|
|
||||||
*) frr_cv_ipforward_method="sysctl";;
|
|
||||||
esac])
|
|
||||||
IPFORWARD=ipforward_${frr_cv_ipforward_method}.o
|
|
||||||
AC_SUBST(IPFORWARD)
|
|
||||||
|
|
||||||
dnl ----------------------------------------------------------------------------
|
dnl ----------------------------------------------------------------------------
|
||||||
dnl figure out if domainname is available in the utsname struct (GNU extension).
|
dnl figure out if domainname is available in the utsname struct (GNU extension).
|
||||||
dnl ----------------------------------------------------------------------------
|
dnl ----------------------------------------------------------------------------
|
||||||
AC_CHECK_MEMBERS([struct utsname.domainname], [], [], [#include <sys/utsname.h>])
|
AC_CHECK_MEMBERS([struct utsname.domainname], [], [], [#include <sys/utsname.h>])
|
||||||
|
|
||||||
dnl ----------
|
|
||||||
dnl IPv6 check
|
|
||||||
dnl ----------
|
|
||||||
AC_MSG_CHECKING(whether does this OS have IPv6 stack)
|
|
||||||
dnl ---------
|
|
||||||
dnl KAME IPv6
|
|
||||||
dnl ---------
|
|
||||||
if grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
|
|
||||||
AC_DEFINE(KAME,1,KAME IPv6)
|
|
||||||
AC_MSG_RESULT(KAME)
|
|
||||||
dnl ------------------------------------
|
|
||||||
dnl Solaris 9, 10 and potentially higher
|
|
||||||
dnl ------------------------------------
|
|
||||||
elif test x"$opsys" = x"sol8"; then
|
|
||||||
AC_DEFINE(SOLARIS_IPV6, 1, Solaris IPv6)
|
|
||||||
AC_MSG_RESULT(Solaris IPv6)
|
|
||||||
dnl ----------
|
|
||||||
dnl Linux IPv6
|
|
||||||
dnl ----------
|
|
||||||
elif test x"$opsys" = x"gnu-linux"; then
|
|
||||||
AC_DEFINE(LINUX_IPV6,1,Linux IPv6 stack)
|
|
||||||
dnl Linux has a compilation problem with mixing
|
|
||||||
dnl netinet/in.h and linux/in6.h they are not
|
|
||||||
dnl compatible. There has been discussion on
|
|
||||||
dnl how to fix it but no real progress on implementation
|
|
||||||
dnl when they fix it, remove this
|
|
||||||
AC_DEFINE(IPV6_MINHOPCOUNT, 73, Linux ipv6 Min Hop Count)
|
|
||||||
AC_MSG_RESULT(Linux IPv6)
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR([Failed to detect IPv6 stack])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl ------------------
|
dnl ------------------
|
||||||
dnl IPv6 header checks
|
dnl IPv6 header checks
|
||||||
dnl ------------------
|
dnl ------------------
|
||||||
@ -1407,15 +1261,18 @@ fi
|
|||||||
AM_CONDITIONAL(LDPD, test "x$LDPD" = "xldpd")
|
AM_CONDITIONAL(LDPD, test "x$LDPD" = "xldpd")
|
||||||
|
|
||||||
NHRPD=""
|
NHRPD=""
|
||||||
if test "$opsys" = "gnu-linux"; then
|
case "$host_os" in
|
||||||
|
linux*)
|
||||||
if test "${enable_nhrpd}" != "no"; then
|
if test "${enable_nhrpd}" != "no"; then
|
||||||
NHRPD="nhrpd"
|
NHRPD="nhrpd"
|
||||||
fi
|
fi
|
||||||
else
|
;;
|
||||||
|
*)
|
||||||
if test "${enable_nhrpd}" = "yes"; then
|
if test "${enable_nhrpd}" = "yes"; then
|
||||||
AC_MSG_ERROR([nhrpd requires kernel APIs that are only present on Linux.])
|
AC_MSG_ERROR([nhrpd requires kernel APIs that are only present on Linux.])
|
||||||
fi
|
fi
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
AM_CONDITIONAL(NHRPD, test "x$NHRPD" = "xnhrpd")
|
AM_CONDITIONAL(NHRPD, test "x$NHRPD" = "xnhrpd")
|
||||||
|
|
||||||
if test "${enable_eigrpd}" = "no";then
|
if test "${enable_eigrpd}" = "no";then
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef OPEN_BSD
|
||||||
|
|
||||||
#include "if.h"
|
#include "if.h"
|
||||||
#include "sockunion.h"
|
#include "sockunion.h"
|
||||||
#include "prefix.h"
|
#include "prefix.h"
|
||||||
@ -328,3 +330,5 @@ void interface_list(struct zebra_ns *zns)
|
|||||||
ifaddr_proc_ipv6();
|
ifaddr_proc_ipv6();
|
||||||
#endif /* HAVE_PROC_NET_IF_INET6 */
|
#endif /* HAVE_PROC_NET_IF_INET6 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* OPEN_BSD */
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef SUNOS_5
|
||||||
|
|
||||||
#include "if.h"
|
#include "if.h"
|
||||||
#include "sockunion.h"
|
#include "sockunion.h"
|
||||||
#include "prefix.h"
|
#include "prefix.h"
|
||||||
@ -358,3 +360,5 @@ struct connected *if_lookup_linklocal(struct interface *ifp)
|
|||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* SUNOS_5 */
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef GNU_LINUX
|
||||||
|
|
||||||
/* The following definition is to workaround an issue in the Linux kernel
|
/* The following definition is to workaround an issue in the Linux kernel
|
||||||
* header files with redefinition of 'struct in6_addr' in both
|
* header files with redefinition of 'struct in6_addr' in both
|
||||||
* netinet/in.h and linux/in6.h.
|
* netinet/in.h and linux/in6.h.
|
||||||
@ -1218,3 +1220,5 @@ void interface_list(struct zebra_ns *zns)
|
|||||||
{
|
{
|
||||||
interface_lookup_netlink(zns);
|
interface_lookup_netlink(zns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* GNU_LINUX */
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#if !defined(GNU_LINUX) && !defined(OPEN_BSD) && !defined(SUNOS_5)
|
||||||
|
|
||||||
#include "if.h"
|
#include "if.h"
|
||||||
#include "sockunion.h"
|
#include "sockunion.h"
|
||||||
#include "prefix.h"
|
#include "prefix.h"
|
||||||
@ -134,3 +136,5 @@ void interface_list(struct zebra_ns *zns)
|
|||||||
/* Free sysctl buffer. */
|
/* Free sysctl buffer. */
|
||||||
XFREE(MTYPE_TMP, ref);
|
XFREE(MTYPE_TMP, ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* !defined(GNU_LINUX) && !defined(OPEN_BSD) && !defined(SUNOS_5) */
|
||||||
|
@ -33,6 +33,8 @@
|
|||||||
#include "zebra/rt.h"
|
#include "zebra/rt.h"
|
||||||
#include "zebra/interface.h"
|
#include "zebra/interface.h"
|
||||||
|
|
||||||
|
#ifndef SUNOS_5
|
||||||
|
|
||||||
#ifdef HAVE_BSD_LINK_DETECT
|
#ifdef HAVE_BSD_LINK_DETECT
|
||||||
#include <net/if_media.h>
|
#include <net/if_media.h>
|
||||||
#endif /* HAVE_BSD_LINK_DETECT*/
|
#endif /* HAVE_BSD_LINK_DETECT*/
|
||||||
@ -563,3 +565,5 @@ int if_prefix_delete_ipv6(struct interface *ifp, struct connected *ifc)
|
|||||||
#endif /* HAVE_STRUCT_IN6_ALIASREQ */
|
#endif /* HAVE_STRUCT_IN6_ALIASREQ */
|
||||||
|
|
||||||
#endif /* LINUX_IPV6 */
|
#endif /* LINUX_IPV6 */
|
||||||
|
|
||||||
|
#endif /* !SUNOS_5 */
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef SUNOS_5
|
||||||
|
|
||||||
#include "linklist.h"
|
#include "linklist.h"
|
||||||
#include "if.h"
|
#include "if.h"
|
||||||
#include "prefix.h"
|
#include "prefix.h"
|
||||||
@ -398,3 +400,5 @@ int if_prefix_delete_ipv6(struct interface *ifp, struct connected *ifc)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* SUNOS_5 */
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef GNU_LINUX
|
||||||
|
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "privs.h"
|
#include "privs.h"
|
||||||
|
|
||||||
@ -193,3 +195,5 @@ int ipforward_ipv6_off(void)
|
|||||||
|
|
||||||
return ipforward_ipv6();
|
return ipforward_ipv6();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* GNU_LINUX */
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef SUNOS_5
|
||||||
|
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "prefix.h"
|
#include "prefix.h"
|
||||||
|
|
||||||
@ -153,3 +156,5 @@ int ipforward_ipv6_off(void)
|
|||||||
(void)solaris_nd_set("ip6_forwarding", 0);
|
(void)solaris_nd_set("ip6_forwarding", 0);
|
||||||
return ipforward_ipv6();
|
return ipforward_ipv6();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* SUNOS_5 */
|
||||||
|
@ -19,6 +19,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#if !defined(GNU_LINUX) && !defined(SUNOS_5)
|
||||||
|
|
||||||
#include "privs.h"
|
#include "privs.h"
|
||||||
#include "zebra/ipforward.h"
|
#include "zebra/ipforward.h"
|
||||||
|
|
||||||
@ -147,3 +150,5 @@ int ipforward_ipv6_off(void)
|
|||||||
zlog_err("Can't lower privileges");
|
zlog_err("Can't lower privileges");
|
||||||
return ip6forwarding;
|
return ip6forwarding;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* !defined(GNU_LINUX) && !defined(SUNOS_5) */
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_NETLINK
|
||||||
|
|
||||||
#include "linklist.h"
|
#include "linklist.h"
|
||||||
#include "if.h"
|
#include "if.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
@ -826,3 +828,5 @@ void kernel_terminate(struct zebra_ns *zns)
|
|||||||
zns->netlink_cmd.sock = -1;
|
zns->netlink_cmd.sock = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* HAVE_NETLINK */
|
||||||
|
@ -19,6 +19,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifndef HAVE_NETLINK
|
||||||
|
|
||||||
#include <net/if_types.h>
|
#include <net/if_types.h>
|
||||||
#ifdef __OpenBSD__
|
#ifdef __OpenBSD__
|
||||||
#include <netmpls/mpls.h>
|
#include <netmpls/mpls.h>
|
||||||
@ -1376,3 +1379,5 @@ void kernel_terminate(struct zebra_ns *zns)
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* !HAVE_NETLINK */
|
||||||
|
@ -19,6 +19,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_NETLINK
|
||||||
|
|
||||||
#include <net/if_arp.h>
|
#include <net/if_arp.h>
|
||||||
|
|
||||||
/* Hack for GNU libc version 2. */
|
/* Hack for GNU libc version 2. */
|
||||||
@ -2442,3 +2445,5 @@ void clear_nhlfe_installed(zebra_lsp_t *lsp)
|
|||||||
UNSET_FLAG(nexthop->flags, NEXTHOP_FLAG_FIB);
|
UNSET_FLAG(nexthop->flags, NEXTHOP_FLAG_FIB);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* HAVE_NETLINK */
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifndef HAVE_NETLINK
|
||||||
|
|
||||||
#ifdef __OpenBSD__
|
#ifdef __OpenBSD__
|
||||||
#include <netmpls/mpls.h>
|
#include <netmpls/mpls.h>
|
||||||
#endif
|
#endif
|
||||||
@ -443,3 +446,5 @@ int kernel_del_neigh(struct interface *ifp, struct ipaddr *ip)
|
|||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* !HAVE_NETLINK */
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef SUNOS_5
|
||||||
|
|
||||||
#include "prefix.h"
|
#include "prefix.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "if.h"
|
#include "if.h"
|
||||||
@ -258,3 +260,5 @@ void neigh_read(struct zebra_ns *zns)
|
|||||||
void neigh_read_for_vlan(struct zebra_ns *zns, struct interface *vlan_if)
|
void neigh_read_for_vlan(struct zebra_ns *zns, struct interface *vlan_if)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* SUNOS_5 */
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef GNU_LINUX
|
||||||
|
|
||||||
#include "vty.h"
|
#include "vty.h"
|
||||||
#include "zebra/zserv.h"
|
#include "zebra/zserv.h"
|
||||||
#include "zebra/rt_netlink.h"
|
#include "zebra/rt_netlink.h"
|
||||||
@ -50,3 +52,5 @@ void neigh_read_for_vlan(struct zebra_ns *zns, struct interface *vlan_if)
|
|||||||
{
|
{
|
||||||
netlink_neigh_read_for_vlan(zns, vlan_if);
|
netlink_neigh_read_for_vlan(zns, vlan_if);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* GNU_LINUX */
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#if !defined(GNU_LINUX) && !defined(SUNOS_5)
|
||||||
|
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "zebra_memory.h"
|
#include "zebra_memory.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
@ -90,3 +92,5 @@ void neigh_read(struct zebra_ns *zns)
|
|||||||
void neigh_read_for_vlan(struct zebra_ns *zns, struct interface *vlan_if)
|
void neigh_read_for_vlan(struct zebra_ns *zns, struct interface *vlan_if)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* !defined(GNU_LINUX) && !defined(SUNOS_5) */
|
||||||
|
@ -16,42 +16,41 @@ endif
|
|||||||
## endif ZEBRA
|
## endif ZEBRA
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ipforward = @IPFORWARD@
|
zebra_zebra_LDADD = lib/libfrr.la $(LIBCAP)
|
||||||
if_method = @IF_METHOD@
|
|
||||||
rt_method = @RT_METHOD@
|
|
||||||
rtread_method = @RTREAD_METHOD@
|
|
||||||
kernel_method = @KERNEL_METHOD@
|
|
||||||
ioctl_method = @IOCTL_METHOD@
|
|
||||||
mpls_method = @MPLS_METHOD@
|
|
||||||
|
|
||||||
otherobj = \
|
|
||||||
zebra/$(ioctl_method) \
|
|
||||||
zebra/$(ipforward) \
|
|
||||||
zebra/$(if_method) \
|
|
||||||
zebra/$(rt_method) \
|
|
||||||
zebra/$(rtread_method) \
|
|
||||||
zebra/$(kernel_method) \
|
|
||||||
zebra/$(mpls_method) \
|
|
||||||
# end
|
|
||||||
|
|
||||||
zebra_zebra_LDADD = $(otherobj) lib/libfrr.la $(LIBCAP)
|
|
||||||
zebra_zebra_DEPENDENCIES = $(otherobj) lib/libfrr.la
|
|
||||||
|
|
||||||
zebra_zebra_SOURCES = \
|
zebra_zebra_SOURCES = \
|
||||||
zebra/connected.c \
|
zebra/connected.c \
|
||||||
zebra/debug.c \
|
zebra/debug.c \
|
||||||
|
zebra/if_ioctl.c \
|
||||||
|
zebra/if_ioctl_solaris.c \
|
||||||
|
zebra/if_netlink.c \
|
||||||
|
zebra/if_sysctl.c \
|
||||||
zebra/interface.c \
|
zebra/interface.c \
|
||||||
|
zebra/ioctl.c \
|
||||||
|
zebra/ioctl_solaris.c \
|
||||||
|
zebra/ipforward_proc.c \
|
||||||
|
zebra/ipforward_solaris.c \
|
||||||
|
zebra/ipforward_sysctl.c \
|
||||||
zebra/irdp_interface.c \
|
zebra/irdp_interface.c \
|
||||||
zebra/irdp_main.c \
|
zebra/irdp_main.c \
|
||||||
zebra/irdp_packet.c \
|
zebra/irdp_packet.c \
|
||||||
|
zebra/kernel_netlink.c \
|
||||||
|
zebra/kernel_socket.c \
|
||||||
zebra/label_manager.c \
|
zebra/label_manager.c \
|
||||||
zebra/main.c \
|
zebra/main.c \
|
||||||
zebra/redistribute.c \
|
zebra/redistribute.c \
|
||||||
zebra/router-id.c \
|
zebra/router-id.c \
|
||||||
|
zebra/rt_netlink.c \
|
||||||
|
zebra/rt_socket.c \
|
||||||
zebra/rtadv.c \
|
zebra/rtadv.c \
|
||||||
|
zebra/rtread_getmsg.c \
|
||||||
|
zebra/rtread_netlink.c \
|
||||||
|
zebra/rtread_sysctl.c \
|
||||||
zebra/zebra_l2.c \
|
zebra/zebra_l2.c \
|
||||||
zebra/zebra_memory.c \
|
zebra/zebra_memory.c \
|
||||||
zebra/zebra_mpls.c \
|
zebra/zebra_mpls.c \
|
||||||
|
zebra/zebra_mpls_netlink.c \
|
||||||
|
zebra/zebra_mpls_openbsd.c \
|
||||||
|
zebra/zebra_mpls_null.c \
|
||||||
zebra/zebra_mpls_vty.c \
|
zebra/zebra_mpls_vty.c \
|
||||||
zebra/zebra_mroute.c \
|
zebra/zebra_mroute.c \
|
||||||
zebra/zebra_ns.c \
|
zebra/zebra_ns.c \
|
||||||
@ -112,9 +111,7 @@ zebra_zebra_snmp_la_LIBADD = lib/libfrrsnmp.la
|
|||||||
zebra_zebra_fpm_la_LDFLAGS = -avoid-version -module -shared -export-dynamic
|
zebra_zebra_fpm_la_LDFLAGS = -avoid-version -module -shared -export-dynamic
|
||||||
zebra_zebra_fpm_la_LIBADD = $(Q_FPM_PB_CLIENT_LDOPTS)
|
zebra_zebra_fpm_la_LIBADD = $(Q_FPM_PB_CLIENT_LDOPTS)
|
||||||
zebra_zebra_fpm_la_SOURCES = zebra/zebra_fpm.c
|
zebra_zebra_fpm_la_SOURCES = zebra/zebra_fpm.c
|
||||||
if HAVE_NETLINK
|
|
||||||
zebra_zebra_fpm_la_SOURCES += zebra/zebra_fpm_netlink.c
|
zebra_zebra_fpm_la_SOURCES += zebra/zebra_fpm_netlink.c
|
||||||
endif
|
|
||||||
if HAVE_PROTOBUF
|
if HAVE_PROTOBUF
|
||||||
zebra_zebra_fpm_la_SOURCES += zebra/zebra_fpm_protobuf.c
|
zebra_zebra_fpm_la_SOURCES += zebra/zebra_fpm_protobuf.c
|
||||||
if DEV_BUILD
|
if DEV_BUILD
|
||||||
@ -125,25 +122,6 @@ endif
|
|||||||
EXTRA_DIST += \
|
EXTRA_DIST += \
|
||||||
zebra/GNOME-SMI \
|
zebra/GNOME-SMI \
|
||||||
zebra/GNOME-PRODUCT-ZEBRA-MIB \
|
zebra/GNOME-PRODUCT-ZEBRA-MIB \
|
||||||
zebra/if_ioctl.c \
|
|
||||||
zebra/if_ioctl_solaris.c \
|
|
||||||
zebra/if_netlink.c \
|
|
||||||
zebra/if_sysctl.c \
|
|
||||||
zebra/ioctl.c \
|
|
||||||
zebra/ioctl_solaris.c \
|
|
||||||
zebra/ipforward_proc.c \
|
|
||||||
zebra/ipforward_solaris.c \
|
|
||||||
zebra/ipforward_sysctl.c \
|
|
||||||
zebra/kernel_netlink.c \
|
|
||||||
zebra/kernel_socket.c \
|
|
||||||
zebra/rt_netlink.c \
|
|
||||||
zebra/rt_socket.c \
|
|
||||||
zebra/rtread_getmsg.c \
|
|
||||||
zebra/rtread_netlink.c \
|
|
||||||
zebra/rtread_sysctl.c \
|
|
||||||
zebra/zebra_mpls_netlink.c \
|
|
||||||
zebra/zebra_mpls_null.c \
|
|
||||||
zebra/zebra_mpls_openbsd.c \
|
|
||||||
# end
|
# end
|
||||||
|
|
||||||
# -- unmaintained --
|
# -- unmaintained --
|
||||||
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_NETLINK
|
||||||
|
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "rib.h"
|
#include "rib.h"
|
||||||
#include "vty.h"
|
#include "vty.h"
|
||||||
@ -457,3 +459,5 @@ int zfpm_netlink_encode_route(int cmd, rib_dest_t *dest, struct route_entry *re,
|
|||||||
|
|
||||||
return netlink_route_info_encode(ri, in_buf, in_buf_len);
|
return netlink_route_info_encode(ri, in_buf, in_buf_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* HAVE_NETLINK */
|
||||||
|
@ -19,6 +19,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_NETLINK
|
||||||
|
|
||||||
#include "zebra/rt.h"
|
#include "zebra/rt.h"
|
||||||
#include "zebra/rt_netlink.h"
|
#include "zebra/rt_netlink.h"
|
||||||
#include "zebra/zebra_mpls.h"
|
#include "zebra/zebra_mpls.h"
|
||||||
@ -105,3 +108,5 @@ int mpls_kernel_init(void)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif /* HAVE_NETLINK */
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
#include "zebra/rt.h"
|
#include "zebra/rt.h"
|
||||||
#include "zebra/zebra_mpls.h"
|
#include "zebra/zebra_mpls.h"
|
||||||
|
|
||||||
|
#if !defined(HAVE_NETLINK) && !defined(OPEN_BSD)
|
||||||
|
|
||||||
int kernel_add_lsp(zebra_lsp_t *lsp)
|
int kernel_add_lsp(zebra_lsp_t *lsp)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
@ -38,3 +40,5 @@ int mpls_kernel_init(void)
|
|||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif /* !defined(HAVE_NETLINK) && !defined(OPEN_BSD) */
|
||||||
|
@ -19,6 +19,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <zebra.h>
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#ifdef OPEN_BSD
|
||||||
|
|
||||||
#include <netmpls/mpls.h>
|
#include <netmpls/mpls.h>
|
||||||
#include "zebra/rt.h"
|
#include "zebra/rt.h"
|
||||||
#include "zebra/zebra_mpls.h"
|
#include "zebra/zebra_mpls.h"
|
||||||
@ -358,3 +361,5 @@ int mpls_kernel_init(void)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* OPEN_BSD */
|
||||||
|
Loading…
Reference in New Issue
Block a user