head 1.2; access; symbols perseant-exfatfs-base-20240630:1.2 perseant-exfatfs:1.2.0.6 perseant-exfatfs-base:1.2 netbsd-8-3-RELEASE:1.1.1.1 cjep_sun2x:1.2.0.4 cjep_sun2x-base:1.2 cjep_staticlib_x-base1:1.2 cjep_staticlib_x:1.2.0.2 cjep_staticlib_x-base:1.2 phil-wifi-20200421:1.2 phil-wifi-20200411:1.2 phil-wifi-20200406:1.2 netbsd-8-2-RELEASE:1.1.1.1 netbsd-8-1-RELEASE:1.1.1.1 netbsd-8-1-RC1:1.1.1.1 pgoyette-compat-merge-20190127:1.1.1.1.26.1 pgoyette-compat-20190127:1.2 pgoyette-compat-20190118:1.2 pgoyette-compat-1226:1.2 pgoyette-compat-1126:1.2 pgoyette-compat-1020:1.2 pgoyette-compat-0930:1.2 pgoyette-compat-0906:1.2 netbsd-7-2-RELEASE:1.1.1.1 pgoyette-compat-0728:1.2 netbsd-8-0-RELEASE:1.1.1.1 pgoyette-compat-0625:1.2 netbsd-8-0-RC2:1.1.1.1 pgoyette-compat-0521:1.2 pgoyette-compat-0502:1.2 pgoyette-compat-0422:1.2 netbsd-8-0-RC1:1.1.1.1 pgoyette-compat-0415:1.2 DHCP4_4_1:1.1.1.1 pgoyette-compat-0407:1.1.1.1 pgoyette-compat-0330:1.1.1.1 pgoyette-compat-0322:1.1.1.1 pgoyette-compat-0315:1.1.1.1 netbsd-7-1-2-RELEASE:1.1.1.1 pgoyette-compat:1.1.1.1.0.26 pgoyette-compat-base:1.1.1.1 netbsd-7-1-1-RELEASE:1.1.1.1 matt-nb8-mediatek:1.1.1.1.0.24 matt-nb8-mediatek-base:1.1.1.1 perseant-stdc-iso10646:1.1.1.1.0.22 perseant-stdc-iso10646-base:1.1.1.1 netbsd-8:1.1.1.1.0.20 netbsd-8-base:1.1.1.1 prg-localcount2-base3:1.1.1.1 prg-localcount2-base2:1.1.1.1 prg-localcount2-base1:1.1.1.1 prg-localcount2:1.1.1.1.0.18 prg-localcount2-base:1.1.1.1 pgoyette-localcount-20170426:1.1.1.1 bouyer-socketcan-base1:1.1.1.1 pgoyette-localcount-20170320:1.1.1.1 netbsd-7-1:1.1.1.1.0.16 netbsd-7-1-RELEASE:1.1.1.1 netbsd-7-1-RC2:1.1.1.1 netbsd-7-nhusb-base-20170116:1.1.1.1 bouyer-socketcan:1.1.1.1.0.14 bouyer-socketcan-base:1.1.1.1 pgoyette-localcount-20170107:1.1.1.1 netbsd-7-1-RC1:1.1.1.1 pgoyette-localcount-20161104:1.1.1.1 netbsd-7-0-2-RELEASE:1.1.1.1 localcount-20160914:1.1.1.1 netbsd-7-nhusb:1.1.1.1.0.12 netbsd-7-nhusb-base:1.1.1.1 pgoyette-localcount-20160806:1.1.1.1 pgoyette-localcount-20160726:1.1.1.1 pgoyette-localcount:1.1.1.1.0.10 pgoyette-localcount-base:1.1.1.1 netbsd-7-0-1-RELEASE:1.1.1.1 DHCP4_3_3:1.1.1.1 netbsd-7-0:1.1.1.1.0.8 netbsd-7-0-RELEASE:1.1.1.1 netbsd-7-0-RC3:1.1.1.1 netbsd-7-0-RC2:1.1.1.1 netbsd-7-0-RC1:1.1.1.1 tls-maxphys-base:1.1.1.1 tls-maxphys:1.1.1.1.0.6 netbsd-7:1.1.1.1.0.4 netbsd-7-base:1.1.1.1 tls-earlyentropy:1.1.1.1.0.2 tls-earlyentropy-base:1.1.1.1 DHCP4_3_0:1.1.1.1 ISC:1.1.1; locks; strict; comment @# @; 1.2 date 2018.04.07.22.39.57; author christos; state dead; branches; next 1.1; commitid GG8y5M7UQEDETyxA; 1.1 date 2014.07.12.11.57.33; author spz; state Exp; branches 1.1.1.1; next ; commitid nJOsRRsg2gxpd5Ix; 1.1.1.1 date 2014.07.12.11.57.33; author spz; state Exp; branches 1.1.1.1.2.1 1.1.1.1.6.1 1.1.1.1.26.1; next ; commitid nJOsRRsg2gxpd5Ix; 1.1.1.1.2.1 date 2014.07.12.11.57.33; author tls; state dead; branches; next 1.1.1.1.2.2; commitid nveAjMXqOU28GMLx; 1.1.1.1.2.2 date 2014.08.10.07.06.55; author tls; state Exp; branches; next ; commitid nveAjMXqOU28GMLx; 1.1.1.1.6.1 date 2014.07.12.11.57.33; author tls; state dead; branches; next 1.1.1.1.6.2; commitid jTnpym9Qu0o4R1Nx; 1.1.1.1.6.2 date 2014.08.19.23.46.41; author tls; state Exp; branches; next ; commitid jTnpym9Qu0o4R1Nx; 1.1.1.1.26.1 date 2018.04.16.01.58.09; author pgoyette; state dead; branches; next ; commitid qk3nktk0szmTIByA; desc @@ 1.2 log @moved dhcp to mpl @ text @/** @@page qa Quality Assurance There is a wide scale effort in progress to improve the quality of the ISC DHCP implementation. The following section describes the major aspects of quality assurance that are being implemented. As this is a work in progress, expect radical changes in this area. @@section qaTests ATF Unit-tests See @@ref tests Section for details description of ATF-based unit-tests. @@section cppcheck cppcheck tool cppcheck is a static analysis tool for C/C++ code. Unlike C/C++ compilers and many other analysis tools it does not detect syntax errors in the code. Cppcheck primarily detects the types of bugs that the compilers normally do not detect. To generate cppcheck report, you must have cppcheck installed in your system. Generation is simple: @@verbatim cd doc/ make cppcheck @@endverbatim The log files will be stored in doc/html/cppcheck.log and doc/html/cppcheck-error.log. While the former is useful for verifying that all sources were checked, the latter is much more useful. It contains a list of problems that were detected by cppcheck. The goal is to correct all problems and make this an empty file. In the unlikely event of cppcheck finding false positives it is possible to add special comments formatted to instruct cppcheck to not report what it thinks is an issue. make cppcheck target is configured to make cppcheck print out a specific issue type reported. For example to disable the following error report: @@verbatim bind/bind-9.8.1/bin/dnssec/dnssec-keygen.c:522: check_fail: Memory leak: algname (error,memleak) @@endverbatim the following line could be added before line 522 in dnssec-keygen.c: @@verbatim // cppcheck-suppress memleak @@endverbatim Please consult cppcheck manual for details. It is section 6.2 "Inline suppressions" in cppcheck 1.54 manual. Section number may change in later versions. @@section doxygen Doxygen checks ISC DHCP Developer's Guide (the documentation you are reading now) is generated with doxygen. Doxygen is an open source tool for generating source code documentation. It is available from www.doxygen.org website. Once Doxygen is installed, ISC DHCP documentation can be generated with: @@verbatim cd doc make devel @@endverbatim Note that cppcheck (see @@ref cppcheck Section) reports are linked from Developer's Guide. It is useful to generate both. @@section systemTests System level tests ISC is developing a comprehensive set of system level tests. They are described by a separate document called DHCP Test Plan. @@section perfdhcp Performance tests using perfdhcp ISC is also developing a performance measurement tool, called perfdhcp. Its main purpose is to measure performance of DHCPv4 and DHCPv6 servers. It is being developed as part of the BIND10 project. See tests/tools/perfdhcp directory in BIND10 source code. @@section tahiTests Conformance tests using TAHI TAHI project developed an extensive suite of DHCPv6 conformance tests. ISC plans to deploy and run them periodically in the near future. @@section valgrind Memory correctness using valgrind Valgrind is a powerful tool for dynamic code analysis. It allows running existing code (often even without recompiling) in a special environment that tracks memory operations. In particular, it is able to detect: memory leaks, buffer overflows, usage of uninitialized memory, double frees and similar errors. We currently do not use valgrind in ISC DHCP testing, but there are plans for starting to use it. */ @ 1.1 log @Initial revision @ text @@ 1.1.1.1 log @import of dhcp 4.3.0. Excerpts of the upstream RELNOTES: The major "theme" for ISC DHCP 4.3.x was to update the suport for DHCPv6 to include several of the features that have been available for DHCPv4. These include: - Support the use of classes - Support for on_commit, on_expiry and on_release statements - Better logging of address assignments - Support for using DHCPv6 relay options in expressions This release also adds suppport for the standard DDNS as described in the current RFCs as well as enhancing support for dynamically adding and removing subclasses via OMAPI. There are a number of DHCPv6 limitations and features missing in this release, which will be addressed in the future: - Only Solaris, Linux, FreeBSD, NetBSD, and OpenBSD are supported. - DHCPv6 includes human-readable text in status code messages, in English. A method to reconfigure or support other languages would be preferable. - The "host-identifier" option is limited to a simple token. - The client and server can only operate DHCPv4 or DHCPv6 at a time, not both. To use both protocols simultaneously, two instances of the relevant daemon are required, one with the '-6' command line option. Changes since 4.3.0b1 - Tidy up receive packet processing. Thanks to Brad Plank of GTA for reporting the issue and suggesting a possible patch. [ISC-Bugs #34447] Changes since 4.3.0a1 - Modify the message displayed when a process hits a fatal error. The new message is much shorter and simply points to the README and our website for directions on bug submissions. [ISC-Bugs #24789] - Handle an absent resolv.conf file better. [ISC-Bugs #35194] Changes since 4.2.5 - Address static analysis warnings. [ISC-Bugs #33510] [ISC-Bugs #33511] - Silence benign static analysis warnings. [ISC-Bugs #33428] - Add check for 64-bit package for atf. [ISC-Bugs #32206] - Use newer auto* tool packages and turn on RFC_3542 support on Mac OS. [ISC-Bugs #26303] - Remove a variable when it isn't being used due to #ifdefs to avoid a compiler warning on Solaris using GCC. [ISC-Bugs #33032] - Add a check for too much whitespace in a config or lease file. Thanks to Paolo Pellegrino for finding the issue and a suggestion for the patch. [ISC-Bugs #33351] - Fix several problems with using OMAPI to manipulate class and subclass objects. [ISC-Bugs #27452] - Added a sleep call after killing the old client to allow time for the sockets to be cleaned. This should allow the -r option to work more consistently. [ISC-Bugs #18175] - Missing files for ISC DHCP Developer's Guide are now included in the release tarballs. To generate this documentation, please use make devel command in doc directory. [ISC-Bugs #32767] - Update client script for use with openwrt. [ISC-Bugs #29843] - Fix the socket handling for DHCPv6 clients to allow multiple instances of a client on a single machine to work properly. Previously only one client would receive the packets. Thanks to Jiri Popelka at Red Hat for the bug report and a potential patch. [ISC-Bugs #34784] - Added support for gentle shutdown after signal is received. [ISC-Bugs #32692] [ISC-Bugs 34945] - Enhance the DHCPv6 server logging to include the addresses that are assigned to the clients. [ISC-Bugs #26377] - Fix an operation in the DDNS code to be a bitwise instead of logical or. [ISC-Bugs #35138] @ text @@ 1.1.1.1.26.1 log @Sync with HEAD, resolve some conflicts @ text @@ 1.1.1.1.6.1 log @file qa.dox was added on branch tls-maxphys on 2014-08-19 23:46:41 +0000 @ text @d1 93 @ 1.1.1.1.6.2 log @Rebase to HEAD as of a few days ago. @ text @a0 93 /** @@page qa Quality Assurance There is a wide scale effort in progress to improve the quality of the ISC DHCP implementation. The following section describes the major aspects of quality assurance that are being implemented. As this is a work in progress, expect radical changes in this area. @@section qaTests ATF Unit-tests See @@ref tests Section for details description of ATF-based unit-tests. @@section cppcheck cppcheck tool cppcheck is a static analysis tool for C/C++ code. Unlike C/C++ compilers and many other analysis tools it does not detect syntax errors in the code. Cppcheck primarily detects the types of bugs that the compilers normally do not detect. To generate cppcheck report, you must have cppcheck installed in your system. Generation is simple: @@verbatim cd doc/ make cppcheck @@endverbatim The log files will be stored in doc/html/cppcheck.log and doc/html/cppcheck-error.log. While the former is useful for verifying that all sources were checked, the latter is much more useful. It contains a list of problems that were detected by cppcheck. The goal is to correct all problems and make this an empty file. In the unlikely event of cppcheck finding false positives it is possible to add special comments formatted to instruct cppcheck to not report what it thinks is an issue. make cppcheck target is configured to make cppcheck print out a specific issue type reported. For example to disable the following error report: @@verbatim bind/bind-9.8.1/bin/dnssec/dnssec-keygen.c:522: check_fail: Memory leak: algname (error,memleak) @@endverbatim the following line could be added before line 522 in dnssec-keygen.c: @@verbatim // cppcheck-suppress memleak @@endverbatim Please consult cppcheck manual for details. It is section 6.2 "Inline suppressions" in cppcheck 1.54 manual. Section number may change in later versions. @@section doxygen Doxygen checks ISC DHCP Developer's Guide (the documentation you are reading now) is generated with doxygen. Doxygen is an open source tool for generating source code documentation. It is available from www.doxygen.org website. Once Doxygen is installed, ISC DHCP documentation can be generated with: @@verbatim cd doc make devel @@endverbatim Note that cppcheck (see @@ref cppcheck Section) reports are linked from Developer's Guide. It is useful to generate both. @@section systemTests System level tests ISC is developing a comprehensive set of system level tests. They are described by a separate document called DHCP Test Plan. @@section perfdhcp Performance tests using perfdhcp ISC is also developing a performance measurement tool, called perfdhcp. Its main purpose is to measure performance of DHCPv4 and DHCPv6 servers. It is being developed as part of the BIND10 project. See tests/tools/perfdhcp directory in BIND10 source code. @@section tahiTests Conformance tests using TAHI TAHI project developed an extensive suite of DHCPv6 conformance tests. ISC plans to deploy and run them periodically in the near future. @@section valgrind Memory correctness using valgrind Valgrind is a powerful tool for dynamic code analysis. It allows running existing code (often even without recompiling) in a special environment that tracks memory operations. In particular, it is able to detect: memory leaks, buffer overflows, usage of uninitialized memory, double frees and similar errors. We currently do not use valgrind in ISC DHCP testing, but there are plans for starting to use it. */ @ 1.1.1.1.2.1 log @file qa.dox was added on branch tls-earlyentropy on 2014-08-10 07:06:55 +0000 @ text @d1 93 @ 1.1.1.1.2.2 log @Rebase. @ text @a0 93 /** @@page qa Quality Assurance There is a wide scale effort in progress to improve the quality of the ISC DHCP implementation. The following section describes the major aspects of quality assurance that are being implemented. As this is a work in progress, expect radical changes in this area. @@section qaTests ATF Unit-tests See @@ref tests Section for details description of ATF-based unit-tests. @@section cppcheck cppcheck tool cppcheck is a static analysis tool for C/C++ code. Unlike C/C++ compilers and many other analysis tools it does not detect syntax errors in the code. Cppcheck primarily detects the types of bugs that the compilers normally do not detect. To generate cppcheck report, you must have cppcheck installed in your system. Generation is simple: @@verbatim cd doc/ make cppcheck @@endverbatim The log files will be stored in doc/html/cppcheck.log and doc/html/cppcheck-error.log. While the former is useful for verifying that all sources were checked, the latter is much more useful. It contains a list of problems that were detected by cppcheck. The goal is to correct all problems and make this an empty file. In the unlikely event of cppcheck finding false positives it is possible to add special comments formatted to instruct cppcheck to not report what it thinks is an issue. make cppcheck target is configured to make cppcheck print out a specific issue type reported. For example to disable the following error report: @@verbatim bind/bind-9.8.1/bin/dnssec/dnssec-keygen.c:522: check_fail: Memory leak: algname (error,memleak) @@endverbatim the following line could be added before line 522 in dnssec-keygen.c: @@verbatim // cppcheck-suppress memleak @@endverbatim Please consult cppcheck manual for details. It is section 6.2 "Inline suppressions" in cppcheck 1.54 manual. Section number may change in later versions. @@section doxygen Doxygen checks ISC DHCP Developer's Guide (the documentation you are reading now) is generated with doxygen. Doxygen is an open source tool for generating source code documentation. It is available from www.doxygen.org website. Once Doxygen is installed, ISC DHCP documentation can be generated with: @@verbatim cd doc make devel @@endverbatim Note that cppcheck (see @@ref cppcheck Section) reports are linked from Developer's Guide. It is useful to generate both. @@section systemTests System level tests ISC is developing a comprehensive set of system level tests. They are described by a separate document called DHCP Test Plan. @@section perfdhcp Performance tests using perfdhcp ISC is also developing a performance measurement tool, called perfdhcp. Its main purpose is to measure performance of DHCPv4 and DHCPv6 servers. It is being developed as part of the BIND10 project. See tests/tools/perfdhcp directory in BIND10 source code. @@section tahiTests Conformance tests using TAHI TAHI project developed an extensive suite of DHCPv6 conformance tests. ISC plans to deploy and run them periodically in the near future. @@section valgrind Memory correctness using valgrind Valgrind is a powerful tool for dynamic code analysis. It allows running existing code (often even without recompiling) in a special environment that tracks memory operations. In particular, it is able to detect: memory leaks, buffer overflows, usage of uninitialized memory, double frees and similar errors. We currently do not use valgrind in ISC DHCP testing, but there are plans for starting to use it. */ @