Rtos API example

Embed: (wiki syntax)

« Back to documentation index

raw.h File Reference

raw.h File Reference

raw API (to be used from TCPIP thread)
See also RAW More...

Go to the source code of this file.

Data Structures

struct  raw_pcb
 the RAW protocol control block More...

Typedefs

typedef u8_t(* raw_recv_fn )(void *arg, struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *addr)
 Function prototype for raw pcb receive callback functions.

Functions

struct raw_pcbraw_new (u8_t proto)
 Create a RAW PCB.
struct raw_pcbraw_new_ip_type (u8_t type, u8_t proto)
 Create a RAW PCB for specific IP type.
void raw_remove (struct raw_pcb *pcb)
 Remove an RAW PCB.
err_t raw_bind (struct raw_pcb *pcb, const ip_addr_t *ipaddr)
 Bind a RAW PCB.
err_t raw_connect (struct raw_pcb *pcb, const ip_addr_t *ipaddr)
 Connect an RAW PCB.
err_t raw_sendto (struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *ipaddr)
 Send the raw IP packet to the given address.
err_t raw_send (struct raw_pcb *pcb, struct pbuf *p)
 Send the raw IP packet to the address given by raw_connect()
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.
u8_t raw_input (struct pbuf *p, struct netif *inp)
 Determine if in incoming IP packet is covered by a RAW PCB and if so, pass it to a user-provided receive callback function.
void raw_netif_ip_addr_changed (const ip_addr_t *old_addr, const ip_addr_t *new_addr)
 This function is called from netif.c when address is changed.

Detailed Description

raw API (to be used from TCPIP thread)
See also RAW

Definition in file raw.h.


Typedef Documentation

typedef u8_t(* raw_recv_fn)(void *arg, struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *addr)

Function prototype for raw pcb receive callback functions.

Parameters:
arguser supplied argument (raw_pcb.recv_arg)
pcbthe raw_pcb which received data
pthe packet buffer that was received
addrthe remote IP address from which the packet was received
Returns:
1 if the packet was 'eaten' (aka. deleted), 0 if the packet lives on If returning 1, the callback is responsible for freeing the pbuf if it's not used any more.

Definition at line 67 of file raw.h.


Function Documentation

u8_t raw_input ( struct pbuf p,
struct netif inp 
)

Determine if in incoming IP packet is covered by a RAW PCB and if so, pass it to a user-provided receive callback function.

Given an incoming IP datagram (as a chain of pbufs) this function finds a corresponding RAW PCB and calls the corresponding receive callback function.

Parameters:
ppbuf to be demultiplexed to a RAW PCB.
inpnetwork interface on which the datagram was received.
Returns:
- 1 if the packet has been eaten by a RAW PCB receive callback function. The caller MAY NOT not reference the packet any longer, and MAY NOT call pbuf_free().
- 0 if packet is not eaten (pbuf is still referenced by the caller).

Definition at line 128 of file lwip_raw.c.

void raw_netif_ip_addr_changed ( const ip_addr_t old_addr,
const ip_addr_t new_addr 
)

This function is called from netif.c when address is changed.

Parameters:
old_addrIP address of the netif before change
new_addrIP address of the netif after change

Definition at line 505 of file lwip_raw.c.