Lines Matching full:is
14 * better with the TCP/IP code. Program execution is event based by
17 * thread. The sequential API has a much higher overhead and is not very
21 * The raw TCP/IP interface is not only faster in terms of code execution
22 * time but is also less memory intensive. The drawback is that program
23 * development is somewhat harder and application programs written for
25 * is the preferred way of writing applications that should be small in
29 * programs. In fact, the sequential API is implemented as an application
33 * The former is a way of interfacing the lwIP network stack (including
38 * (input and output) as well as timer processing (TCP mainly) is done
45 * Program execution is driven by callbacks functions, which are then
51 * processing for any or all of these events. Each callback is an ordinary
52 * C function that is called from within the TCP/IP code. Every callback
53 * function is passed the current TCP or UDP connection state as an
56 * that is independent of the TCP/IP state.
57 * The raw API (sometimes called native API) is an event-driven API designed
59 * receive. This API is also used by the core stack for interaction between
60 * the various protocols. It is the only API available when running lwIP
68 * to use the lwIP stack. It is quite similar to the BSD socket API. The
69 * model of execution is based on the blocking open-read-write-close
70 * paradigm. Since the TCP/IP stack is event based by nature, the TCP/IP
79 * Header is in posix/sys/socket.h\n
80 * The socket API is a compatibility API for existing applications,
81 * currently it is built on top of the sequential API. It is meant to
132 * The most common source of lwIP problems is to have multiple execution contexts
136 * running on target system) or @ref lwip_os (there is an OS running
144 * The user has two possibilities to ensure there is only one
150 * problems in application code: IRQ is blocked for a long time, multiple
153 * If timers are involved, even more locking code is needed to lock out
156 * 2) Run lwIP in a mainloop. There is example code here: @ref lwip_nosys.
157 * lwIP is _ONLY_ called from mainloop callstacks here. The ethernet IRQ
158 * has to put received telegrams into a queue which is polled in the
159 * mainloop. Ensure lwIP is _NEVER_ called from an interrupt, e.g.
166 * the TCPIP thread, so there is nothing to consider here.
168 * TCPIP thread. It is a common error to call these from other threads
170 * in the correct way by sending a message to TCPIP thread, this is
172 * Again, ensure lwIP is _NEVER_ called from an interrupt, e.g.
176 * it is safe to call any @ref callbackstyle_api from there.
179 * functions can be called when lwIP core lock is aquired, see
192 * and need to be flushed before the memory is handed over to the
197 * so it is generally a bug not to flush the data cache before handing
216 * The following code is an example for zero-copy RX ethernet driver:
226 * context and put them into a queue which is processed from mainloop.\n
238 * Use this mode if you run an OS on your system. It is recommended to
290 This is the hardware link state; e.g. whether cable is plugged for wired
292 the current state. Having link up and link down events is optional but
296 This is the administrative (= software) state of the netif, when the
297 netif is fully configured this function must be called.
304 When the system is running, you have to periodically call
313 * approach was chosen: there is one main thread running the lwIP core
322 * other threads or an ISR is very limited! Only functions
339 * granularity level. That is, a UDP or TCP control block must
342 * If @ref SYS_LIGHTWEIGHT_PROT is set to 1 and
343 * @ref LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT is set to 1,
346 * be called from an ISR: otherwise, the HEAP is only
352 * It is strongly recommended to implement the LWIP_ASSERT_CORE_LOCKED()
354 * several places where a check for a correct thread context is
372 The first thing you want to optimize is the lwip_standard_checksum()
377 craft an assembly function for this. RFC1071 is a good
400 For a production release it is recommended to set LWIP_STATS to 0.