BIND 10 #2488: Create DHCP Test Plan

BIND 10 Development do-not-reply at isc.org
Fri Jan 4 16:18:07 UTC 2013


#2488: Create DHCP Test Plan
-------------------------------------+-------------------------------------
            Reporter:  stephen       |                        Owner:
                Type:  task          |  stephen
            Priority:  medium        |                       Status:
           Component:                |  reviewing
  documentation                      |                    Milestone:
            Keywords:                |  Sprint-DHCP-20130122
           Sensitive:  0             |                   Resolution:
         Sub-Project:  DHCP          |                 CVSS Scoring:
Estimated Difficulty:  0             |              Defect Severity:  N/A
         Total Hours:  0             |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
Changes (by tomek):

 * owner:  tomek => stephen


Comment:

 Replying to [comment:9 stephen]:
 > The tickets that will run the tests include the creation of the
 appropriate documentation.  Once the tests are complete, the test
 documents will be collected together into a single document.
 Do we

 > Following the [wiki:SprintPlanningDHCP20130103 sprint planning meeting]
 of 3 January 2013, ticket #2596 has been created for this.
 Thanks. I'll take care of it. It is reasonably simple thing to do.

 > I've changed this to "requested options".  We are checking that the
 server sends the configured options and does not send the unconfigured
 ones.
 Ok.

 > > Performance tool: ability to simulate a number of clients.
 > > Need concrete values here. "A number" may mean "more than one" or "a
 million".
 > I have set that to 100 clients.  Small enough to check, large enough to
 be reasonably certain that larger numbers are supported.
 That's a reasonable number. It also defines a nice, concrete pass
 criteria. "Somewhat passed in sense" or "it depends" is not a test status.
 "Passed" or "failed" is. Having a concrete number helps a lot here.

 > > Pool exhaustion is not supported too well. Currently server will give
 up after it tries to allocate an address after 100 tries. This parameter
 is not configurable yet.
 > Does it log this? If so, the test for a debug message is OK.
 Yes, there is.

 > >> Check that a reconfiguration removing a particular address pool
 causes clients with leases in that pool to be refused a renewal and to
 obtain another address.
 > > Kea doesn't work that way. If the client gets back to us after the
 lease expired and the lease was not assigned to anyone else, we will still
 give it back to the original client.
 > So even if we say that we no longer want to allocate that particular
 address, Kea will still allocate it if a client that had previously had
 the address comes back and asks for it?
 I'm afraid so. There is no code in the reconfiguration that checks for
 existing leases and removes those that are no longer in scope. I think we
 should add a ticket for it. It is unlikely that we will be able to
 implement it before Jan 23rd, so that makes a good bullet on "known
 limitations" list in our release notes. We may update/reuse sections 16.4
 ("DHCPv4 Server Limitations") and 17.4 ("DHCPv6 Server Limitations") from
 BIND10 Guide for that purpose.

 > >> Check that the server rejects all but DISCOVER and REQUEST messages.
 > > Kea also accepts RELEASE. The code also responds with empty packets to
 all other message types. This part of the code is still what we used to
 call a skeleton.
 > "all other message types": Does this mean that it will respond to
 messages meant for the client?  The idea of the test is to check that the
 server will not respond to messages that by the protocol are not meant to
 be sent to the server.
 I should be more precise. All other messages that server is supposed to
 receive from client: DECLINE and INFORM. The complete list is in
 Dhcpv4Srv::run() method in src/bin/dhcp4/dhcpv4_srv.cc

 > >> Check that the server rejects malformed DISCOVER and REQUEST
 messages.
 > > That will be interesting to watch. :)
 > Probably as dull as watching paint dry actually.  I was thinking that we
 could use Scapy for this.
 There are so many creative ways of malforming a packet. I agree that Scapy
 is probably the way to go here. As a side effect, this will be most likely
 one of the first automated tests we'll get.

 > >> DHCPv6 features: Set up multiple subnets and pools: using different
 client characteristics, check that leases are allocated from the correct
 pool.
 > > See my comment above.
 > Should be addressed by #2596.
 Agree.

 > >> Check that a reconfiguration removing a particular address pool
 causes clients with leases in that pool to be refused a renewal and to
 obtain another address.
 > > Not supported yet.
 > Same question as before.
 Same answer as before. We can also implement this. It is not overly
 complicated, but requires implementing one extra LeaseMgr query (select
 all leases from a given subnet). Doable before 23rd, but will take away
 precious testing time.

 > > Is the perfdhcp part of the official delivery? If not, we should
 definitely trim down its validation and focus on server.
 > It is a formal part of the software.  Given the refactoring that took
 place this year, a quick check (and this is all that the check is) that it
 is working is justified.
 Ok.

 > > Two big things are missing:
 > > explicit list of clients we want to test inter-op with
 > For now, we will just say ISC DHCP clients.
 The text does not say so. It currently uses vague "if the server is able
 to inter-operate with common DHCP clients such as the ISC DHCP Client and
 the Windows DHCP client.". It will be ok if we remove "such as" words. We
 should also say what we have in mind saying ISC DHCP: 4.1-ESV, 4.2.5?
 Both?. Also, which windows version? Randomly selected one? From XP? From
 Windows 7? Vista? etc.

 > > the actual list of tests (currently this document only lists
 requirements, there are no test descriptions).
 > Test descriptions will be built up as part of the test tickets.
 Ok.

 > > For example of actual test descriptions, please take a look at Section
 5 of doc/dhcp-test-plan.txt from dhcp-val repository.
 > Will do.  We should use that as a template as we create the tests for
 the different parts of the server.
 I will send out a mail about that shortly.

 > The [DhcpTestPlan test plan] has been modified: the new version is
 version 4.
 Thanks.

-- 
Ticket URL: <http://bind10.isc.org/ticket/2488#comment:10>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list