BIND 10 #3210: Kea4 must not echo back client-id
BIND 10 Development
do-not-reply at isc.org
Mon Oct 28 12:10:20 UTC 2013
#3210: Kea4 must not echo back client-id
-------------------------------------+-------------------------------------
Reporter: tomek | Owner: tomek
Type: defect | Status:
Priority: very high | reviewing
Component: dhcp4 | Milestone:
Keywords: | Sprint-DHCP-20131016
Sensitive: 0 | Resolution:
Sub-Project: DHCP | CVSS Scoring:
Estimated Difficulty: 0 | Defect Severity: Low
Total Hours: 0 | Feature Depending on Ticket:
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Changes (by marcin):
* owner: UnAssigned => tomek
Comment:
Reviewed commit: 4a08e3662e7720ac6c96b7d585084bbe4033c29b
'''doc/guide/bind10-guide.xml'''
Apparently, the RFC6842 says that the client id must be echoed back to the
client IF client id has been included in the client's message. I suggest
that the bind10-guide is updated accordingly. Otherwise, it gives an
impression that client-id must be always included.
'''src/bin/dhcp4/config_parser.cc'''
commitGlobalOptions: why is this function called like this? It merely
stores the new !''echo-client-id!'' option in the !CfgMgr.
Question: do you think it makes sense to have a per-subnet configuration
of this new option? For the current use cases I am sure it is ok to have
the global setting but I can imagine that in the future we may want to
support a number of devices which are not RFC6842 conformant for which the
client-id echoing should be disabled while for other devices it should be
still enabled.
'''src/bin/dhcp4/tests/config_parser_unittest.cc'''
The echoClientId test is insufficient because it doesn't check the value
of !''echo-client-id!'' flag before applying the configuration. It may be
the case that the parser doesn't parse this new option at all and thus
this check:
{{{
EXPECT_FALSE(CfgMgr::instance().echoClientId());
}}}
will always pass because the parser simply wouldn't modify this value. I
think you should either set this value in the !CfgMgr to true before
applying first configuration or you should swap the configurations (so as
the one which sets it goes first) and prior to applying this configuration
perform ASSERT_FALSE.
'''src/bin/dhcp4/dhcp4_test_utils.h'''
checkClientId: After recent changes to this function you should extend the
description of this function to say that the function checks presence of
the client-id if specified so in the !CfgMgr and checks the absence in
other case. Otherwise it looks like you always expect that client-id is
present.
'''src/bin/dhcp4/tests/dhcp4_srv_unittest.cc'''
Dhcpv4SrvTest::discoverEchoClientId: The test description is a bit
ambiguous. It may be unclear what it means that the !''echoing back
client-id!'' is controllable.
The checks in line 705 and 713 look like duplicates of what the
!''checkClientId!'' function is already doing.
The same comments apply to Dhcpv4SrvTest::requestEchoClientId
'''src/lib/dhcpsrv/cfgmgr.h'''
I fixed a few trivial issues and pushed changes to the branch.
'''src/lib/dhcpsrv/tests/cfgmgr_unittest.cc'''
CfgMgrTest::echoClientId: Just a thought. The test could also check that
the flag can be set to TRUE after setting it to FALSE. However, I admit
that it is not very likely to fail :-)
We need a !ChangeLog for this because it has a user impact.
--
Ticket URL: <http://bind10.isc.org/ticket/3210#comment:2>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list