From a6163888f3c56123b1db313743c6147ba498732c Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Fri, 8 Aug 2014 14:42:07 +0300 Subject: Add third_party libs --- third_party/uip-1.0/doc/html/a00206.html | 564 +++++++++++++++++++++++++++++++ 1 file changed, 564 insertions(+) create mode 100644 third_party/uip-1.0/doc/html/a00206.html (limited to 'third_party/uip-1.0/doc/html/a00206.html') diff --git a/third_party/uip-1.0/doc/html/a00206.html b/third_party/uip-1.0/doc/html/a00206.html new file mode 100644 index 0000000..346c58a --- /dev/null +++ b/third_party/uip-1.0/doc/html/a00206.html @@ -0,0 +1,564 @@ + + +uIP 1.0: uip/uipopt.h Source File + + + + +
+
+
+
+

uip/uipopt.h

Go to the documentation of this file.
00001 /**
+00002  * \defgroup uipopt Configuration options for uIP
+00003  * @{
+00004  *
+00005  * uIP is configured using the per-project configuration file
+00006  * uipopt.h. This file contains all compile-time options for uIP and
+00007  * should be tweaked to match each specific project. The uIP
+00008  * distribution contains a documented example "uipopt.h" that can be
+00009  * copied and modified for each project.
+00010  *
+00011  * \note Most of the configuration options in the uipopt.h should not
+00012  * be changed, but rather the per-project uip-conf.h file.
+00013  */
+00014 
+00015 /**
+00016  * \file
+00017  * Configuration options for uIP.
+00018  * \author Adam Dunkels <adam@dunkels.com>
+00019  *
+00020  * This file is used for tweaking various configuration options for
+00021  * uIP. You should make a copy of this file into one of your project's
+00022  * directories instead of editing this example "uipopt.h" file that
+00023  * comes with the uIP distribution.
+00024  */
+00025 
+00026 /*
+00027  * Copyright (c) 2001-2003, Adam Dunkels.
+00028  * All rights reserved.
+00029  *
+00030  * Redistribution and use in source and binary forms, with or without
+00031  * modification, are permitted provided that the following conditions
+00032  * are met:
+00033  * 1. Redistributions of source code must retain the above copyright
+00034  *    notice, this list of conditions and the following disclaimer.
+00035  * 2. Redistributions in binary form must reproduce the above copyright
+00036  *    notice, this list of conditions and the following disclaimer in the
+00037  *    documentation and/or other materials provided with the distribution.
+00038  * 3. The name of the author may not be used to endorse or promote
+00039  *    products derived from this software without specific prior
+00040  *    written permission.
+00041  *
+00042  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+00043  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+00044  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+00045  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+00046  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+00047  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+00048  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+00049  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+00050  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+00051  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+00052  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+00053  *
+00054  * This file is part of the uIP TCP/IP stack.
+00055  *
+00056  * $Id: uipopt.h,v 1.4 2006/06/12 08:00:31 adam Exp $
+00057  *
+00058  */
+00059 
+00060 #ifndef __UIPOPT_H__
+00061 #define __UIPOPT_H__
+00062 
+00063 #ifndef UIP_LITTLE_ENDIAN
+00064 #define UIP_LITTLE_ENDIAN  3412
+00065 #endif /* UIP_LITTLE_ENDIAN */
+00066 #ifndef UIP_BIG_ENDIAN
+00067 #define UIP_BIG_ENDIAN     1234
+00068 #endif /* UIP_BIG_ENDIAN */
+00069 
+00070 #include "uip-conf.h"
+00071 
+00072 /*------------------------------------------------------------------------------*/
+00073 
+00074 /**
+00075  * \name Static configuration options
+00076  * @{
+00077  *
+00078  * These configuration options can be used for setting the IP address
+00079  * settings statically, but only if UIP_FIXEDADDR is set to 1. The
+00080  * configuration options for a specific node includes IP address,
+00081  * netmask and default router as well as the Ethernet address. The
+00082  * netmask, default router and Ethernet address are appliciable only
+00083  * if uIP should be run over Ethernet.
+00084  *
+00085  * All of these should be changed to suit your project.
+00086 */
+00087 
+00088 /**
+00089  * Determines if uIP should use a fixed IP address or not.
+00090  *
+00091  * If uIP should use a fixed IP address, the settings are set in the
+00092  * uipopt.h file. If not, the macros uip_sethostaddr(),
+00093  * uip_setdraddr() and uip_setnetmask() should be used instead.
+00094  *
+00095  * \hideinitializer
+00096  */
+00097 #define UIP_FIXEDADDR    0
+00098 
+00099 /**
+00100  * Ping IP address asignment.
+00101  *
+00102  * uIP uses a "ping" packets for setting its own IP address if this
+00103  * option is set. If so, uIP will start with an empty IP address and
+00104  * the destination IP address of the first incoming "ping" (ICMP echo)
+00105  * packet will be used for setting the hosts IP address.
+00106  *
+00107  * \note This works only if UIP_FIXEDADDR is 0.
+00108  *
+00109  * \hideinitializer
+00110  */
+00111 #ifdef UIP_CONF_PINGADDRCONF
+00112 #define UIP_PINGADDRCONF UIP_CONF_PINGADDRCONF
+00113 #else /* UIP_CONF_PINGADDRCONF */
+00114 #define UIP_PINGADDRCONF 0
+00115 #endif /* UIP_CONF_PINGADDRCONF */
+00116 
+00117 
+00118 /**
+00119  * Specifies if the uIP ARP module should be compiled with a fixed
+00120  * Ethernet MAC address or not.
+00121  *
+00122  * If this configuration option is 0, the macro uip_setethaddr() can
+00123  * be used to specify the Ethernet address at run-time.
+00124  *
+00125  * \hideinitializer
+00126  */
+00127 #define UIP_FIXEDETHADDR 0
+00128 
+00129 /** @} */
+00130 /*------------------------------------------------------------------------------*/
+00131 /**
+00132  * \name IP configuration options
+00133  * @{
+00134  *
+00135  */
+00136 /**
+00137  * The IP TTL (time to live) of IP packets sent by uIP.
+00138  *
+00139  * This should normally not be changed.
+00140  */
+00141 #define UIP_TTL         64
+00142 
+00143 /**
+00144  * Turn on support for IP packet reassembly.
+00145  *
+00146  * uIP supports reassembly of fragmented IP packets. This features
+00147  * requires an additonal amount of RAM to hold the reassembly buffer
+00148  * and the reassembly code size is approximately 700 bytes.  The
+00149  * reassembly buffer is of the same size as the uip_buf buffer
+00150  * (configured by UIP_BUFSIZE).
+00151  *
+00152  * \note IP packet reassembly is not heavily tested.
+00153  *
+00154  * \hideinitializer
+00155  */
+00156 #define UIP_REASSEMBLY 0
+00157 
+00158 /**
+00159  * The maximum time an IP fragment should wait in the reassembly
+00160  * buffer before it is dropped.
+00161  *
+00162  */
+00163 #define UIP_REASS_MAXAGE 40
+00164 
+00165 /** @} */
+00166 
+00167 /*------------------------------------------------------------------------------*/
+00168 /**
+00169  * \name UDP configuration options
+00170  * @{
+00171  */
+00172 
+00173 /**
+00174  * Toggles wether UDP support should be compiled in or not.
+00175  *
+00176  * \hideinitializer
+00177  */
+00178 #ifdef UIP_CONF_UDP
+00179 #define UIP_UDP UIP_CONF_UDP
+00180 #else /* UIP_CONF_UDP */
+00181 #define UIP_UDP           0
+00182 #endif /* UIP_CONF_UDP */
+00183 
+00184 /**
+00185  * Toggles if UDP checksums should be used or not.
+00186  *
+00187  * \note Support for UDP checksums is currently not included in uIP,
+00188  * so this option has no function.
+00189  *
+00190  * \hideinitializer
+00191  */
+00192 #ifdef UIP_CONF_UDP_CHECKSUMS
+00193 #define UIP_UDP_CHECKSUMS UIP_CONF_UDP_CHECKSUMS
+00194 #else
+00195 #define UIP_UDP_CHECKSUMS 0
+00196 #endif
+00197 
+00198 /**
+00199  * The maximum amount of concurrent UDP connections.
+00200  *
+00201  * \hideinitializer
+00202  */
+00203 #ifdef UIP_CONF_UDP_CONNS
+00204 #define UIP_UDP_CONNS UIP_CONF_UDP_CONNS
+00205 #else /* UIP_CONF_UDP_CONNS */
+00206 #define UIP_UDP_CONNS    10
+00207 #endif /* UIP_CONF_UDP_CONNS */
+00208 
+00209 /**
+00210  * The name of the function that should be called when UDP datagrams arrive.
+00211  *
+00212  * \hideinitializer
+00213  */
+00214 
+00215 
+00216 /** @} */
+00217 /*------------------------------------------------------------------------------*/
+00218 /**
+00219  * \name TCP configuration options
+00220  * @{
+00221  */
+00222 
+00223 /**
+00224  * Determines if support for opening connections from uIP should be
+00225  * compiled in.
+00226  *
+00227  * If the applications that are running on top of uIP for this project
+00228  * do not need to open outgoing TCP connections, this configration
+00229  * option can be turned off to reduce the code size of uIP.
+00230  *
+00231  * \hideinitializer
+00232  */
+00233 #define UIP_ACTIVE_OPEN 1
+00234 
+00235 /**
+00236  * The maximum number of simultaneously open TCP connections.
+00237  *
+00238  * Since the TCP connections are statically allocated, turning this
+00239  * configuration knob down results in less RAM used. Each TCP
+00240  * connection requires approximatly 30 bytes of memory.
+00241  *
+00242  * \hideinitializer
+00243  */
+00244 #ifndef UIP_CONF_MAX_CONNECTIONS
+00245 #define UIP_CONNS       10
+00246 #else /* UIP_CONF_MAX_CONNECTIONS */
+00247 #define UIP_CONNS UIP_CONF_MAX_CONNECTIONS
+00248 #endif /* UIP_CONF_MAX_CONNECTIONS */
+00249 
+00250 
+00251 /**
+00252  * The maximum number of simultaneously listening TCP ports.
+00253  *
+00254  * Each listening TCP port requires 2 bytes of memory.
+00255  *
+00256  * \hideinitializer
+00257  */
+00258 #ifndef UIP_CONF_MAX_LISTENPORTS
+00259 #define UIP_LISTENPORTS 20
+00260 #else /* UIP_CONF_MAX_LISTENPORTS */
+00261 #define UIP_LISTENPORTS UIP_CONF_MAX_LISTENPORTS
+00262 #endif /* UIP_CONF_MAX_LISTENPORTS */
+00263 
+00264 /**
+00265  * Determines if support for TCP urgent data notification should be
+00266  * compiled in.
+00267  *
+00268  * Urgent data (out-of-band data) is a rarely used TCP feature that
+00269  * very seldom would be required.
+00270  *
+00271  * \hideinitializer
+00272  */
+00273 #define UIP_URGDATA      0
+00274 
+00275 /**
+00276  * The initial retransmission timeout counted in timer pulses.
+00277  *
+00278  * This should not be changed.
+00279  */
+00280 #define UIP_RTO         3
+00281 
+00282 /**
+00283  * The maximum number of times a segment should be retransmitted
+00284  * before the connection should be aborted.
+00285  *
+00286  * This should not be changed.
+00287  */
+00288 #define UIP_MAXRTX      8
+00289 
+00290 /**
+00291  * The maximum number of times a SYN segment should be retransmitted
+00292  * before a connection request should be deemed to have been
+00293  * unsuccessful.
+00294  *
+00295  * This should not need to be changed.
+00296  */
+00297 #define UIP_MAXSYNRTX      5
+00298 
+00299 /**
+00300  * The TCP maximum segment size.
+00301  *
+00302  * This is should not be to set to more than
+00303  * UIP_BUFSIZE - UIP_LLH_LEN - UIP_TCPIP_HLEN.
+00304  */
+00305 #define UIP_TCP_MSS     (UIP_BUFSIZE - UIP_LLH_LEN - UIP_TCPIP_HLEN)
+00306 
+00307 /**
+00308  * The size of the advertised receiver's window.
+00309  *
+00310  * Should be set low (i.e., to the size of the uip_buf buffer) is the
+00311  * application is slow to process incoming data, or high (32768 bytes)
+00312  * if the application processes data quickly.
+00313  *
+00314  * \hideinitializer
+00315  */
+00316 #ifndef UIP_CONF_RECEIVE_WINDOW
+00317 #define UIP_RECEIVE_WINDOW UIP_TCP_MSS
+00318 #else
+00319 #define UIP_RECEIVE_WINDOW UIP_CONF_RECEIVE_WINDOW
+00320 #endif
+00321 
+00322 /**
+00323  * How long a connection should stay in the TIME_WAIT state.
+00324  *
+00325  * This configiration option has no real implication, and it should be
+00326  * left untouched.
+00327  */
+00328 #define UIP_TIME_WAIT_TIMEOUT 120
+00329 
+00330 
+00331 /** @} */
+00332 /*------------------------------------------------------------------------------*/
+00333 /**
+00334  * \name ARP configuration options
+00335  * @{
+00336  */
+00337 
+00338 /**
+00339  * The size of the ARP table.
+00340  *
+00341  * This option should be set to a larger value if this uIP node will
+00342  * have many connections from the local network.
+00343  *
+00344  * \hideinitializer
+00345  */
+00346 #ifdef UIP_CONF_ARPTAB_SIZE
+00347 #define UIP_ARPTAB_SIZE UIP_CONF_ARPTAB_SIZE
+00348 #else
+00349 #define UIP_ARPTAB_SIZE 8
+00350 #endif
+00351 
+00352 /**
+00353  * The maxium age of ARP table entries measured in 10ths of seconds.
+00354  *
+00355  * An UIP_ARP_MAXAGE of 120 corresponds to 20 minutes (BSD
+00356  * default).
+00357  */
+00358 #define UIP_ARP_MAXAGE 120
+00359 
+00360 /** @} */
+00361 
+00362 /*------------------------------------------------------------------------------*/
+00363 
+00364 /**
+00365  * \name General configuration options
+00366  * @{
+00367  */
+00368 
+00369 /**
+00370  * The size of the uIP packet buffer.
+00371  *
+00372  * The uIP packet buffer should not be smaller than 60 bytes, and does
+00373  * not need to be larger than 1500 bytes. Lower size results in lower
+00374  * TCP throughput, larger size results in higher TCP throughput.
+00375  *
+00376  * \hideinitializer
+00377  */
+00378 #ifndef UIP_CONF_BUFFER_SIZE
+00379 #define UIP_BUFSIZE     400
+00380 #else /* UIP_CONF_BUFFER_SIZE */
+00381 #define UIP_BUFSIZE UIP_CONF_BUFFER_SIZE
+00382 #endif /* UIP_CONF_BUFFER_SIZE */
+00383 
+00384 
+00385 /**
+00386  * Determines if statistics support should be compiled in.
+00387  *
+00388  * The statistics is useful for debugging and to show the user.
+00389  *
+00390  * \hideinitializer
+00391  */
+00392 #ifndef UIP_CONF_STATISTICS
+00393 #define UIP_STATISTICS  0
+00394 #else /* UIP_CONF_STATISTICS */
+00395 #define UIP_STATISTICS UIP_CONF_STATISTICS
+00396 #endif /* UIP_CONF_STATISTICS */
+00397 
+00398 /**
+00399  * Determines if logging of certain events should be compiled in.
+00400  *
+00401  * This is useful mostly for debugging. The function uip_log()
+00402  * must be implemented to suit the architecture of the project, if
+00403  * logging is turned on.
+00404  *
+00405  * \hideinitializer
+00406  */
+00407 #ifndef UIP_CONF_LOGGING
+00408 #define UIP_LOGGING     0
+00409 #else /* UIP_CONF_LOGGING */
+00410 #define UIP_LOGGING     UIP_CONF_LOGGING
+00411 #endif /* UIP_CONF_LOGGING */
+00412 
+00413 /**
+00414  * Broadcast support.
+00415  *
+00416  * This flag configures IP broadcast support. This is useful only
+00417  * together with UDP.
+00418  *
+00419  * \hideinitializer
+00420  *
+00421  */
+00422 #ifndef UIP_CONF_BROADCAST
+00423 #define UIP_BROADCAST 0
+00424 #else /* UIP_CONF_BROADCAST */
+00425 #define UIP_BROADCAST UIP_CONF_BROADCAST
+00426 #endif /* UIP_CONF_BROADCAST */
+00427 
+00428 /**
+00429  * Print out a uIP log message.
+00430  *
+00431  * This function must be implemented by the module that uses uIP, and
+00432  * is called by uIP whenever a log message is generated.
+00433  */
+00434 void uip_log(char *msg);
+00435 
+00436 /**
+00437  * The link level header length.
+00438  *
+00439  * This is the offset into the uip_buf where the IP header can be
+00440  * found. For Ethernet, this should be set to 14. For SLIP, this
+00441  * should be set to 0.
+00442  *
+00443  * \hideinitializer
+00444  */
+00445 #ifdef UIP_CONF_LLH_LEN
+00446 #define UIP_LLH_LEN UIP_CONF_LLH_LEN
+00447 #else /* UIP_CONF_LLH_LEN */
+00448 #define UIP_LLH_LEN     14
+00449 #endif /* UIP_CONF_LLH_LEN */
+00450 
+00451 /** @} */
+00452 /*------------------------------------------------------------------------------*/
+00453 /**
+00454  * \name CPU architecture configuration
+00455  * @{
+00456  *
+00457  * The CPU architecture configuration is where the endianess of the
+00458  * CPU on which uIP is to be run is specified. Most CPUs today are
+00459  * little endian, and the most notable exception are the Motorolas
+00460  * which are big endian. The BYTE_ORDER macro should be changed to
+00461  * reflect the CPU architecture on which uIP is to be run.
+00462  */
+00463 
+00464 /**
+00465  * The byte order of the CPU architecture on which uIP is to be run.
+00466  *
+00467  * This option can be either BIG_ENDIAN (Motorola byte order) or
+00468  * LITTLE_ENDIAN (Intel byte order).
+00469  *
+00470  * \hideinitializer
+00471  */
+00472 #ifdef UIP_CONF_BYTE_ORDER
+00473 #define UIP_BYTE_ORDER     UIP_CONF_BYTE_ORDER
+00474 #else /* UIP_CONF_BYTE_ORDER */
+00475 #define UIP_BYTE_ORDER     UIP_LITTLE_ENDIAN
+00476 #endif /* UIP_CONF_BYTE_ORDER */
+00477 
+00478 /** @} */
+00479 /*------------------------------------------------------------------------------*/
+00480 
+00481 /**
+00482  * \name Appication specific configurations
+00483  * @{
+00484  *
+00485  * An uIP application is implemented using a single application
+00486  * function that is called by uIP whenever a TCP/IP event occurs. The
+00487  * name of this function must be registered with uIP at compile time
+00488  * using the UIP_APPCALL definition.
+00489  *
+00490  * uIP applications can store the application state within the
+00491  * uip_conn structure by specifying the type of the application
+00492  * structure by typedef:ing the type uip_tcp_appstate_t and uip_udp_appstate_t.
+00493  *
+00494  * The file containing the definitions must be included in the
+00495  * uipopt.h file.
+00496  *
+00497  * The following example illustrates how this can look.
+00498  \code
+00499 
+00500 void httpd_appcall(void);
+00501 #define UIP_APPCALL     httpd_appcall
+00502 
+00503 struct httpd_state {
+00504   u8_t state;
+00505   u16_t count;
+00506   char *dataptr;
+00507   char *script;
+00508 };
+00509 typedef struct httpd_state uip_tcp_appstate_t
+00510  \endcode
+00511  */
+00512 
+00513 /**
+00514  * \var #define UIP_APPCALL
+00515  *
+00516  * The name of the application function that uIP should call in
+00517  * response to TCP/IP events.
+00518  *
+00519  */
+00520 
+00521 /**
+00522  * \var typedef uip_tcp_appstate_t
+00523  *
+00524  * The type of the application state that is to be stored in the
+00525  * uip_conn structure. This usually is typedef:ed to a struct holding
+00526  * application state information.
+00527  */
+00528 
+00529 /**
+00530  * \var typedef uip_udp_appstate_t
+00531  *
+00532  * The type of the application state that is to be stored in the
+00533  * uip_conn structure. This usually is typedef:ed to a struct holding
+00534  * application state information.
+00535  */
+00536 /** @} */
+00537 /** @} */
+00538 
+00539 #endif /* __UIPOPT_H__ */
+

Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by  + +doxygen 1.4.6
+ + -- cgit v1.3.1