1/** 2 * @file 3 * 6LowPAN options list 4 */ 5 6/* 7 * Copyright (c) 2015 Inico Technologies Ltd. 8 * All rights reserved. 9 * 10 * Redistribution and use in source and binary forms, with or without modification, 11 * are permitted provided that the following conditions are met: 12 * 13 * 1. Redistributions of source code must retain the above copyright notice, 14 * this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright notice, 16 * this list of conditions and the following disclaimer in the documentation 17 * and/or other materials provided with the distribution. 18 * 3. The name of the author may not be used to endorse or promote products 19 * derived from this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 22 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 23 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 24 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 26 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 29 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 30 * OF SUCH DAMAGE. 31 * 32 * This file is part of the lwIP TCP/IP stack. 33 * 34 * Author: Ivan Delamer <delamer@inicotech.com> 35 * 36 * 37 * Please coordinate changes and requests with Ivan Delamer 38 * <delamer@inicotech.com> 39 */ 40 41#ifndef LWIP_HDR_LOWPAN6_OPTS_H 42#define LWIP_HDR_LOWPAN6_OPTS_H 43 44#include "lwip/opt.h" 45 46/** LWIP_6LOWPAN_NUM_CONTEXTS: define the number of compression 47 * contexts per netif type 48 */ 49#ifndef LWIP_6LOWPAN_NUM_CONTEXTS 50#define LWIP_6LOWPAN_NUM_CONTEXTS 10 51#endif 52 53/** LWIP_6LOWPAN_INFER_SHORT_ADDRESS: set this to 0 to disable creating 54 * short addresses for matching addresses (debug only) 55 */ 56#ifndef LWIP_6LOWPAN_INFER_SHORT_ADDRESS 57#define LWIP_6LOWPAN_INFER_SHORT_ADDRESS 1 58#endif 59 60/** LWIP_6LOWPAN_IPHC: set this to 0 to disable IP header compression as per 61 * RFC 6282 (which is mandatory for BLE) 62 */ 63#ifndef LWIP_6LOWPAN_IPHC 64#define LWIP_6LOWPAN_IPHC 1 65#endif 66 67/** Set this to 1 if your IEEE 802.15.4 interface can calculate and check the 68 * CRC in hardware. This means TX packets get 2 zero bytes added on transmission 69 * which are to be filled with the CRC. 70 */ 71#ifndef LWIP_6LOWPAN_802154_HW_CRC 72#define LWIP_6LOWPAN_802154_HW_CRC 0 73#endif 74 75/** If LWIP_6LOWPAN_802154_HW_CRC==0, this can override the default slow 76 * implementation of the CRC used for 6LoWPAN over IEEE 802.15.4 (which uses 77 * a shift register). 78 */ 79#ifndef LWIP_6LOWPAN_CALC_CRC 80#define LWIP_6LOWPAN_CALC_CRC(buf, len) lowpan6_calc_crc(buf, len) 81#endif 82 83/** Debug level for 6LoWPAN in general */ 84#ifndef LWIP_LOWPAN6_DEBUG 85#define LWIP_LOWPAN6_DEBUG LWIP_DBG_OFF 86#endif 87 88/** Debug level for 6LoWPAN over IEEE 802.15.4 */ 89#ifndef LWIP_LOWPAN6_802154_DEBUG 90#define LWIP_LOWPAN6_802154_DEBUG LWIP_DBG_OFF 91#endif 92 93/** LWIP_LOWPAN6_IP_COMPRESSED_DEBUG: enable compressed IP frame 94 * output debugging 95 */ 96#ifndef LWIP_LOWPAN6_IP_COMPRESSED_DEBUG 97#define LWIP_LOWPAN6_IP_COMPRESSED_DEBUG LWIP_DBG_OFF 98#endif 99 100/** LWIP_LOWPAN6_DECOMPRESSION_DEBUG: enable decompression debug output 101 */ 102#ifndef LWIP_LOWPAN6_DECOMPRESSION_DEBUG 103#define LWIP_LOWPAN6_DECOMPRESSION_DEBUG LWIP_DBG_OFF 104#endif 105 106/** LWIP_RFC7668_IP_UNCOMPRESSED_DEBUG: enable decompressed IP frame 107 * output debugging */ 108#ifndef LWIP_RFC7668_IP_UNCOMPRESSED_DEBUG 109#define LWIP_RFC7668_IP_UNCOMPRESSED_DEBUG LWIP_DBG_OFF 110#endif 111 112/** LWIP_RFC7668_LINUX_WORKAROUND_PUBLIC_ADDRESS: 113 * Currently, the linux kernel driver for 6lowpan sets/clears a bit in 114 * the address, depending on the BD address (either public or not). 115 * Might not be RFC7668 conform, so you may select to do that (=1) or 116 * not (=0) */ 117#ifndef LWIP_RFC7668_LINUX_WORKAROUND_PUBLIC_ADDRESS 118#define LWIP_RFC7668_LINUX_WORKAROUND_PUBLIC_ADDRESS 1 119#endif 120 121 122#endif /* LWIP_HDR_LOWPAN6_OPTS_H */ 123