From: Francis Dupont Date: Tue, 22 Dec 2015 17:05:59 +0000 (+0100) Subject: [master] Finised merge of trac4234 (doxygen warnings) X-Git-Tag: trac4263_base~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b67910a3893bc79eb77a48bae6c31214a317bd40;p=thirdparty%2Fkea.git [master] Finised merge of trac4234 (doxygen warnings) --- b67910a3893bc79eb77a48bae6c31214a317bd40 diff --cc ChangeLog index 1ac2fbbd0e,1ed13ce694..e7f6276136 --- a/ChangeLog +++ b/ChangeLog @@@ -1,55 -1,3 +1,59 @@@ ++1075. [bug] fdupont ++ Removed warnings emitted during generation of Doxygen documentation. ++ (Trac #4234, git xxx) ++ +1074. [bug] marcin + Addressed regression in distcheck after merge of #4224. + Before the changes one of the lease files produced by + 'kea-lfc' was not removed after tests running lease file + cleanup. As a result, the distcheck failed discovering + this file being left after distclean. + (Trac #4249, git 04aa9b95bf8c4dd8b555dd78cc8cd57126473800) + +1073. [bug] tmark + This change bumps the MySQL schema version from 4.0 to 4.1 and includes + the following changes: added explicit use of InnoDB engine to all MySQL + table create statements, MySQL lease dump output is now sorted by lease + address in ascending order, and the MySQL lease_hwaddr_source table now + contains an entry for HWADDR_SOURCE_UNKNOWN (i.e. source = 0). Our thanks + to Sebastien Couture at Ubity Inc. for reporting the InnoDB engine issue + and submitting a fix for it. + (Github #16, Trac #4237,#4238, git f0fb9f35a394785215573a591c2bcc68ab481436) + +1075. [doc] marcin + Changed Kea license from ISC to Mozilla Public License, + v. 2.0. + (Trac #4236, git a0574cdab4deb31e3244fc4e237753a1ad361d96) + +1074. [bug] marcin + PID files created by Kea processes are used in shell based + tests to determine if the given process is running. This + solves the problem whereby some unrelated processes could + be reported as running Kea processes in those tests, causing + the tests to fail. + (Trac #4224, git 94edccc50cb374ec4db35f653b869c9f06d356ea) + +1073. [doc] tomek + Developer's Guide updated with client classification text + and several clean-ups. + (Trac #4102, git ac33ebf7428ba5935d3302d000bed317716fabfe) + +1072. [bug] tmark + The lease6 hardware address source value is now being properly populated. + Prior to this the value stored with each IPv6 lease was always zero. + (Trac #4247, git 27886dadcf9051dc622ee6fde586c27f3d431f8b) + +1071. [func] tmark + Assigned unique log message IDs to log messages issued from + MySQL hosts storage operations, eliminating resuse of + lease database message IDs. + (Trac #4216, git f0e37cd6d45537971a730c68187011dce41217cc) + +1070. [doc] sar + Correct v6 classification examples to use client-id (1) instead + of server-id (2). + (Trac #4222, git 69dd98d03861d9de72c2ef75c17c8154b0c5088b) + 1069. [bug] tomek Improved handling of incoming packets with invalid client-id and DUID. diff --cc src/bin/dhcp6/dhcp6.dox index 14492e12e8,82bcb4da13..25feee5bfa --- a/src/bin/dhcp6/dhcp6.dox +++ b/src/bin/dhcp6/dhcp6.dox @@@ -233,35 -235,8 +233,35 @@@ Nevertheless, there is such a possibili check whether a packet belongs to given class, isc::dhcp::Pkt6::inClass method should be used. +The code sometimes refers to this classification as "simple" or 'built-in", because +it does not require any configuration and thus is built into the server logic. + +@subsection dhcpv6ClassifierFull Full Client Classification in DHCPv6 + +Kea 1.0 introduced full client classification. Each client class consists of a name +and an expression that can be evaluated on an incoming packet. If it evaluates to +true, this packet is considered a member of said class. Class definitions are stored +in isc::dhcp::ClientClassDef objects that are kept in isc::dhcp::ClientClassDictionary +and can be retrieved from CfgMgr using isc::dhcp::SrvConfig::getClientClassDictionary(). +This is convenient as there are often multiple classes associated with a given scope. +As of Kea 1.0, the only supported scope is global, but there are plans to support +class definitions that are subnet specific. + +Client classification is done in isc::dhcp::Dhcpv6Srv::classifyPacket. First, the old +"built-in" (see @ref dhcpv6ClassifierSimple) classification is called (see @ref +isc::dhcp::Dhcpv6Srv::classifyByVendor). Then the code iterates over all class definitions +and for each class definition it calls isc::dhcp::evaluate, which is implemented in libeval +(see @ref dhcpEval). If the evaluation is successful, the class name is added to the packet +(by calling isc::dhcp::pkt::addClass). + +If packet belongs to at least one class, this fact is logged. If there are any +exceptions raised during class evaluation, an error is logged and the code attempts +to evaluate the next class. + +@subsection dhcpv6ClassifierUsage How client classification information is used in DHCPv6 + Currently there is no class behavior coded in DHCPv6, hence no v6 equivalent of - @ref isc::dhcp::Dhcpv6Srv::vendorClassSpecificProcessing. Should any need for such a code arise, + @ref isc::dhcp::Dhcpv4Srv::vendorClassSpecificProcessing. Should any need for such a code arise, it will be conducted in an external hooks library. It is possible to define class restrictions in subnet, so a given subnet is only diff --cc src/lib/dhcpsrv/alloc_engine_log.cc index d38c21c364,91b7c11f47..7fe927ee74 --- a/src/lib/dhcpsrv/alloc_engine_log.cc +++ b/src/lib/dhcpsrv/alloc_engine_log.cc @@@ -1,10 -1,18 +1,10 @@@ -// Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC") // -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH -// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, -// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -// PERFORMANCE OF THIS SOFTWARE. +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. - /// @file Defines the logger used by the @c isc::dhcp::HostMgr + /// @brief Defines the logger used by the @c isc::dhcp::AllocEngine #include "dhcpsrv/alloc_engine_log.h" diff --cc src/lib/dhcpsrv/hosts_log.cc index be049a9255,6fb7ef8da5..1a3433c192 --- a/src/lib/dhcpsrv/hosts_log.cc +++ b/src/lib/dhcpsrv/hosts_log.cc @@@ -1,10 -1,18 +1,10 @@@ -// Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC") // -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH -// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, -// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -// PERFORMANCE OF THIS SOFTWARE. +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. - /// @file Defines the logger used by the @c isc::dhcp::HostMgr + /// @brief Defines the logger used by the @c isc::dhcp::HostMgr #include "dhcpsrv/hosts_log.h"