1 /** 2 * @file 3 * MDNS responder 4 */ 5 6 /* 7 * Copyright (c) 2015 Verisure Innovation AB 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: Erik Ekman <erik@kryo.se> 35 * Author: Jasper Verschueren <jasper.verschueren@apart-audio.com> 36 * 37 */ 38 39 #ifndef LWIP_HDR_APPS_MDNS_OPTS_H 40 #define LWIP_HDR_APPS_MDNS_OPTS_H 41 42 #include "lwip/opt.h" 43 44 /** 45 * @defgroup mdns_opts Options 46 * @ingroup mdns 47 * @{ 48 */ 49 50 /** 51 * LWIP_MDNS_RESPONDER==1: Turn on multicast DNS module. UDP must be available for MDNS 52 * transport. IGMP is needed for IPv4 multicast. 53 */ 54 #ifndef LWIP_MDNS_RESPONDER 55 #define LWIP_MDNS_RESPONDER 0 56 #endif /* LWIP_MDNS_RESPONDER */ 57 58 /** The maximum number of services per netif */ 59 #ifndef MDNS_MAX_SERVICES 60 #define MDNS_MAX_SERVICES 1 61 #endif 62 63 /** The minimum delay between probes in ms. RFC 6762 require 250ms. 64 * In noisy WiFi environment, adding 30-50ms to this value help a lot for 65 * a successful Apple BCT tests. 66 */ 67 #ifndef MDNS_PROBE_DELAY_MS 68 #define MDNS_PROBE_DELAY_MS 250 69 #endif 70 71 /** The maximum number of received packets stored in chained list of known 72 * answers for pending truncated questions. This value define the size of 73 * the MDNS_PKTS mempool. 74 * Up to MDNS_MAX_STORED_PKTS pbuf can be stored in addition to TC questions 75 * that are pending. 76 */ 77 #ifndef MDNS_MAX_STORED_PKTS 78 #define MDNS_MAX_STORED_PKTS 4 79 #endif 80 81 /** Payload size allocated for each outgoing UDP packet. Will be allocated with 82 * PBUF_RAM and freed after packet was sent. 83 * According to RFC 6762, there is no reason to retain the 512 bytes restriction 84 * for link-local multicast packet. 85 * 512 bytes isn't enough when 2 services need to be probed. 86 */ 87 #ifndef MDNS_OUTPUT_PACKET_SIZE 88 #define MDNS_OUTPUT_PACKET_SIZE ((MDNS_MAX_SERVICES == 1) ? 512 : 1450) 89 #endif 90 91 /** MDNS_RESP_USENETIF_EXTCALLBACK==1: register an ext_callback on the netif 92 * to automatically restart probing/announcing on status or address change. 93 */ 94 #ifndef MDNS_RESP_USENETIF_EXTCALLBACK 95 #define MDNS_RESP_USENETIF_EXTCALLBACK LWIP_NETIF_EXT_STATUS_CALLBACK 96 #endif 97 98 /** 99 * LWIP_MDNS_SEARCH==1: Turn on search over multicast DNS module. 100 */ 101 #ifndef LWIP_MDNS_SEARCH 102 #define LWIP_MDNS_SEARCH 1 103 #endif 104 105 /** The maximum number of running requests */ 106 #ifndef MDNS_MAX_REQUESTS 107 #define MDNS_MAX_REQUESTS 2 108 #endif 109 110 /** 111 * MDNS_DEBUG: Enable debugging for multicast DNS. 112 */ 113 #ifndef MDNS_DEBUG 114 #define MDNS_DEBUG LWIP_DBG_OFF 115 #endif 116 117 /** 118 * @} 119 */ 120 121 #endif /* LWIP_HDR_APPS_MDNS_OPTS_H */ 122