Commit c587763b authored by Marcin Siodelski's avatar Marcin Siodelski
Browse files

[3035] Merge branch 'master' into trac3035

Conflicts:
	doc/devel/mainpage.dox
	src/bin/dhcp4/dhcp4.dox
	src/bin/dhcp4/dhcp4_srv.cc
	src/bin/dhcp4/tests/dhcp4_srv_unittest.cc
	src/bin/dhcp4/tests/dhcp4_test_utils.h
	src/lib/dhcp_ddns/tests/ncr_unittests.cc
	src/lib/dhcpsrv/lease_mgr.cc
	src/lib/dhcpsrv/lease_mgr.h
	src/lib/dhcpsrv/tests/lease_mgr_unittest.cc
parents d77a5642 6443d119
669. [func] tmark
705. [bug] kean
When commands are piped into bindctl, no longer attempt to query the
user name and password if no default user name and password file is
present, or it contains no valid entries.
(Trac #264, git 4921d7de6b5623c7e85d2baf8bc978686877345b)
704. [func] naokikambe
New statistics items related to IP sockets added into b10-xfrin:
open, openfail, close, connfail, conn, senderr, and recverr.
Their values can be obtained by invoking "Stats show Xfrin" via
bindctl while b10-xfrin is running.
(Trac #2300, git 4655c110afa0ec6f5669bf53245bffe6b30ece4b)
703. [bug] kean
A bug in b10-msgq was fixed where it would remove the socket file if
there was an existing copy of b10-msgq running. It now correctly
detects and reports this without removing the socket file.
(Trac #433, git c18a49b0435c656669e6f87ef65d44dc98e0e726)
702. [func] marcin
perfdhcp: support for sending DHCPv6 Renew messages at the specified
rate and measure performance.
(Trac #3183, git 66f2939830926f4337623b159210103b5a8e2434)
701. [bug] tomek
libdhcp++: Incoming DHCPv6 IAPREFIX option is now parsed properly.
(Trac #3211, git ed43618a2c7b2387d76f99a5a4b1a3e05ac70f5e)
700. [func] tomek,marcin
b10-dhcp4,b10-dhcp6: Support for vendor options has been added. It
is now possible to configure vendor options. Server is able to
parse some CableLabs vendor options and send configured vendor
options in response. The support is not complete.
(Trac #3194, git 243ded15bbed0d35e230d00f4e3ee42c3609616c)
699. [bug] marcin
libdhcp++: Options with defined suboptions are now handled properly.
In particular, Relay Agent Info options is now echoed back properly.
(Trac #3102, git 6f6251bbd761809634aa470f36480d046b4d2a20)
698. [bug] muks
A bug was fixed in the interaction between b10-init and b10-msgq
that caused BIND 10 failures after repeated start/stop of
components.
(Trac #3094, git ed672a898d28d6249ff0c96df12384b0aee403c8
697. [func] tmark
Implements "user_check" hooks shared library which supports subnet
selection based upon the contents of a list of known DHCP lease users
(i.e. clients). Adds the following subdirectories to the bind10 src
directory for maintaining hooks shared libraries:
-bind10/src/hooks - base directory for hooks shared libraries
-bind10/src/hooks/dhcp - base directory for all hooks libs pertaining
to DHCP(Kea)
-bind10/src/hooks/dhcp/user_check - directory containing the user_check
hooks library
(Trac #3186, git f36aab92c85498f8511fbbe19fad5e3f787aef68)
696. [func] tomek
b10-dhcp4: It is now possible to specify value of siaddr field
in DHCPv4 responses. It is used to point out to the next
server in the boot process (that typically is TFTP server).
(Trac #3191, git 541922b5300904a5de2eaeddc3666fc4b654ffba)
695. [func] tomek
b10-dhcp6 is now able to listen on global IPv6 unicast addresses.
(Trac #3195, git 72e601f2a57ab70b25d50877c8e49242739d1c9f)
694. [bug] tomek
b10-dhcp6 now handles exceptions better when processing initial
configuration. In particular, errors with socket binding do not
prevent b10-dhcp6 from establishing configuration session anymore.
(Trac #3195, git 72e601f2a57ab70b25d50877c8e49242739d1c9f)
693. [bug] tomek
b10-dhcp6 now handles IPv6 interface enabling correctly.
(Trac #3195, git 72e601f2a57ab70b25d50877c8e49242739d1c9f)
692. [bug] marcin
b10-dhcp4: Fix a bug whereby the Parameter Request List was not parsed
by the server and requested DHCPv4 options were not returned to the
client. Options are not sent back to the client if server failed to
assign a lease.
(Trac #3200, git 50d91e4c069c6de13680bfaaee3c56b68d6e4ab1)
691. [bug] marcin
libdhcp++: Created definitions for standard DHCPv4 options:
tftp-server-name (66) and boot-file-name (67). Also, fixed definition
of DHCPv4 option time-offset (2).
(Trac #3199, git 6e171110c4dd9ae3b1be828b9516efc65c33460b)
690. [bug] tomek
b10-dhcp4: Relay Agent Info option is now echoed back in
DHCPv4 responses.
(Trac #3184, git 287389c049518bff66bdf6a5a49bb8768be02d8e)
689. [func]* marcin
b10-dhcp4 and b10-dhcp6 install callback functions which parse options
in the received DHCP packets.
(Trac #3180, git f73fba3cde9421acbeb9486c615900b0af58fa25)
688. [func] tomek
b10-dhcp6: Prefix Delegation support is now extended to
Renew and Release messages.
(Trac #3153,#3154, git 3207932815f58045acea84ae092e0a5aa7c4bfd7)
687. [func] tomek
b10-dhcp6: Prefix Delegation (IA_PD and IAPREFIX options) is now
supported in Solicit and Request messages.
(Trac #3152, git a0e73dd74658f2deb22fad2c7a1f56d122aa9021)
686. [bug] tomek
b10-dhcp6 now sends back relayed traffic to proper port.
(Trac #3177, git 6b33de4bea92eecb64b6c673bf1b8ae51f8edcf1)
685. [func] tomek
libdhcpsrv: Allocation Engine is now able to handle IPv6 prefixes.
This will be used in Prefix Delegation.
(Trac #3171, git 7d1431b4c887f0c7ee1b26b9b82d3d3b8464b34f)
684. [func] muks, vorner
API support to delete zone data has been added. With this,
DomainTree and RdataSet which form the central zone data
structures of b10-auth allow deletion of names and RR data
respectively.
(Trac #2750, git d3dbe8e1643358d4f88cdbb7a16a32fd384b85b1)
(Trac #2751, git 7430591b4ae4c7052cab86ed17d0221db3b524a8)
683. [bug] stephen
Modifications to fix problems running unit tests if they are statically
linked. This includes provision of an initialization function that
must be called by user-written hooks libraries if they are loaded by a
statically-linked image.
(Trac #3113, git 3d19eee4dbfabc7cf7ae528351ee9e3a334cae92)
682. [func] naokikambe
New statistics items added into b10-xfrin : ixfr_running, axfr_running,
and soa_in_progress. Their values can be obtained by invoking "Stats
show Xfrin" via bindctl when b10-xfrin is running.
(Trac #2274, git ca691626a2be16f08754177bb27983a9f4984702)
681. [func] tmark
Added support for prefix delegation configuration to b10-dhcp6
subnets.
(Trac# 3151, git 79a22be33825bafa1a0cdfa24d5cb751ab1ae2d3)
680. [func] marcin
perfdhcp: Added support for requesting IPv6 prefixes using IA_PD
option being sent to the server.
(Trac #3173, git 4cc844f7cc82c8bd749296a2709ef67af8d9ba87)
679. [func] tmark
b10-dhcp-ddns Finite state machine logic was refactored into its own class,
StateModel.
(Trac# 3156, git 6e9227b1b15448e834d1f60dd655e5633ff9745c)
678. [func] tmark
MySQL backend used by b10-dhcp6 now uses lease type as a
filtering parameter in all IPv6 lease queries.
(Trac# 3147, git 65b6372b783cb1361fd56efe2b3247bfdbdc47ea)
677. [func] tomek
libdhcpsrv: CfgMgr is now able to store IA, TA and PD pools in
Subnet6 structures.
(Trac #3150, git e6f0e89162bac0adae3ce3141437a282d5183162)
676. [bug] muks
We now also allow the short name ("hmac-md5"), along with the long
name ("hmac-md5.sig-alg.reg.int") that was allowed before for
HMAC-MD5, so that it is more conveninent to configure TSIG keys
using it.
(Trac #2762, git c543008573eba65567e9c189824322954c6dd43b)
675. [func] vorner
If there's an exception not handled in a Python BIND10 component,
it is now stored in a temporary file and properly logged, instead
of dumping to stderr.
(Trac #3095, git 18cf54ed89dee1dd1847053c5210f0ca220590c2)
674. [func] tomek
Preparatory work for prefix delegation in LeaseMgr. getLease6()
renamed to getLeases6(). It now can return more than one lease.
(Trac #3146, git 05a05d810be754e7a4d8ca181550867febf6dcc6)
673. [func] tomek
libdhcp: Added support for IA_PD and IAPREFIX options. New class
for IAPREFIX (Option6_IAPrefix) has been added.
(Trac #3145, git 3a844e85ecc3067ccd1c01841f4a61366cb278f4)
672. [func] tmark
Added b10-dhcp-ddnsupdate transaction base class, NameChangeTransaction.
This class provides the common structure and methods to implement the state
models described in the DHCP_DDNS design, plus integration with DNSClient
and its callback mechanism for asynchronous IO with the DNS servers.
(Trac #3086, git 079b862c9eb21056fdf957e560b8fe7b218441b6)
671. [func] dclink,tomek
memfile backend now supports getLease4(hwaddr) and getLease4(client-id)
methods. Thanks to David Carlier for contributing a patch.
(Trac #2592, git a11683be53db2f9f8f9b71c1d1c163511e0319b3)
670. [func] marcin
libdhcpsrv: Added support to MySQL lease database backend to
store FQDN data for the lease.
(Trac #3084, git 79b7d8ee017b57a81cec5099bc028e1494d7e2e9)
669. [func] tmark
Added main process event loop to D2Process which is the primary
application object in b10-dhcp-ddns. This allows DHCP-DDNS
to queue requests received from clients for processing while
......
......@@ -68,6 +68,13 @@ AC_CHECK_DECL([__SUNPRO_CC], [SUNCXX="yes"], [SUNCXX="no"])
AC_CHECK_DECL([__clang__], [CLANGPP="yes"], [CLANGPP="no"])
AM_CONDITIONAL(USE_CLANGPP, test "X${CLANGPP}" = "Xyes")
dnl Determine if weare using GNU sed
GNU_SED=no
$SED --version 2> /dev/null | grep -q GNU
if test $? -eq 0; then
GNU_SED=yes
fi
# Linker options
# check -R, "-Wl,-R" or -rpath (we share the AX function defined in
......@@ -105,9 +112,12 @@ AC_DEFUN([BIND10_CXX_TRY_FLAG], [
AC_MSG_RESULT([$bind10_cxx_flag])
])
CXX_VERSION="unknown"
# SunStudio compiler requires special compiler options for boost
# (http://blogs.sun.com/sga/entry/boost_mini_howto)
if test "$SUNCXX" = "yes"; then
CXX_VERSION=`$CXX -V 2> /dev/null | head -1`
CXXFLAGS="$CXXFLAGS -library=stlport4 -features=tmplife -features=tmplrefstatic"
MULTITHREADING_FLAG="-mt"
fi
......@@ -120,7 +130,8 @@ fi
# we suppress this particular warning. Note that it doesn't weaken checks
# on the source code.
if test "$CLANGPP" = "yes"; then
B10_CXXFLAGS="$B10_CXXFLAGS -Qunused-arguments"
CXX_VERSION=`$CXX --version 2> /dev/null | head -1`
B10_CXXFLAGS="$B10_CXXFLAGS -Qunused-arguments"
fi
BIND10_CXX_TRY_FLAG([-Wno-missing-field-initializers],
......@@ -129,6 +140,7 @@ AC_SUBST(WARNING_NO_MISSING_FIELD_INITIALIZERS_CFLAG)
# gcc specific settings:
if test "X$GXX" = "Xyes"; then
CXX_VERSION=`$CXX --version 2> /dev/null | head -1`
B10_CXXFLAGS="$B10_CXXFLAGS -Wall -Wextra -Wnon-virtual-dtor -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare"
case "$host" in
*-solaris*)
......@@ -181,6 +193,7 @@ AC_HELP_STRING([--enable-static-link],
[build programs with static link [[default=no]]]),
[enable_static_link=yes], [enable_static_link=no])
AM_CONDITIONAL(USE_STATIC_LINK, test $enable_static_link = yes)
AM_COND_IF([USE_STATIC_LINK], [AC_DEFINE([USE_STATIC_LINK], [1], [BIND 10 was statically linked?])])
# Check validity about some libtool options
if test $enable_static_link = yes -a $enable_static = no; then
......@@ -717,6 +730,21 @@ then
BOTAN_INCLUDES="-I`${BOTAN_CONFIG} --prefix`/include ${BOTAN_INCLUDES}"
fi
fi
dnl Determine the Botan version
AC_MSG_CHECKING([Botan version])
cat > conftest.cpp << EOF
#include <botan/version.h>
AUTOCONF_BOTAN_VERSION=BOTAN_VERSION_MAJOR . BOTAN_VERSION_MINOR . BOTAN_VERSION_PATCH
EOF
BOTAN_VERSION=`$CPP $CPPFLAGS $BOTAN_INCLUDES conftest.cpp | grep '^AUTOCONF_BOTAN_VERSION=' | $SED -e 's/^AUTOCONF_BOTAN_VERSION=//' -e 's/[[ ]]//g' -e 's/"//g' 2> /dev/null`
if test -z "$BOTAN_VERSION"; then
BOTAN_VERSION="unknown"
fi
$RM -f conftest.cpp
AC_MSG_RESULT([$BOTAN_VERSION])
# botan-config script (and the way we call pkg-config) returns -L and -l
# as one string, but we need them in separate values
BOTAN_LDFLAGS=
......@@ -754,7 +782,24 @@ CPPFLAGS_SAVED=$CPPFLAGS
CPPFLAGS="$BOTAN_INCLUDES $CPPFLAGS"
LIBS_SAVED="$LIBS"
LIBS="$LIBS $BOTAN_LIBS"
AC_CHECK_HEADERS([botan/botan.h],,AC_MSG_ERROR([Missing required header files.]))
# ac_header_preproc is an autoconf symbol (undocumented but stable) that
# is set if the pre-processor phase passes. Thus by adding a custom
# failure handler we can detect the difference between a header not existing
# (or not even passing the pre-processor phase) and a header file resulting
# in compilation failures.
AC_CHECK_HEADERS([botan/botan.h],,[
if test "x$ac_header_preproc" = "xyes"; then
AC_MSG_ERROR([
botan/botan.h was found but is unusable. The most common cause of this problem
is attempting to use an updated C++ compiler with older C++ libraries, such as
the version of Botan that comes with your distribution. If you have updated
your C++ compiler we highly recommend that you use support libraries such as
Boost and Botan that were compiled with the same compiler version.])
else
AC_MSG_ERROR([Missing required header files.])
fi]
)
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([#include <botan/botan.h>
#include <botan/hash.h>
......@@ -796,6 +841,7 @@ if test "$MYSQL_CONFIG" != "" ; then
MYSQL_CPPFLAGS=`$MYSQL_CONFIG --cflags`
MYSQL_LIBS=`$MYSQL_CONFIG --libs`
MYSQL_VERSION=`$MYSQL_CONFIG --version`
AC_SUBST(MYSQL_CPPFLAGS)
AC_SUBST(MYSQL_LIBS)
......@@ -874,6 +920,20 @@ AC_LINK_IFELSE(
AC_MSG_ERROR([Needs log4cplus library])]
)
dnl Determine the log4cplus version, used mainly for config.report.
AC_MSG_CHECKING([log4cplus version])
cat > conftest.cpp << EOF
#include <log4cplus/version.h>
AUTOCONF_LOG4CPLUS_VERSION=LOG4CPLUS_VERSION_STR
EOF
LOG4CPLUS_VERSION=`$CPP $CPPFLAGS conftest.cpp | grep '^AUTOCONF_LOG4CPLUS_VERSION=' | $SED -e 's/^AUTOCONF_LOG4CPLUS_VERSION=//' -e 's/[[ ]]//g' -e 's/"//g' 2> /dev/null`
if test -z "$LOG4CPLUS_VERSION"; then
LOG4CPLUS_VERSION="unknown"
fi
$RM -f conftest.cpp
AC_MSG_RESULT([$LOG4CPLUS_VERSION])
CPPFLAGS=$CPPFLAGS_SAVED
LIBS=$LIBS_SAVED
......@@ -953,6 +1013,7 @@ AC_SUBST(MULTITHREADING_FLAG)
GTEST_LDFLAGS=
GTEST_LDADD=
DISTCHECK_GTEST_CONFIGURE_FLAG=
GTEST_VERSION="unknown"
if test "x$enable_gtest" = "xyes" ; then
......@@ -1008,6 +1069,7 @@ if test "$gtest_path" != "no" ; then
GTEST_INCLUDES=`${GTEST_CONFIG} --cppflags`
GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags`
GTEST_LDADD=`${GTEST_CONFIG} --libs`
GTEST_VERSION=`${GTEST_CONFIG} --version`
GTEST_FOUND="true"
else
AC_MSG_WARN([Unable to locate Google Test gtest-config.])
......@@ -1093,6 +1155,8 @@ fi
AX_SQLITE3_FOR_BIND10
if test "x$have_sqlite" = "xyes" ; then
enable_features="$enable_features SQLite3"
AX_PYTHON_SQLITE3
fi
#
......@@ -1285,6 +1349,10 @@ AC_CONFIG_FILES([Makefile
src/bin/usermgr/Makefile
src/bin/usermgr/tests/Makefile
src/bin/tests/Makefile
src/hooks/Makefile
src/hooks/dhcp/Makefile
src/hooks/dhcp/user_chk/Makefile
src/hooks/dhcp/user_chk/tests/Makefile
src/lib/Makefile
src/lib/asiolink/Makefile
src/lib/asiolink/tests/Makefile
......@@ -1461,9 +1529,11 @@ AC_OUTPUT([doc/version.ent
src/bin/auth/gen-statisticsitems.py.pre
src/bin/dhcp4/spec_config.h.pre
src/bin/dhcp6/spec_config.h.pre
src/bin/dhcp6/tests/test_data_files_config.h
src/bin/d2/spec_config.h.pre
src/bin/d2/tests/test_data_files_config.h
src/bin/tests/process_rename_test.py
src/hooks/dhcp/user_chk/tests/test_data_files_config.h
src/lib/config/tests/data_def_unittests_config.h
src/lib/dhcpsrv/tests/test_libraries.h
src/lib/python/isc/config/tests/config_test
......@@ -1471,7 +1541,6 @@ AC_OUTPUT([doc/version.ent
src/lib/python/isc/notify/tests/notify_out_test
src/lib/python/isc/log/tests/log_console.py
src/lib/python/isc/log_messages/work/__init__.py
src/lib/python/isc/server_common/bind10_server.py
src/lib/dns/gen-rdatacode.py
src/lib/python/bind10_config.py
src/lib/cc/session_config.h.pre
......@@ -1535,39 +1604,69 @@ cat > config.report << END
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Package:
Name: $PACKAGE_NAME
Version: $PACKAGE_VERSION
C++ Compiler: $CXX
Flags:
DEFS: $DEFS
CPPFLAGS: $CPPFLAGS
CXXFLAGS: $CXXFLAGS
LDFLAGS: $LDFLAGS
B10_CXXFLAGS: $B10_CXXFLAGS
OS Family: $OS_TYPE
dnl includes too
Python: ${PYTHON_INCLUDES}
${PYTHON_CXXFLAGS}
${PYTHON_LDFLAGS}
${PYTHON_LIB}
Boost: ${BOOST_INCLUDES}
Botan: ${BOTAN_INCLUDES}
${BOTAN_LDFLAGS}
${BOTAN_LIBS}
Log4cplus: ${LOG4CPLUS_INCLUDES}
${LOG4CPLUS_LIBS}
SQLite: $SQLITE_CFLAGS
$SQLITE_LIBS
Name: ${PACKAGE_NAME}
Version: ${PACKAGE_VERSION}
OS Family: ${OS_TYPE}
Using GNU sed: ${GNU_SED}
C++ Compiler:
CXX: ${CXX}
CXX_VERSION: ${CXX_VERSION}
DEFS: ${DEFS}
CPPFLAGS: ${CPPFLAGS}
CXXFLAGS: ${CXXFLAGS}
LDFLAGS: ${LDFLAGS}
B10_CXXFLAGS: ${B10_CXXFLAGS}
Python:
PYTHON_VERSION: ${PYTHON_VERSION}
PYTHON_INCLUDES: ${PYTHON_INCLUDES}
PYTHON_CXXFLAGS: ${PYTHON_CXXFLAGS}
PYTHON_LDFLAGS: ${PYTHON_LDFLAGS}
PYTHON_LIB: ${PYTHON_LIB}
Boost:
BOOST_VERSION: ${BOOST_VERSION}
BOOST_INCLUDES: ${BOOST_INCLUDES}
Botan:
BOTAN_VERSION: ${BOTAN_VERSION}
BOTAN_INCLUDES: ${BOTAN_INCLUDES}
BOTAN_LDFLAGS: ${BOTAN_LDFLAGS}
BOTAN_LIBS: ${BOTAN_LIBS}
Log4cplus:
LOG4CPLUS_VERSION: ${LOG4CPLUS_VERSION}
LOG4CPLUS_INCLUDES: ${LOG4CPLUS_INCLUDES}
LOG4CPLUS_LIBS: ${LOG4CPLUS_LIBS}
SQLite:
SQLITE_VERSION: ${SQLITE_VERSION}
SQLITE_CFLAGS: ${SQLITE_CFLAGS}
SQLITE_LIBS: ${SQLITE_LIBS}
END
# Avoid confusion on DNS/DHCP and only mention MySQL if it
# were specified on the command line.
if test "$MYSQL_CPPFLAGS" != "" ; then
cat >> config.report << END
MySQL: $MYSQL_CPPFLAGS
$MYSQL_LIBS
MySQL:
MYSQL_VERSION: ${MYSQL_VERSION}
MYSQL_CPPFLAGS: ${MYSQL_CPPFLAGS}
MYSQL_LIBS: ${MYSQL_LIBS}
END
fi
if test "$enable_gtest" != "no"; then
cat >> config.report << END
GTest:
GTEST_VERSION: ${GTEST_VERSION}
GTEST_INCLUDES: ${GTEST_INCLUDES}
GTEST_LDFLAGS: ${GTEST_LDFLAGS}
GTEST_LDADD: ${GTEST_LDADD}
GTEST_SOURCE: ${GTEST_SOURCE}
END
fi
......@@ -1590,6 +1689,8 @@ END
cat config.report
cat <<EOF
Now you can type "make" to build BIND 10
Now you can type "make" to build BIND 10. Note that if you intend to
run "make check", you must run "make" first as some files need to be
generated by "make" before "make check" can be run.
EOF
......@@ -23,7 +23,7 @@
* run-time and modifies its behavior you should read the section
* @ref hooksdgDevelopersGuide.
*
* BIND 10 maintanenace information is divided into a number of sections
* BIND 10 maintenance information is divided into a number of sections
* depending on focus. DNS-specific issues are covered in the
* @ref dnsMaintenanceGuide while information on DHCP-specific topics can
* be found in the @ref dhcpMaintenanceGuide. General BIND 10 topics, not
......@@ -53,6 +53,7 @@
* - @subpage dhcpv4Session
* - @subpage dhcpv4ConfigParser
* - @subpage dhcpv4ConfigInherit
* - @subpage dhcpv4OptionsParse
* - @subpage dhcpv4DDNSIntegration
* - @subpage dhcpv4Other
* - @subpage dhcp6
......@@ -60,6 +61,7 @@
* - @subpage dhcpv6ConfigParser
* - @subpage dhcpv6ConfigInherit
* - @subpage dhcpv6DDNSIntegration
* - @subpage dhcpv6OptionsParse
* - @subpage dhcpv6Other
* - @subpage libdhcp
* - @subpage libdhcpIntro
......
......@@ -17,7 +17,7 @@ bind10-guide.html: bind10-guide.xml
-o $@ \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--stringparam html.stylesheet $(srcdir)/bind10-guide.css \
--stringparam html.stylesheet bind10-guide.css \
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
$(srcdir)/bind10-guide.xml
......@@ -28,7 +28,7 @@ bind10-messages.html: bind10-messages.xml
@XSLTPROC@ --novalid --xinclude --nonet \
--path $(top_builddir)/doc \
-o $@ \
--stringparam html.stylesheet $(srcdir)/bind10-guide.css \
--stringparam html.stylesheet bind10-guide.css \
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
bind10-messages.xml
......
......@@ -3975,7 +3975,7 @@ Dhcp4/subnet4 [] list (default)
</thead>
<tbody>
<row><entry>subnet-mask</entry><entry>1</entry><entry>ipv4-address</entry><entry>false</entry></row>
<row><entry>time-offset</entry><entry>2</entry><entry>uint32</entry><entry>false</entry></row>
<row><entry>time-offset</entry><entry>2</entry><entry>int32</entry><entry>false</entry></row>
<row><entry>routers</entry><entry>3</entry><entry>ipv4-address</entry><entry>true</entry></row>
<row><entry>time-servers</entry><entry>4</entry><entry>ipv4-address</entry><entry>true</entry></row>
<row><entry>name-servers</entry><entry>5</entry><entry>ipv4-address</entry><entry>false</entry></row>
......@@ -4069,6 +4069,8 @@ Dhcp4/subnet4 [] list (default)
-->
<row><entry>nwip-domain-name</entry><entry>62</entry><entry>string</entry><entry>false</entry></row>
<row><entry>nwip-suboptions</entry><entry>63</entry><entry>binary</entry><entry>false</entry></row>
<row><entry>tftp-server-name</entry><entry>66</entry><entry>string</entry><entry>false</entry></row>
<row><entry>boot-file-name</entry><entry>67</entry><entry>string</entry><entry>false</entry></row>
<row><entry>user-class</entry><entry>77</entry><entry>binary</entry><entry>false</entry></row>
<row><entry>fqdn</entry><entry>81</entry><entry>record</entry><entry>false</entry></row>
<row><entry>dhcp-agent-options</entry><entry>82</entry><entry>empty</entry><entry>false</entry></row>
......@@ -4388,6 +4390,30 @@ Dhcp4/subnet4 [] list (default)
</para>
</section>
<section id="dhcp4-next-server">
<title>Next server (siaddr)</title>
<para>In some cases, clients want to obtain configuration from the TFTP server.
Although there is a dedicated option for it, some devices may use siaddr field
in the DHCPv4 packet for that purpose. That specific field can be configured
using next-server directive. It is possible to define it in global scope or
for a given subnet only. If both are defined, subnet value takes precedence.
The value in subnet can be set to 0.0.0.0, which means that next-server should
not be sent. It may also be set to empty string, which means the same as if
it was not defined at all - use global value.
</para>
<screen>
&gt; <userinput>config add Dhcp4/next-server</userinput>
&gt; <userinput>config set Dhcp4/next-server "192.0.2.123"</userinput>
&gt; <userinput>config commit</userinput>
<userinput></userinput>
&gt; <userinput>config add Dhcp4/subnet[0]/next-server</userinput>
&gt; <userinput>config set Dhcp4/subnet[0]/next-server "192.0.2.234"</userinput>
&gt; <userinput>config commit</userinput>
</screen>
</section>
<section id="dhcp4-std">
<title>Supported Standards</title>
<para>The following standards and draft standards are currently
......@@ -4403,6 +4429,10 @@ Dhcp4/subnet4 [] list (default)
Domain Name (15), DNS Servers (6), IP Address Lease Time
(51), Subnet mask (1), and Routers (3).</simpara>
</listitem>
<listitem>
<simpara><ulink url="http://tools.ietf.org/html/rfc3046">RFC 3046</ulink>:
Relay Agent Information option is supported.</simpara>
</listitem>
</itemizedlist>
</section>
......@@ -4667,6 +4697,43 @@ Dhcp6/subnet6/ list
</para>
</section>
<section id="dhcp6-unicast">
<title>Unicast traffic support</title>
<para>
When DHCPv6 server starts up, by default it listens to the DHCP traffic
sent to multicast address ff02::1:2 on each interface that it is
configured to listen on (see <xref linkend="dhcp6-interface-selection"/>).
In some cases it is useful to configure a server to handle incoming
traffic sent to the global unicast addresses as well. The most common
reason for that is to have relays send their traffic to the server
directly. To configure server to listen on specific unicast address, a
notation to specify interfaces has been extended. Interface name can be
optionally followed by a slash, followed by global unicast address that
server should listen on. That will be done in addition to normal
link-local binding + listening on ff02::1:2 address. The sample commands
listed below show how to listen on 2001:db8::1 (a global address)
configured on the eth1 interface.
</para>
<para>
<screen>
&gt; <userinput>config set Dhcp6/interfaces[0] eth1/2001:db8::1</userinput>
&gt; <userinput>config commit</userinput></screen>
When configuration gets committed, the server will start to listen on
eth1 on link-local address, mutlicast group (ff02::1:2) and 2001:db8::1.
</para>
<para>
It is possible to mix interface names, wildcards and interface name/addresses
on the Dhcp6/interface list. It is not possible to specify more than one
unicast address on a given interface.
</para>
<para>
Care should be taken to specify proper unicast addresses. The server will
attempt to bind to those addresses specified, without any additional checks.
That approach is selected on purpose, so in the software can be used to
communicate over uncommon addresses if the administrator desires so.
</para>
</section>
<section>
<title>Subnet and Address Pool</title>
<para>
......@@ -4725,6 +4792,27 @@ Dhcp6/subnet6/ list
</para>
</section>
<section>
<!-- @todo: add real meat to the prefix delegation config this is just place holder stuff -->
<title>Subnet and Prefix Delegation Pools</title>
<para>
Subnets may also be configured to delegate address prefixes....
A subnet may have one or more prefix delegation pools. Each pool has
a prefixed address, which is specified as a prefix and a prefix length,
as well as a delegated prefix length. A sample configuration is shown
below:
<screen>
&gt; <userinput>config add Dhcp6/subnet6</userinput>
<