libdhcp.xml 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
  3. "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
  4. <!ENTITY mdash "&#x2014;" >
  5. ]>
  6. <chapter id="libdhcp">
  7. <title>libdhcp++ library</title>
  8. <para>
  9. libdhcp++ is a common library written in C++ that handles
  10. many DHCP-related tasks, including:
  11. <itemizedlist>
  12. <listitem>
  13. <simpara>DHCPv4 and DHCPv6 packets parsing, manipulation and assembly</simpara>
  14. </listitem>
  15. <listitem>
  16. <simpara>Option parsing, manipulation and assembly</simpara>
  17. </listitem>
  18. <listitem>
  19. <simpara>Network interface detection</simpara>
  20. </listitem>
  21. <listitem>
  22. <simpara>Socket operations such as creation, data transmission and reception and socket closing.</simpara>
  23. </listitem>
  24. </itemizedlist>
  25. </para>
  26. <para>
  27. While this library is currently used by Kea, it is designed to
  28. be a portable, universal library, useful for any kind of DHCP-related software.
  29. </para>
  30. <!-- TODO: point to doxygen docs -->
  31. <section id="iface-detect">
  32. <title>Interface detection and Socket handling</title>
  33. <para>Both the DHCPv4 and DHCPv6 components share network
  34. interface detection routines. Interface detection is
  35. currently supported on Linux, all BSD family (FreeBSD, NetBSD,
  36. OpenBSD), Mac OS X and Solaris 11 systems.</para>
  37. <para>DHCPv4 requires special raw socket processing to send and receive
  38. packets from hosts that do not have IPv4 address assigned yet. Support
  39. for this operation is implemented on Linux only, so it is likely that
  40. DHCPv4 component will not work in certain cases on systems other than
  41. Linux.</para>
  42. </section>
  43. <!--
  44. <section id="packet-handling">
  45. <title>DHCPv4/DHCPv6 packet handling</title>
  46. <para>TODO: Describe packet handling here, with pointers to wiki</para>
  47. </section>
  48. -->
  49. </chapter>