root/webserver/example/freeRTOSexample/EnergyMeters/Common/ethernet/FreeRTOS-uIP/uip-fw.h

Revision 14, 5.1 kB (checked in by phil, 15 years ago)

added unmodified FreeRTOS package V5.4.1 with only web srv demo source for LPC2368 for CrossWorks?

Line 
1 /**
2  * \addtogroup uipfw
3  * @{
4  */
5
6 /**
7  * \file
8  * uIP packet forwarding header file.
9  * \author Adam Dunkels <adam@sics.se>
10  */
11
12 /*
13  * Copyright (c) 2004, Swedish Institute of Computer Science.
14  * All rights reserved.
15  *
16  * Redistribution and use in source and binary forms, with or without
17  * modification, are permitted provided that the following conditions
18  * are met:
19  * 1. Redistributions of source code must retain the above copyright
20  *    notice, this list of conditions and the following disclaimer.
21  * 2. Redistributions in binary form must reproduce the above copyright
22  *    notice, this list of conditions and the following disclaimer in the
23  *    documentation and/or other materials provided with the distribution.
24  * 3. Neither the name of the Institute nor the names of its contributors
25  *    may be used to endorse or promote products derived from this software
26  *    without specific prior written permission.
27  *
28  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
29  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
32  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38  * SUCH DAMAGE.
39  *
40  * This file is part of the uIP TCP/IP stack
41  *
42  * Author: Adam Dunkels <adam@sics.se>
43  *
44  * $Id: uip-fw.h,v 1.2 2006/06/12 08:00:30 adam Exp $
45  */
46 #ifndef __UIP_FW_H__
47 #define __UIP_FW_H__
48
49 #include "uip.h"
50
51 /**
52  * Representation of a uIP network interface.
53  */
54 struct uip_fw_netif {
55   struct uip_fw_netif *next;  /**< Pointer to the next interface when
56                                  linked in a list. */
57   u16_t ipaddr[2];            /**< The IP address of this interface. */
58   u16_t netmask[2];           /**< The netmask of the interface. */
59   u8_t (* output)(void);
60                               /**< A pointer to the function that
61                                  sends a packet. */
62 };
63
64 /**
65  * Intantiating macro for a uIP network interface.
66  *
67  * Example:
68  \code
69  struct uip_fw_netif slipnetif =
70    {UIP_FW_NETIF(192,168,76,1, 255,255,255,0, slip_output)};
71  \endcode
72  * \param ip1,ip2,ip3,ip4 The IP address of the network interface.
73  *
74  * \param nm1,nm2,nm3,nm4 The netmask of the network interface.
75  *
76  * \param outputfunc A pointer to the output function of the network interface.
77  *
78  * \hideinitializer
79  */
80 #define UIP_FW_NETIF(ip1,ip2,ip3,ip4, nm1,nm2,nm3,nm4, outputfunc) \
81         NULL, \
82         {HTONS((ip1 << 8) | ip2), HTONS((ip3 << 8) | ip4)}, \
83         {HTONS((nm1 << 8) | nm2), HTONS((nm3 << 8) | nm4)}, \
84         outputfunc
85
86 /**
87  * Set the IP address of a network interface.
88  *
89  * \param netif A pointer to the uip_fw_netif structure for the network interface.
90  *
91  * \param addr A pointer to an IP address.
92  *
93  * \hideinitializer
94  */
95 #define uip_fw_setipaddr(netif, addr) \
96         do { (netif)->ipaddr[0] = ((u16_t *)(addr))[0]; \
97              (netif)->ipaddr[1] = ((u16_t *)(addr))[1]; } while(0)
98 /**
99  * Set the netmask of a network interface.
100  *
101  * \param netif A pointer to the uip_fw_netif structure for the network interface.
102  *
103  * \param addr A pointer to an IP address representing the netmask.
104  *
105  * \hideinitializer
106  */
107 #define uip_fw_setnetmask(netif, addr) \
108         do { (netif)->netmask[0] = ((u16_t *)(addr))[0]; \
109              (netif)->netmask[1] = ((u16_t *)(addr))[1]; } while(0)
110
111 void uip_fw_init(void);
112 u8_t uip_fw_forward(void);
113 u8_t uip_fw_output(void);
114 void uip_fw_register(struct uip_fw_netif *netif);
115 void uip_fw_default(struct uip_fw_netif *netif);
116 void uip_fw_periodic(void);
117
118
119 /**
120  * A non-error message that indicates that a packet should be
121  * processed locally.
122  *
123  * \hideinitializer
124  */
125 #define UIP_FW_LOCAL     0
126
127 /**
128  * A non-error message that indicates that something went OK.
129  *
130  * \hideinitializer
131  */
132 #define UIP_FW_OK        0
133
134 /**
135  * A non-error message that indicates that a packet was forwarded.
136  *
137  * \hideinitializer
138  */
139 #define UIP_FW_FORWARDED 1
140
141 /**
142  * A non-error message that indicates that a zero-length packet
143  * transmission was attempted, and that no packet was sent.
144  *
145  * \hideinitializer
146  */
147 #define UIP_FW_ZEROLEN   2
148
149 /**
150  * An error message that indicates that a packet that was too large
151  * for the outbound network interface was detected.
152  *
153  * \hideinitializer
154  */
155 #define UIP_FW_TOOLARGE  3
156
157 /**
158  * An error message that indicates that no suitable interface could be
159  * found for an outbound packet.
160  *
161  * \hideinitializer
162  */
163 #define UIP_FW_NOROUTE   4
164
165 /**
166  * An error message that indicates that a packet that should be
167  * forwarded or output was dropped.
168  *
169  * \hideinitializer
170  */
171 #define UIP_FW_DROPPED   5
172
173
174 #endif /* __UIP_FW_H__ */
175
176 /** @} */
Note: See TracBrowser for help on using the browser.