BIND 10 #991: Method to send a IPv4 packet to a client without an address
BIND 10 Development
do-not-reply at isc.org
Thu Apr 4 17:11:47 UTC 2013
#991: Method to send a IPv4 packet to a client without an address
-------------------------------------+-------------------------------------
Reporter: shane | Owner:
Type: enhancement | UnAssigned
Priority: medium | Status:
Component: dhcp4 | reviewing
Keywords: | Milestone:
Sensitive: 0 | Sprint-DHCP-20130411
Sub-Project: DHCP | Resolution:
Estimated Difficulty: 0.0 | CVSS Scoring:
Total Hours: 0 | Defect Severity: N/A
| Feature Depending on Ticket:
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Changes (by marcin):
* owner: marcin => UnAssigned
* status: assigned => reviewing
Comment:
Adding support to respond to clients without address requires use of raw
sockets. Such sockets can be only created by privileged user. Therefore,
there is no easy way to unit test this code. The likely approach is to
create mock object that mimics the operation of the raw socket. This would
eliminate the need to open a real socket in unit tests. Also, it is
desired to keep existing implementation around which doesn't use raw
sockets for the OSes that don't have support for anything else (yet). This
caused a need to make !IfaceMgr a little bit more modular and abstract the
code which opens sockets and sends/receives packets into a separate
(replaceble) class. This required significant number of changes to
!IfaceMgr, so I decided not to do further implementation (of raw sockets
etc.) in this ticket. Otherwise it would grow too large and would cause
serious difficulties to review it.
Apart from the changes described above I implemented the short path to
respond to the client, not having an address, by responding to broadcast
address. This is proposed by RFC 951 if there is no way to respond
directly. Obviously, once we implement direct responses they will take
precedence over responding to broadcast address. Nevertheless, the
approach has been tested on my local machine and it worked fine.
--
Ticket URL: <https://bind10.isc.org/ticket/991#comment:7>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list