Lines Matching +full:host +full:- +full:only
7 * low-level "core" / "callback" or "raw" API.
8 * higher-level "sequential" API.
9 * BSD-style socket API.
13 model of execution is based on the blocking open-read-write-close
27 lwIP started targeting single-threaded environments. When adding multi-
28 threading support, instead of making the core thread-safe, another
30 (also known as the "tcpip_thread"). The raw API may only be used from
31 this thread! Application threads using the sequential- or socket API
35 other threads or an ISR is very limited! Only functions
36 from these API header files are thread-safe:
37 - api.h
38 - netbuf.h
39 - netdb.h
40 - netifapi.h
41 - sockets.h
42 - sys.h
44 Additionaly, memory (de-)allocation functions may be
49 Only since 1.3.0, if SYS_LIGHTWEIGHT_PROT is set to 1
52 an ISR (since only then, mem_free - for PBUF_RAM - may
53 be called from an ISR: otherwise, the HEAP is only
67 The raw TCP/IP interface is not only faster in terms of code execution
78 --- Callbacks
89 - void tcp_arg(struct tcp_pcb *pcb, void *arg)
97 --- TCP connection setup
101 identifier (i.e., a protocol control block - PCB) is created with the
103 incoming connections or be explicitly connected to another host.
105 - struct tcp_pcb *tcp_new(void)
110 - err_t tcp_bind(struct tcp_pcb *pcb, ip_addr_t *ipaddr,
120 - struct tcp_pcb *tcp_listen(struct tcp_pcb *pcb)
138 - struct tcp_pcb *tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog)
144 - void tcp_accepted(struct tcp_pcb *pcb)
153 - void tcp_accept(struct tcp_pcb *pcb,
160 - err_t tcp_connect(struct tcp_pcb *pcb, ip_addr_t *ipaddr,
165 Sets up the pcb to connect to the remote host and sends the
172 properly established, either because the other host refused the
173 connection or because the other host didn't answer, the "err"
182 --- Sending TCP data
186 host, the application will be notified with a call to a specified
189 - err_t tcp_write(struct tcp_pcb *pcb, const void *dataptr, u16_t len,
194 - TCP_WRITE_FLAG_COPY: indicates whether the new memory should be allocated
196 should be allocated and the data should only be referenced by pointer. This
198 ACKed by the remote host
199 - TCP_WRITE_FLAG_MORE: indicates that more data follows. If this is given,
212 data has been successfully received by the other host and try again.
214 - void tcp_sent(struct tcp_pcb *pcb,
220 host. The len argument passed to the callback function gives the
224 --- Receiving TCP data
226 TCP data reception is callback based - an application specified
232 - void tcp_recv(struct tcp_pcb *pcb,
238 indicate that the remote host has closed the connection. If
243 - void tcp_recved(struct tcp_pcb *pcb, u16_t len)
249 --- Application polling
260 - void tcp_poll(struct tcp_pcb *pcb,
271 --- Closing and aborting connections
273 - err_t tcp_close(struct tcp_pcb *pcb)
283 - void tcp_abort(struct tcp_pcb *pcb)
286 host. The pcb is deallocated. This function never fails.
298 - void tcp_err(struct tcp_pcb *pcb, void (* err)(void *arg,
305 --- Lower layer TCP interface
316 --- UDP interface
321 - struct udp_pcb *udp_new(void)
327 - void udp_remove(struct udp_pcb *pcb)
331 - err_t udp_bind(struct udp_pcb *pcb, ip_addr_t *ipaddr,
334 Binds the pcb to a local address. The IP-address argument "ipaddr"
338 - err_t udp_connect(struct udp_pcb *pcb, ip_addr_t *ipaddr,
342 network traffic, but only set the remote address of the pcb.
344 - err_t udp_disconnect(struct udp_pcb *pcb)
347 any network traffic, but only removes the remote address of the pcb.
349 - err_t udp_send(struct udp_pcb *pcb, struct pbuf *p)
353 - void udp_recv(struct udp_pcb *pcb,
364 --- System initalization
376 - stats_init()
380 - sys_init()
385 - mem_init()
389 - memp_init()
393 - pbuf_init()
397 - etharp_init()
403 - ip_init()
407 - udp_init()
411 - tcp_init()
417 - netif_add(struct netif *netif, ip_addr_t *ipaddr,
434 for(i = 0; i < ETHARP_HWADDR_LEN; i++) netif->hwaddr[i] = some_eth_addr[i];
443 - netif_set_default(struct netif *netif)
447 - netif_set_up(struct netif *netif)
451 - dhcp_start(struct netif *netif)
457 You can peek in the netif->dhcp struct for the actual DHCP status.
460 --- Optimalization hints
472 if you're using a little-endian architecture.
478 a higher speed than the maximum wire-speed. If the
494 --- Zero-copy MACs
496 To achieve zero-copy on transmit, the data passed to the raw API must
497 remain unchanged until sent. Because the send- (or write-)functions return
501 This implies that PBUF_RAM/PBUF_POOL pbufs passed to raw-API send functions
502 must *not* be reused by the application unless their ref-count is 1.
504 For no-copy pbufs (PBUF_ROM/PBUF_REF), data must be kept unchanged, too,
506 PBUF_ROM-pbufs are just enqueued (as ROM-data is expected to never change).
508 Also, data passed to tcp_write without the copy-flag must not be changed!