Mercurial > ecos
annotate packages/net/lwip_tcpip/current/include/netif/etharp.h @ 2934:d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
* io/eth/current/cdl/eth_drivers.cdl, include/eth_drv.h: Minor changes for
lwIP 1.3.x.
* io/eth/current/src/lwip/eth_drv.c: Rework for lwIP 1.3.x based on standalone
driver for RedBoot.
* io/eth/current/src/lwip/eth_conf.inl: Add static interface configuration.
| author | jld |
|---|---|
| date | Tue, 26 Jan 2010 11:27:47 +0000 |
| parents | 02b2b5ad1fef |
| children |
| rev | line source |
|---|---|
| 1624 | 1 /* |
| 2 * Copyright (c) 2001-2003 Swedish Institute of Computer Science. | |
| 3 * Copyright (c) 2003-2004 Leon Woestenberg <leon.woestenberg@axon.tv> | |
| 4 * Copyright (c) 2003-2004 Axon Digital Design B.V., The Netherlands. | |
| 5 * All rights reserved. | |
| 6 * | |
| 7 * Redistribution and use in source and binary forms, with or without modification, | |
| 8 * are permitted provided that the following conditions are met: | |
| 9 * | |
| 10 * 1. Redistributions of source code must retain the above copyright notice, | |
| 11 * this list of conditions and the following disclaimer. | |
| 12 * 2. Redistributions in binary form must reproduce the above copyright notice, | |
| 13 * this list of conditions and the following disclaimer in the documentation | |
| 14 * and/or other materials provided with the distribution. | |
| 15 * 3. The name of the author may not be used to endorse or promote products | |
| 16 * derived from this software without specific prior written permission. | |
| 17 * | |
| 18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED | |
| 19 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
| 20 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT | |
| 21 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
| 22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT | |
| 23 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
| 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
| 25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | |
| 26 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY | |
| 27 * OF SUCH DAMAGE. | |
| 28 * | |
| 29 * This file is part of the lwIP TCP/IP stack. | |
| 30 * | |
| 31 * Author: Adam Dunkels <adam@sics.se> | |
| 32 * | |
| 33 */ | |
| 34 | |
| 35 #ifndef __NETIF_ETHARP_H__ | |
| 36 #define __NETIF_ETHARP_H__ | |
| 37 | |
|
2934
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
38 #include "lwip/opt.h" |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
39 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
40 #if LWIP_ARP /* don't build if not configured for use in lwipopts.h */ |
| 1624 | 41 |
| 42 #include "lwip/pbuf.h" | |
| 43 #include "lwip/ip_addr.h" | |
| 44 #include "lwip/netif.h" | |
| 45 #include "lwip/ip.h" | |
| 46 | |
|
2934
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
47 #ifdef __cplusplus |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
48 extern "C" { |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
49 #endif |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
50 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
51 #ifndef ETH_PAD_SIZE |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
52 #define ETH_PAD_SIZE 0 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
53 #endif |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
54 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
55 #ifndef ETHARP_HWADDR_LEN |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
56 #define ETHARP_HWADDR_LEN 6 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
57 #endif |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
58 |
| 1624 | 59 #ifdef PACK_STRUCT_USE_INCLUDES |
| 60 # include "arch/bpstruct.h" | |
| 61 #endif | |
| 62 PACK_STRUCT_BEGIN | |
| 63 struct eth_addr { | |
|
2934
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
64 PACK_STRUCT_FIELD(u8_t addr[ETHARP_HWADDR_LEN]); |
| 1624 | 65 } PACK_STRUCT_STRUCT; |
| 66 PACK_STRUCT_END | |
|
2162
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
67 #ifdef PACK_STRUCT_USE_INCLUDES |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
68 # include "arch/epstruct.h" |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
69 #endif |
| 1624 | 70 |
|
2162
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
71 #ifdef PACK_STRUCT_USE_INCLUDES |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
72 # include "arch/bpstruct.h" |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
73 #endif |
| 1624 | 74 PACK_STRUCT_BEGIN |
| 75 struct eth_hdr { | |
|
2162
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
76 #if ETH_PAD_SIZE |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
77 PACK_STRUCT_FIELD(u8_t padding[ETH_PAD_SIZE]); |
| 1624 | 78 #endif |
| 79 PACK_STRUCT_FIELD(struct eth_addr dest); | |
| 80 PACK_STRUCT_FIELD(struct eth_addr src); | |
| 81 PACK_STRUCT_FIELD(u16_t type); | |
| 82 } PACK_STRUCT_STRUCT; | |
| 83 PACK_STRUCT_END | |
|
2162
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
84 #ifdef PACK_STRUCT_USE_INCLUDES |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
85 # include "arch/epstruct.h" |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
86 #endif |
| 1624 | 87 |
|
2934
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
88 #define SIZEOF_ETH_HDR (14 + ETH_PAD_SIZE) |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
89 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
90 #if ETHARP_SUPPORT_VLAN |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
91 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
92 #ifdef PACK_STRUCT_USE_INCLUDES |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
93 # include "arch/bpstruct.h" |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
94 #endif |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
95 PACK_STRUCT_BEGIN |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
96 struct eth_vlan_hdr { |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
97 PACK_STRUCT_FIELD(u16_t tpid); |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
98 PACK_STRUCT_FIELD(u16_t prio_vid); |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
99 } PACK_STRUCT_STRUCT; |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
100 PACK_STRUCT_END |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
101 #ifdef PACK_STRUCT_USE_INCLUDES |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
102 # include "arch/epstruct.h" |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
103 #endif |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
104 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
105 #define SIZEOF_VLAN_HDR 4 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
106 #define VLAN_ID(vlan_hdr) (htons((vlan_hdr)->prio_vid) & 0xFFF) |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
107 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
108 #endif /* ETHARP_SUPPORT_VLAN */ |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
109 |
|
2162
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
110 #ifdef PACK_STRUCT_USE_INCLUDES |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
111 # include "arch/bpstruct.h" |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
112 #endif |
| 1624 | 113 PACK_STRUCT_BEGIN |
| 114 /** the ARP message */ | |
| 115 struct etharp_hdr { | |
| 116 PACK_STRUCT_FIELD(u16_t hwtype); | |
| 117 PACK_STRUCT_FIELD(u16_t proto); | |
| 118 PACK_STRUCT_FIELD(u16_t _hwlen_protolen); | |
| 119 PACK_STRUCT_FIELD(u16_t opcode); | |
| 120 PACK_STRUCT_FIELD(struct eth_addr shwaddr); | |
| 121 PACK_STRUCT_FIELD(struct ip_addr2 sipaddr); | |
| 122 PACK_STRUCT_FIELD(struct eth_addr dhwaddr); | |
| 123 PACK_STRUCT_FIELD(struct ip_addr2 dipaddr); | |
| 124 } PACK_STRUCT_STRUCT; | |
| 125 PACK_STRUCT_END | |
|
2162
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
126 #ifdef PACK_STRUCT_USE_INCLUDES |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
127 # include "arch/epstruct.h" |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
128 #endif |
| 1624 | 129 |
|
2934
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
130 #define SIZEOF_ETHARP_HDR 28 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
131 #define SIZEOF_ETHARP_PACKET (SIZEOF_ETH_HDR + SIZEOF_ETHARP_HDR) |
| 1624 | 132 |
|
2162
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
133 /** 5 seconds period */ |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
134 #define ARP_TMR_INTERVAL 5000 |
| 1624 | 135 |
|
2934
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
136 #define ETHTYPE_ARP 0x0806 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
137 #define ETHTYPE_IP 0x0800 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
138 #define ETHTYPE_VLAN 0x8100 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
139 #define ETHTYPE_PPPOEDISC 0x8863 /* PPP Over Ethernet Discovery Stage */ |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
140 #define ETHTYPE_PPPOE 0x8864 /* PPP Over Ethernet Session Stage */ |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
141 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
142 /** ARP message types (opcodes) */ |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
143 #define ARP_REQUEST 1 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
144 #define ARP_REPLY 2 |
| 1624 | 145 |
|
2934
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
146 #if ARP_QUEUEING |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
147 /** struct for queueing outgoing packets for unknown address |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
148 * defined here to be accessed by memp.h |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
149 */ |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
150 struct etharp_q_entry { |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
151 struct etharp_q_entry *next; |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
152 struct pbuf *p; |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
153 }; |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
154 #endif /* ARP_QUEUEING */ |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
155 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
156 #define etharp_init() /* Compatibility define, not init needed. */ |
| 1624 | 157 void etharp_tmr(void); |
|
2934
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
158 s8_t etharp_find_addr(struct netif *netif, struct ip_addr *ipaddr, |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
159 struct eth_addr **eth_ret, struct ip_addr **ip_ret); |
|
2162
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
160 void etharp_ip_input(struct netif *netif, struct pbuf *p); |
|
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
161 void etharp_arp_input(struct netif *netif, struct eth_addr *ethaddr, |
| 1624 | 162 struct pbuf *p); |
|
2934
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
163 err_t etharp_output(struct netif *netif, struct pbuf *q, struct ip_addr *ipaddr); |
| 1624 | 164 err_t etharp_query(struct netif *netif, struct ip_addr *ipaddr, struct pbuf *q); |
|
2162
02b2b5ad1fef
* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
asl
parents:
1624
diff
changeset
|
165 err_t etharp_request(struct netif *netif, struct ip_addr *ipaddr); |
|
2934
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
166 /** For Ethernet network interfaces, we might want to send "gratuitous ARP"; |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
167 * this is an ARP packet sent by a node in order to spontaneously cause other |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
168 * nodes to update an entry in their ARP cache. |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
169 * From RFC 3220 "IP Mobility Support for IPv4" section 4.6. */ |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
170 #define etharp_gratuitous(netif) etharp_request((netif), &(netif)->ip_addr) |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
171 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
172 err_t ethernet_input(struct pbuf *p, struct netif *netif); |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
173 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
174 #if LWIP_AUTOIP |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
175 err_t etharp_raw(struct netif *netif, const struct eth_addr *ethsrc_addr, |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
176 const struct eth_addr *ethdst_addr, |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
177 const struct eth_addr *hwsrc_addr, const struct ip_addr *ipsrc_addr, |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
178 const struct eth_addr *hwdst_addr, const struct ip_addr *ipdst_addr, |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
179 const u16_t opcode); |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
180 #endif /* LWIP_AUTOIP */ |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
181 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
182 #define eth_addr_cmp(addr1, addr2) (memcmp((addr1)->addr, (addr2)->addr, ETHARP_HWADDR_LEN) == 0) |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
183 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
184 extern const struct eth_addr ethbroadcast, ethzero; |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
185 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
186 #ifdef __cplusplus |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
187 } |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
188 #endif |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
189 |
|
d6c0c0e0431c
* net/lwip_tcpip/current/*: Major update of lwIP TCP/IP stack to version 1.3.2.
jld
parents:
2162
diff
changeset
|
190 #endif /* LWIP_ARP */ |
| 1624 | 191 |
| 192 #endif /* __NETIF_ARP_H__ */ |
