/* * Copyright (C) 2015-17 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. */ #pragma once /** * @defgroup drivers_slipdev_stdio STDIO via SLIP * @ingroup sys_stdio * @brief Standard input/output backend multiplexed via SLIP * @see [draft-bormann-t2trg-slipmux-03](https://datatracker.ietf.org/doc/html/draft-bormann-t2trg-slipmux-03) * * This extension is part of the [Slipmux draft](https://datatracker.ietf.org/doc/html/draft-bormann-t2trg-slipmux-03). * @warning This module is under development for optimizations and module names might change! * * This will multiplex STDIO via the Serial Line Internet Protocol. * The shell can be accessed via the `sliptty` tool. * * To enable this stdio implementation, select * * USEMODULE += slipdev_stdio * * @see drivers_slipdev */ /** * @defgroup drivers_slipdev_configuration CoAP via SLIP * @ingroup drivers_slipdev * @brief Exchange CoAP requests and responses via SLIP * @see [draft-bormann-t2trg-slipmux-03](https://datatracker.ietf.org/doc/html/draft-bormann-t2trg-slipmux-03) * * This extension is part of the [Slipmux draft](https://datatracker.ietf.org/doc/html/draft-bormann-t2trg-slipmux-03). * @warning This module is under development for optimizations and module names might change! * * This will multiplex CoAP messages via the Serial Line Internet Protocol. * It spawns an extra thread as a CoAP server. The incoming requests are handled with `nanocoap` * according to any `NANOCOAP_RESOURCE`s present in the binary. See @ref net_nanocoap for more. * * To enable this implementation, select * * USEMODULE += slipdev_config * * @see drivers_slipdev */ /** * @defgroup drivers_slipdev SLIP network device * @ingroup drivers_netdev * @brief SLIP network device over @ref drivers_periph_uart * @see [RFC 1055](https://datatracker.ietf.org/doc/html/rfc1055) * * @{ * * @file * @brief SLIP device definitions * * @author Martine Lenders */ #include #include "cib.h" #include "net/netdev.h" #include "periph/uart.h" #include "chunked_ringbuffer.h" #include "sched.h" #ifdef __cplusplus extern "C" { #endif /** * @defgroup drivers_slipdev_config SLIP Network driver compile configuration * @ingroup config_drivers_netdev * @{ */ /** * @brief UART buffer size used for TX and RX buffers * * Reduce this value if your expected traffic does not include full IPv6 MTU * sized packets. */ #ifdef CONFIG_SLIPDEV_BUFSIZE_EXP #define CONFIG_SLIPDEV_BUFSIZE (1<