DHCP Sprint Planning Meeting: 2011-12-07




With John DuBois off sick, Francis Dupont has taken over the benchmarking code.

Progress to date

Francis progress
Francis will not be attending the meeting, he reports:

I finished the first phase code (first phase - 2 packet exchanges) and debugged the IPv4 part. I am not very found of the timing behavior but I worked with Linux VMs so anyway it can give only a loose idea of the real world.

My plan is to create a branch and commit it to the central repository as soon as the IPv6 debug is finished (before the end of the week, most problems I fixed were IP version independent).

Shawn progress
Initial draft of DHCPv4 Hooks completed (see below).

Tomasz progress

  • doing receive and send v4 packets
  • doing receive packets from clients
  • implemented if detection on linux

In essence, we have all the major parts, only minor things are missing.

One problem has been that all tasks are on the critical path and are interdependent. So putting tasks into separate tickets and merging them is slowing things down.

Checking the state of the tasks on the progress spreadsheet:

  • V4 packet library options are complete
  • V4 state machine:
    • Basic framework complete
    • Responses are outstanding
  • Comcast agreed that it was OK to remove the relay hook definitions document from this stage of the work.
  • Benchmarking tools in progress
  • Option definitions framework design.
    • Only a high-level document is required here, this will be started once the coding is complete.
  • Low-level network layer
    • Interface detection in progress - will be tested, but won't be thorough as it is very machine-specific.
    • Socket binding v4 (#1238) Done.
    • TX/RX done but awaiting review (#1239)

Release to Comcast

The next release of BIND 10 is due on January 17. It was agreed that a tarball of the current "master" branch of the BIND 10 repository at the end of the year would be placed on the FTP web site and the location passed to Comcast. They would also be informed about the date of the next release of BIND 10.

Action: Stephen to organise creation of tarball/notifying Comcast.

DHCP Hooks Discussion

This was a discussion of the DHCPv4 additions to DhcpHooks. Salient issues were:

  • The DHCP4 callbacks require that the address be obtained from the packet; the DHCP6 callbacks pass an address structure. This is a different style of interface.
    After some discussion, the consensus seemed to be leaning towards the simpler approach, providing accessor classes for DHCP6 callback functions to extract the information from the packet. (An objection about writing callbacks in C or Python was countered by a suggestion for a C/Python "wrapper" written in C++: BIND 10 DNS uses this to interface Python with the C++ library.)
  • It would be useful to have some clearer documentation as to what callbacks are called for different packets.
  • The DHCP4 callbacks require the callback to identify the type of packet it is being passed, whereas the by the time the DHCP6 callbacks are invoked, analysis has been done to find out what type of lease is being issued. This is mainly due to there being one type of lease (from the protocol point of view) in DHCP4.
  • We need to be clearer about what the callback can do to the lease; for example, if it adjusts the address returned, should the system automatically update the lease database or should that be the callbacks responsibility? The consensus seemed to be that it is the callback's responsibility, so an API is needed for callback to access the lease database.

Finally, an afterthought - the hooks were seen as a replacement for the clever stuff we can do in the configuration file - are we now going overboard with them?

The team was asked to send Shawn their comments. He would include them in the text. Also, he would list unanswered questions and the topic will be discussed further at the face-to-face meeting in January.

Action: Shawn - update wiki page with comments and list unanswered questions.
Action: Stephen - include discussion of hook on the agenda for the face to face meeting.

Benchmark Question

Francis asks: for comments on the following"

I proposed a solution to the resource consumption issue for the second phase: without caution 4 packet exchanges will either use the same client/address and cover a small part of the code, or consume a lot of addresses, possibly up to exhaustion. My proposal is to randomize the simulated client identity between 0 and <range>, with <range> given in the command line and between 0 (no randomization in fact) and 232-1.

Would the team please send comments directly to Francis.

Tasks for Next Sprint

We are now so close to the end of the project that there is no specific prioritisation of tasks - just get them all finished. The Sprint will end on 21 December 2011 - delivery at the start of 2012.


The BIND 10 face-to-face meeting will take place in January. Dates are:

  • BIND 10 DNS 9-12 Jan (Mon-Thur)
  • BIND 10 Open day 13 Jan (Fri)
  • BIND 10 DNS/DHCP meeting 14 Jan (Sat)
  • Free day 15 Jan (Sun)
  • DHCP meeting 16 and 17 Jan (Mon-Tue)
Last modified 7 years ago Last modified on Dec 8, 2011, 5:14:21 PM

Attachments (1)

Download all attachments as: .zip