diff -r -u Makefile.in Makefile.in
--- Makefile.in
+++ Makefile.in
@@ -147,6 +147,8 @@
IOCTL_METHOD = @IOCTL_METHOD@
IPFORWARD = @IPFORWARD@
ISISD = @ISISD@
+ISIS_LIBS = @ISIS_LIBS@
+ISIS_TARGETS = @ISIS_TARGETS@
ISIS_TOPOLOGY_DIR = @ISIS_TOPOLOGY_DIR@
ISIS_TOPOLOGY_INCLUDES = @ISIS_TOPOLOGY_INCLUDES@
ISIS_TOPOLOGY_LIB = @ISIS_TOPOLOGY_LIB@
diff -r -u config.h.in config.h.in
--- config.h.in
+++ config.h.in
@@ -512,6 +512,9 @@
/* Define to 1 if you have the <time.h> header file. */
#undef HAVE_TIME_H
+/* Enable TRILL support */
+#undef HAVE_TRILL
+
/* Define to 1 if you have the <ucontext.h> header file. */
#undef HAVE_UCONTEXT_H
diff -r -u configure configure
--- configure
+++ configure
@@ -658,6 +658,8 @@
enable_vty_group
enable_group
enable_user
+ISIS_LIBS
+ISIS_TARGETS
ISIS_TOPOLOGY_LIB
ISIS_TOPOLOGY_DIR
ISIS_TOPOLOGY_INCLUDES
@@ -801,6 +803,7 @@
enable_ospf6d
enable_watchquagga
enable_isisd
+enable_trill
enable_solaris
enable_bgp_announce
enable_netlink
@@ -1482,6 +1485,7 @@
--disable-ospf6d do not build ospf6d
--disable-watchquagga do not build watchquagga
--enable-isisd build isisd
+ --enable-trill include trill support
--enable-solaris build solaris
--disable-bgp-announce, turn off BGP route announcement
--enable-netlink force to use Linux netlink interface
@@ -12125,6 +12129,11 @@
enableval=$enable_isisd;
fi
+# Check whether --enable-trill was given.
+if test "${enable_trill+set}" = set; then :
+ enableval=$enable_trill;
+fi
+
# Check whether --enable-solaris was given.
if test "${enable_solaris+set}" = set; then :
enableval=$enable_solaris;
@@ -12362,6 +12371,80 @@
+if test "${enable_trill}" = "yes"; then
+ ac_fn_c_check_header_mongrel "$LINENO" "net/trill.h" "ac_cv_header_net_trill_h" "$ac_includes_default"
+if test "x$ac_cv_header_net_trill_h" = xyes; then :
+
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dladm_valid_bridgename in -ldladm" >&5
+$as_echo_n "checking for dladm_valid_bridgename in -ldladm... " >&6; }
+if ${ac_cv_lib_dladm_dladm_valid_bridgename+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldladm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dladm_valid_bridgename ();
+int
+main ()
+{
+return dladm_valid_bridgename ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dladm_dladm_valid_bridgename=yes
+else
+ ac_cv_lib_dladm_dladm_valid_bridgename=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dladm_dladm_valid_bridgename" >&5
+$as_echo "$ac_cv_lib_dladm_dladm_valid_bridgename" >&6; }
+if test "x$ac_cv_lib_dladm_dladm_valid_bridgename" = xyes; then :
+ libdladm=yes
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking TRILL IS-IS support" >&5
+$as_echo_n "checking TRILL IS-IS support... " >&6; }
+ if test $ac_cv_header_net_trill_h = no || \
+ test $ac_cv_lib_dladm_dladm_valid_bridgename = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** TRILL IS-IS support will not be built ***" >&5
+$as_echo "$as_me: WARNING: *** TRILL IS-IS support will not be built ***" >&2;}
+ enable_trill=no
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define HAVE_TRILL /**/" >>confdefs.h
+
+ fi
+fi
+if test "${enable_trill}" = "yes"; then
+ ISIS_TARGETS="isisd trilld"
+ ISIS_LIBS=-ldladm
+else
+ ISIS_TARGETS="isisd"
+ ISIS_LIBS=
+fi
+
+
+
if test "${enable_user}" = "yes" || test x"${enable_user}" = x""; then
enable_user="quagga"
elif test "${enable_user}" = "no"; then
@@ -15985,45 +16068,48 @@
$as_echo "#define ISIS_METHOD_BPF 3" >>confdefs.h
-ac_fn_c_check_header_mongrel "$LINENO" "net/bpf.h" "ac_cv_header_net_bpf_h" "$ac_includes_default"
+if test "${enable_isisd}" = "yes"; then
+ ISIS_METHOD_MACRO=
+ ac_fn_c_check_header_mongrel "$LINENO" "net/bpf.h" "ac_cv_header_net_bpf_h" "$ac_includes_default"
if test "x$ac_cv_header_net_bpf_h" = xyes; then :
fi
-ac_fn_c_check_header_mongrel "$LINENO" "sys/dlpi.h" "ac_cv_header_sys_dlpi_h" "$ac_includes_default"
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/dlpi.h" "ac_cv_header_sys_dlpi_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_dlpi_h" = xyes; then :
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking zebra IS-IS I/O method" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking zebra IS-IS I/O method" >&5
$as_echo_n "checking zebra IS-IS I/O method... " >&6; }
-if test x"$opsys" = x"gnu-linux"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: pfpacket" >&5
+ if test x"$opsys" = x"gnu-linux"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: pfpacket" >&5
$as_echo "pfpacket" >&6; }
- ISIS_METHOD_MACRO="ISIS_METHOD_PFPACKET"
-elif test x"$opsys" = x"sol2-6" -o x"$opsys" = x"sol8"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: DLPI" >&5
+ ISIS_METHOD_MACRO="ISIS_METHOD_PFPACKET"
+ elif test x"$opsys" = x"sol2-6" -o x"$opsys" = x"sol8"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: DLPI" >&5
$as_echo "DLPI" >&6; }
- ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
-else
- if test $ac_cv_header_net_bpf_h = no; then
- if test $ac_cv_header_sys_dlpi_h = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+ ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
+ else
+ if test $ac_cv_header_net_bpf_h = no; then
+ if test $ac_cv_header_sys_dlpi_h = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
$as_echo "none" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** IS-IS support will not be built ***" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** IS-IS support will not be built ***" >&5
$as_echo "$as_me: WARNING: *** IS-IS support will not be built ***" >&2;}
- ISISD=""
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: DLPI" >&5
+ ISISD=""
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: DLPI" >&5
$as_echo "DLPI" >&6; }
- fi
- ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: BPF" >&5
+ fi
+ ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: BPF" >&5
$as_echo "BPF" >&6; }
- ISIS_METHOD_MACRO="ISIS_METHOD_BPF"
+ ISIS_METHOD_MACRO="ISIS_METHOD_BPF"
+ fi
fi
fi
diff -r -u isisd/Makefile.in isisd/Makefile.in
@@ -38,7 +38,7 @@
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
-sbin_PROGRAMS = isisd$(EXEEXT)
+EXTRA_PROGRAMS = isisd$(EXEEXT) trilld$(EXEEXT)
subdir = isisd
DIST_COMMON = README $(dist_examples_DATA) $(noinst_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in AUTHORS
@@ -75,9 +75,15 @@
isis_events.$(OBJEXT) isis_spf.$(OBJEXT) isis_route.$(OBJEXT) \
isis_routemap.$(OBJEXT)
am_isisd_OBJECTS = isis_main.$(OBJEXT) $(am__objects_1) \
- isis_bpf.$(OBJEXT) isis_dlpi.$(OBJEXT) isis_pfpacket.$(OBJEXT)
+ isis_bpf.$(OBJEXT) isis_dlpi.$(OBJEXT) isis_pfpacket.$(OBJEXT) \
+ isis_trilldummy.$(OBJEXT)
isisd_OBJECTS = $(am_isisd_OBJECTS)
isisd_DEPENDENCIES = ../lib/libzebra.la
+am_trilld_OBJECTS = isis_main.$(OBJEXT) $(am__objects_1) \
+ isis_trill.$(OBJEXT) isis_trillio.$(OBJEXT) \
+ isis_trillvlans.$(OBJEXT) isis_trillbpdu.$(OBJEXT)
+trilld_OBJECTS = $(am_trilld_OBJECTS)
+trilld_DEPENDENCIES = ../lib/libzebra.la
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@@ -91,8 +97,8 @@
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
-SOURCES = $(libisis_a_SOURCES) $(isisd_SOURCES)
-DIST_SOURCES = $(libisis_a_SOURCES) $(isisd_SOURCES)
+SOURCES = $(libisis_a_SOURCES) $(isisd_SOURCES) $(trilld_SOURCES)
+DIST_SOURCES = $(libisis_a_SOURCES) $(isisd_SOURCES) $(trilld_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
@@ -201,6 +207,8 @@
IOCTL_METHOD = @IOCTL_METHOD@
IPFORWARD = @IPFORWARD@
ISISD = @ISISD@
+ISIS_LIBS = @ISIS_LIBS@
+ISIS_TARGETS = @ISIS_TARGETS@
ISIS_TOPOLOGY_DIR = @ISIS_TOPOLOGY_DIR@
ISIS_TOPOLOGY_INCLUDES = @ISIS_TOPOLOGY_INCLUDES@
ISIS_TOPOLOGY_LIB = @ISIS_TOPOLOGY_LIB@
@@ -212,7 +220,7 @@
LIBOBJS = @LIBOBJS@
LIBPAM = @LIBPAM@
LIBREADLINE = @LIBREADLINE@
-LIBS = @LIBS@
+LIBS = @LIBS@ @ISIS_LIBS@
LIBTOOL = @LIBTOOL@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
@@ -327,6 +335,7 @@
AM_CFLAGS = $(PICFLAGS)
AM_LDFLAGS = $(PILDFLAGS)
noinst_LIBRARIES = libisis.a
+sbin_PROGRAMS = @ISIS_TARGETS@
SUBDIRS = topology
libisis_a_SOURCES = \
@@ -339,13 +348,22 @@
+ isis_trill.h \
isisd_SOURCES = \
isis_main.c $(libisis_a_SOURCES) \
-isisd_LDADD = @ISIS_TOPOLOGY_LIB@ ../lib/libzebra.la @LIBCAP@
+isisd_LDADD = @ISIS_TOPOLOGY_LIB@ ../lib/libzebra.la @LIBCAP@ @LIBM@
+trilld_SOURCES = \
+
+trilld_LDADD = @ISIS_TOPOLOGY_LIB@ ../lib/libzebra.la @LIBCAP@ @LIBM@
+
examplesdir = $(exampledir)
dist_examples_DATA = isisd.conf.sample
all: all-recursive
@@ -435,6 +453,9 @@
isisd$(EXEEXT): $(isisd_OBJECTS) $(isisd_DEPENDENCIES)
@rm -f isisd$(EXEEXT)
$(LINK) $(isisd_OBJECTS) $(isisd_LDADD) $(LIBS)
+trilld$(EXEEXT): $(trilld_OBJECTS) $(trilld_DEPENDENCIES)
+ @rm -f trilld$(EXEEXT)
+ $(LINK) $(trilld_OBJECTS) $(trilld_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -461,6 +482,11 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isis_routemap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isis_spf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isis_tlv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isis_trill.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isis_trillbpdu.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isis_trilldummy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isis_trillio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isis_trillvlans.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isis_zebra.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isisd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso_checksum.Po@am__quote@
diff -r -u solaris/Makefile.in solaris/Makefile.in
@@ -97,6 +97,8 @@
IOCTL_METHOD = @IOCTL_METHOD@
IPFORWARD = @IPFORWARD@
ISISD = @ISISD@
+ISIS_LIBS = @ISIS_LIBS@
+ISIS_TARGETS = @ISIS_TARGETS@
ISIS_TOPOLOGY_DIR = @ISIS_TOPOLOGY_DIR@
ISIS_TOPOLOGY_INCLUDES = @ISIS_TOPOLOGY_INCLUDES@
ISIS_TOPOLOGY_LIB = @ISIS_TOPOLOGY_LIB@
@@ -229,7 +231,7 @@
pkg_packages = $(pkg_names:%=@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg)
pkg_pkginfos = $(pkg_names:%=pkginfo.%.full)
pkg_prototypes = $(pkg_names:%=prototype.%)
-pkg_manifests = quagga.xml
+pkg_manifests = quagga.xml trill.xml
# pkgmk variable substitutions wont grok ${variable} in prototype
# file, so we cant let autoconf generate the file sadly