Lines Matching +full:multi +full:- +full:segment
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
31 this thread! Application threads using the sequential- or socket API
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
52 an ISR (since only then, mem_free - for PBUF_RAM - may
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
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,
166 initial SYN segment which opens the connection.
178 available for enqueueing the SYN segment. If the SYN indeed was
182 --- Sending TCP data
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
199 - TCP_WRITE_FLAG_MORE: indicates that more data follows. If this is given,
200 the PSH flag is set in the last segment created by this call to tcp_write.
205 the queue of outgoing segment is larger than the upper limit defined
214 - void tcp_sent(struct tcp_pcb *pcb,
224 --- Receiving TCP data
226 TCP data reception is callback based - an application specified
232 - void tcp_recv(struct tcp_pcb *pcb,
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)
285 Aborts the connection by sending a RST (reset) segment to the remote
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,
344 - err_t udp_disconnect(struct udp_pcb *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!