Mistake on this page?
Report an issue in GitHub or email us
prot/autoip.h
Go to the documentation of this file.
1 /**
2  * @file
3  * AutoIP protocol definitions
4  */
5 
6 /*
7  *
8  * Copyright (c) 2007 Dominik Spies <kontakt@dspies.de>
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without modification,
12  * are permitted provided that the following conditions are met:
13  *
14  * 1. Redistributions of source code must retain the above copyright notice,
15  * this list of conditions and the following disclaimer.
16  * 2. Redistributions in binary form must reproduce the above copyright notice,
17  * this list of conditions and the following disclaimer in the documentation
18  * and/or other materials provided with the distribution.
19  * 3. The name of the author may not be used to endorse or promote products
20  * derived from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
23  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
25  * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
27  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
30  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
31  * OF SUCH DAMAGE.
32  *
33  * Author: Dominik Spies <kontakt@dspies.de>
34  *
35  * This is a AutoIP implementation for the lwIP TCP/IP stack. It aims to conform
36  * with RFC 3927.
37  *
38  */
39 
40 #ifndef LWIP_HDR_PROT_AUTOIP_H
41 #define LWIP_HDR_PROT_AUTOIP_H
42 
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46 
47 /* 169.254.0.0 */
48 #define AUTOIP_NET 0xA9FE0000
49 /* 169.254.1.0 */
50 #define AUTOIP_RANGE_START (AUTOIP_NET | 0x0100)
51 /* 169.254.254.255 */
52 #define AUTOIP_RANGE_END (AUTOIP_NET | 0xFEFF)
53 
54 /* RFC 3927 Constants */
55 #define PROBE_WAIT 1 /* second (initial random delay) */
56 #define PROBE_MIN 1 /* second (minimum delay till repeated probe) */
57 #define PROBE_MAX 2 /* seconds (maximum delay till repeated probe) */
58 #define PROBE_NUM 3 /* (number of probe packets) */
59 #define ANNOUNCE_NUM 2 /* (number of announcement packets) */
60 #define ANNOUNCE_INTERVAL 2 /* seconds (time between announcement packets) */
61 #define ANNOUNCE_WAIT 2 /* seconds (delay before announcing) */
62 #define MAX_CONFLICTS 10 /* (max conflicts before rate limiting) */
63 #define RATE_LIMIT_INTERVAL 60 /* seconds (delay between successive attempts) */
64 #define DEFEND_INTERVAL 10 /* seconds (min. wait between defensive ARPs) */
65 
66 /* AutoIP client states */
67 typedef enum {
68  AUTOIP_STATE_OFF = 0,
69  AUTOIP_STATE_PROBING = 1,
70  AUTOIP_STATE_ANNOUNCING = 2,
71  AUTOIP_STATE_BOUND = 3
72 } autoip_state_enum_t;
73 
74 #ifdef __cplusplus
75 }
76 #endif
77 
78 #endif /* LWIP_HDR_PROT_AUTOIP_H */
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.