summaryrefslogtreecommitdiff
path: root/doc/guide/libdhcp.xml
blob: 9e192eeb294abc98b70d56f90ba0a757b1267c9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!--
 - Copyright (C) 2014-2018 Internet Systems Consortium, Inc. ("ISC")
 -
 - This Source Code Form is subject to the terms of the Mozilla Public
 - License, v. 2.0. If a copy of the MPL was not distributed with this
 - file, You can obtain one at http://mozilla.org/MPL/2.0/.
-->

<!-- Converted by db4-upgrade version 1.1 -->
<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="libdhcp">
    <title>The libdhcp++ Library</title>
    <para>
      libdhcp++ is a library written in C++ that handles
      many DHCP-related tasks, including:
      <itemizedlist>
        <listitem>
          <simpara>DHCPv4 and DHCPv6 packets parsing, manipulation and assembly</simpara>
        </listitem>
        <listitem>
          <simpara>Option parsing, manipulation and assembly</simpara>
        </listitem>
        <listitem>
          <simpara>Network interface detection</simpara>
        </listitem>
        <listitem>
          <simpara>Socket operations such as creation, data transmission and reception and socket closing.</simpara>
        </listitem>
      </itemizedlist>
    </para>

    <para>
    While this library is currently used by Kea, it is designed to
    be a portable, universal library, useful for any kind of DHCP-related software.
    </para>

<!-- TODO: point to doxygen docs -->

    <section xml:id="iface-detect">
      <title>Interface detection and Socket handling</title>
      <para>Both the DHCPv4 and DHCPv6 components share network
      interface detection routines. Interface detection is
      currently supported on Linux, all BSD family (FreeBSD, NetBSD,
      OpenBSD), Mac OS X and Solaris 11 systems.</para>

      <para>DHCPv4 requires special raw socket processing to send and receive
      packets from hosts that do not have IPv4 address assigned. Support
      for this operation is implemented on Linux, FreeBSD, NetBSD and OpenBSD.
      It is likely that DHCPv4 component will not work in certain cases on
      other systems.</para>
    </section>

<!--
    <section id="packet-handling">
      <title>DHCPv4/DHCPv6 packet handling</title>
      <para>TODO: Describe packet handling here, with pointers to wiki</para>
    </section>
-->

  </chapter>