Annotation of embedaddon/dhcp/tests/DHCPv6/README, revision 1.1

1.1     ! misho       1: In order to test the DHCPv6 server, we have a configuration file with
        !             2: known values, and some Perl scripts designed to send and receive
        !             3: DHCPv6 packets to check various code paths.
        !             4: 
        !             5: It is not complete test converage by any means, but it should be
        !             6: fairly easy to add additional tests as needed.
        !             7: 
        !             8: The scripts themselves are not very well written. There is a lot of
        !             9: copied code, poor error handling, and so on. These should be rewritten
        !            10: at some point.
        !            11: 
        !            12: To use, the DHCPv6 server must be running in test mode to send back to
        !            13: the originating port. (The scripts can be changed to bind to the
        !            14: appropriate client port, but they don't now, and have to run as root
        !            15: to do this). In server/dhcpv6.c, look for this comment:
        !            16: 
        !            17: /* For testing, we reply to the sending port, so we don't need a root */
        !            18: /* client */
        !            19:                to_addr.sin6_port = remote_port;
        !            20: /*             to_addr.sin6_port = packet->client_port;*/
        !            21: 
        !            22: And change the code to use the client_port value.
        !            23: 
        !            24: You will need to modify one of the test configuration files to use one 
        !            25: of the physical subnets that your machine uses, in the subnet6 
        !            26: statement.
        !            27: 
        !            28: Then run the server as root, in debug mode:
        !            29: 
        !            30: # touch /tmp/test.leases
        !            31: # dhcpd -cf test-a.conf -lf /tmp/test.leases -d
        !            32: 
        !            33: You can invoke the scripts then:
        !            34: 
        !            35: $ perl 000-badmsgtype.pl
        !            36: 
        !            37: The expected results vary per script, depending on the behavior that
        !            38: is being tested.
        !            39: 
        !            40: 
        !            41: Notes about scripts:
        !            42: 
        !            43: In order to manipulate IPv6 addresses, we need the Socket6 library,
        !            44: available from CPAN:
        !            45: 
        !            46: http://search.cpan.org/~umemoto/Socket6-0.19/Socket6.pm
        !            47: 
        !            48: The Perl that Sun issues for Solaris 10 is compiled with the Sun
        !            49: compiler. If you have the Sun compiler, then this will work fine.
        !            50: Otherwise you may need to install Perl from source.
        !            51: 
        !            52: We need to get the hardware address in order to build DUID properly.
        !            53: The IO::Interface module reports hardware address, but not on Solaris
        !            54: 10 it seems. Rather than do this the "right way", we do it the "Perl
        !            55: way", and hack it. "ifconfig" does return the Ethernet address, but
        !            56: only to the root user. However, we can look for files of the name
        !            57: /etc/hostname.*, get the IP address from "ifconfig", and then check
        !            58: for those addresses in the ARP table.
        !            59: 
        !            60: Client DUID is supposed to be an opaque value to the server, but we go
        !            61: ahead and make a "real" type 1 or type 3 DUID.
        !            62: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>