BIND 10 #3180: Kea6 is not able to handle relayed traffic from DOCSIS3.0
BIND 10 Development
do-not-reply at isc.org
Tue Oct 8 15:54:25 UTC 2013
#3180: Kea6 is not able to handle relayed traffic from DOCSIS3.0
-------------------------------------+-------------------------------------
Reporter: tomek | Owner:
Type: defect | marcin
Priority: very high | Status:
Component: dhcp6 | reviewing
Keywords: | Milestone:
Sensitive: 0 | Sprint-DHCP-20131016
Sub-Project: DHCP | Resolution:
Estimated Difficulty: 0 | CVSS Scoring:
Total Hours: 0 | Defect Severity:
| Medium
| Feature Depending on Ticket:
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Changes (by tomek):
* owner: tomek => marcin
Comment:
Reviewing changes on ff3ddd8332fbaab5ff76f140ae9f185a2d2d6e34.
'''option.h'''
!OptionCollection - why is it for DHCPv6 options only ? It is perfectly
capable to store v4 options. If it's intended for v6 only, there should
be a comment that explains that.
If !OptionCollection is really v6 only, perhaps it should be
renamed for Option6Collection?
!UpackOptionsCallback - why the parameters are not named? Those should
be named and documented (or if naming the parameters create warnings,
at least they should be documented by number, e.g. parameter 1
specifes option buffer to be parsed, parameter 2 specifies ...)
'''option6_iaaddr.cc'''
'''option_int.h'''
It is fine to keep the option constructors as they are for now,
but I think the constructors should be extended to cover
other option spaces one day, e.g. vendor option. I think that
adding a @todo about it now would be sufficient, but I won't
object if you have other plans for handling interger suboptions
within vendor-option.
'''pkt4.cc'''
The comment in line 214 is wrong and useless. This is not the
first use of readVector(). It would be better to explain why
the readVector has to be used. For the callback_ call in line
219 it would be useful to explain why the the last 2 arguments
passed are zeros. And shouldn't they be NULLs, not zeros? Those
arguments are pointers.
'''pkt6.cc'''
The same comment as for pkt4. The zeros passed to first use
of callback_() should be NULLs and explained what they mean.
'''option_unittest.cc'''
!OptionTest.unpackCallback(): Comments for opt_data are wrong.
length is 2 for the first option, length for the second
option is not specified. The content of second option should
be different than the first one.
Parameters passed to boost::bind should be commented on. It is
unclear what _1 to _5 mean.
'''pkt4_unittest.cc'''
Generic comment: why is !CustomCallback defined in option_unittest.cc
and in pkt4_unittest.cc? I would expect it to be either in
pkt4_ and pkt6_ or both defined in option_unittest.cc which is
common for v4 and v6. There's no need to change anything, I'm just
curious.
'''pkt6_unittest.cc'''
packAndClone(): why do you create one packet and then create
second one based on the first one? Wouldn't it be easier to just
create a packet and return it?
'''dhcp4_srv.cc'''
Dhcpv4Srv::unpackOptions() why the check is for dhcp6? This is v4
code. If that is correct, an explanation comment is required. This
looks like a bug.
On a related note, this is not picked up by unit-tests. We don't want
to spend any more time on this, so please just add a todo that more
thorough tests for unpackOptions() that also cover dhcp4 option space
are needed.
Dhcv4Srv::unpackOptions() - parameters are not indented correctly
(one space too far)
------
The code does not compile:
{{{
make[5]: Wejście do katalogu
`/home/thomson/devel/bind10-clean/tests/tools/perfdhcp'
CXX perfdhcp-perf_pkt6.o
CXX perfdhcp-perf_pkt4.o
CXX perfdhcp-pkt_transform.o
CXX perfdhcp-test_control.o
In file included from pkt_transform.cc:22:0:
pkt_transform.h:69:28: error: ‘OptionCollection’ in ‘class
isc::dhcp::Option’ does not name a type
pkt_transform.h:69:60: error: ISO C++ forbids declaration of ‘options’
with no type [-fpermissive]
pkt_transform.h:91:30: error: ‘OptionCollection’ in ‘class
isc::dhcp::Option’ does not name a type
pkt_transform.h:91:62: error: ISO C++ forbids declaration of ‘options’
with no type [-fpermissive]
}}}
Many more errors follow.
Changelog proposal looks good.
--
Ticket URL: <http://bind10.isc.org/ticket/3180#comment:5>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list