|
lwIP 2.2.1
Lightweight IP stack
|
Functions | |
| err_t | raw_bind (struct raw_pcb *pcb, const ip_addr_t *ipaddr) |
| void | raw_bind_netif (struct raw_pcb *pcb, const struct netif *netif) |
| err_t | raw_connect (struct raw_pcb *pcb, const ip_addr_t *ipaddr) |
| void | raw_disconnect (struct raw_pcb *pcb) |
| void | raw_recv (struct raw_pcb *pcb, raw_recv_fn recv, void *recv_arg) |
| err_t | raw_sendto (struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *ipaddr) |
| err_t | raw_sendto_if_src (struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip, struct netif *netif, const ip_addr_t *src_ip) |
| err_t | raw_send (struct raw_pcb *pcb, struct pbuf *p) |
| void | raw_remove (struct raw_pcb *pcb) |
| struct raw_pcb * | raw_new (u8_t proto) |
| struct raw_pcb * | raw_new_ip_type (u8_t type, u8_t proto) |
Implementation of raw protocol PCBs for low-level handling of different types of protocols besides (or overriding) those already available in lwIP.
Bind a RAW PCB.
| pcb | RAW PCB to be bound with a local address ipaddr. |
| ipaddr | local IP address to bind with. Use IP4_ADDR_ANY to bind to all local interfaces. |
Bind an RAW PCB to a specific netif. After calling this function, all packets received via this PCB are guaranteed to have come in via the specified netif, and all outgoing packets will go out via the specified netif.
| pcb | RAW PCB to be bound with netif. |
| netif | netif to bind to. Can be NULL. |
Connect an RAW PCB. This function is required by upper layers of lwip. Using the raw api you could use raw_sendto() instead
This will associate the RAW PCB with the remote address.
| pcb | RAW PCB to be connected with remote address ipaddr and port. |
| ipaddr | remote IP address to connect with. |
Disconnect a RAW PCB.
| pcb | the raw pcb to disconnect. |
| struct raw_pcb * raw_new | ( | u8_t | proto | ) |
Create a RAW PCB.
| proto | the protocol number of the IPs payload (e.g. IP_PROTO_ICMP) |
| struct raw_pcb * raw_new_ip_type | ( | u8_t | type, |
| u8_t | proto ) |
Create a RAW PCB for specific IP type.
| type | IP address type, see lwip_ip_addr_type definitions. If you want to listen to IPv4 and IPv6 (dual-stack) packets, supply IPADDR_TYPE_ANY as argument and bind to IP_ANY_TYPE. |
| proto | the protocol number (next header) of the IPv6 packet payload (e.g. IP6_NEXTH_ICMP6) |
| void raw_recv | ( | struct raw_pcb * | pcb, |
| raw_recv_fn | recv, | ||
| void * | recv_arg ) |
Set the callback function for received packets that match the raw PCB's protocol and binding.
The callback function MUST either
Remove an RAW PCB.
| pcb | RAW PCB to be removed. The PCB is removed from the list of RAW PCB's and the data structure is freed from memory. |
Send the raw IP packet to the address given by raw_connect()
| pcb | the raw pcb which to send |
| p | the IP payload to send |
Send the raw IP packet to the given address. An IP header will be prepended to the packet, unless the RAW_FLAGS_HDRINCL flag is set on the PCB. In that case, the packet must include an IP header, which will then be sent as is.
| pcb | the raw pcb which to send |
| p | the IP payload to send |
| ipaddr | the destination address of the IP packet |
| err_t raw_sendto_if_src | ( | struct raw_pcb * | pcb, |
| struct pbuf * | p, | ||
| const ip_addr_t * | dst_ip, | ||
| struct netif * | netif, | ||
| const ip_addr_t * | src_ip ) |
Send the raw IP packet to the given address, using a particular outgoing netif and source IP address. An IP header will be prepended to the packet, unless the RAW_FLAGS_HDRINCL flag is set on the PCB. In that case, the packet must include an IP header, which will then be sent as is.
| pcb | RAW PCB used to send the data |
| p | chain of pbufs to be sent |
| dst_ip | destination IP address |
| netif | the netif used for sending |
| src_ip | source IP address |