/*
 * Copyright (C) 2018 Freie Universität Berlin
 *
 * This file is subject to the terms and conditions of the GNU Lesser
 * General Public License v2.1. See the file LICENSE in the top level
 * directory for more details.
 */

/**
 * @defgroup    net_cord CoRE RD Endpoint and Lookup Client
 * @ingroup     net
 * @brief       Library for interacting as endpoint and lookup client with CoRE
 *              Resource Directories
 *
 * # About
 * The `cord` ([Co]RE [R]esource [D]irectory) module provides endpoint and
 * lookup client functionality for interacting with CoRE Resource Directories
 * (RDs) as defined in `draft-ietf-core-resource-directory-27`.
 *
 * @see https://tools.ietf.org/html/draft-ietf-core-resource-directory-27
 *
 * `draft-ietf-core-resource-directory-27` defines two types different roles for
 * nodes when interacting with a RD:
 * - `endpoint`: registers and manages entries at the RD
 * - `client`: performs different kind of lookups
 *
 * ```
 *               Registration     Lookup, Group
 *               Interface        Interfaces
 *   +----+          |                 |
 *   | EP |----      |                 |
 *   +----+    ----  |                 |
 *                 --|-    +------+    |
 *   +----+          | ----|      |    |     +--------+
 *   | EP | ---------|-----|  RD  |----|-----| Client |
 *   +----+          | ----|      |    |     +--------+
 *                 --|-    +------+    |
 *   +----+    ----  |                 |
 *   | EP |----      |                 |
 *   +----+
 * ```
 * Figure copied form `draft-ietf-core-resource-directory-27`.
 *
 * @note In the context of this module, we refer to these roles as `endpoint
 *       (ep)` and `lookup client (lc)`. This should hopefully prevent some
 *       confusion in conjunction with the `client` and `server` roles as
 *       defined by CoAP.
 *
 * # Structure
 *
 * This module is structured in a number of submodules with goal to reflect the
 * different roles described in `draft-ietf-core-resource-directory-27`:
 *
 * - `cord_ep`:     standard endpoint implementation following the rules as
 *                  defined i.a. in sections 5.2, 5.3, A.1, and A.2
 * - `cord_epsim`:  endpoint implementation following the simple registration
 *                  procedure as defined in section 5.3.1
 * - `cord_lc`:     lookup client implementation for querying information from
 *                  an RD using the lookup and group interfaces (**NOT
 *                  YET IMPLEMENTED**)
 * - `cord_config`: header file collection (default) configuration values used
 *                  throughout this module
 * - `cord_common`: shared functionality used by the above submodules
 *
 */
