Ethernet for Nucleo and Disco board STM32F746 works with gcc and arm. IAC is untested

Dependents:   STM32F746_iothub_client_sample_mqtt DISCO-F746NG_Ethernet Nucleo_F746ZG_Ethernet thethingsiO-DISCO_F746NG-mqtt ... more

Embed: (wiki syntax)

« Back to documentation index

slipif.c File Reference

slipif.c File Reference

SLIP Interface. More...

Go to the source code of this file.

Functions

err_t slipif_output (struct netif *netif, struct pbuf *p, ip_addr_t *ipaddr)
 Send a pbuf doing the necessary SLIP encapsulation.
static struct pbuf * slipif_rxbyte (struct netif *netif, u8_t c)
 Handle the incoming SLIP stream character by character.
static void slipif_rxbyte_input (struct netif *netif, u8_t c)
 Like slipif_rxbyte, but passes completed packets to netif->input.
static void slipif_loop_thread (void *nf)
 The SLIP input thread.
err_t slipif_init (struct netif *netif)
 SLIP netif initialization.
void slipif_poll (struct netif *netif)
 Polls the serial device and feeds the IP layer with incoming packets.
void slipif_process_rxqueue (struct netif *netif)
 Feeds the IP layer with incoming packets that were receive.
static void slipif_rxbyte_enqueue (struct netif *netif, u8_t data)
 Like slipif_rxbyte, but queues completed packets.
void slipif_received_byte (struct netif *netif, u8_t data)
 Process a received byte, completed packets are put on a queue that is fed into IP through slipif_process_rxqueue().
void slipif_received_bytes (struct netif *netif, u8_t *data, u8_t len)
 Process multiple received byte, completed packets are put on a queue that is fed into IP through slipif_process_rxqueue().

Detailed Description

SLIP Interface.

Definition in file slipif.c.


Function Documentation

err_t slipif_init ( struct netif netif )

SLIP netif initialization.

Call the arch specific sio_open and remember the opened device in the state field of the netif.

Parameters:
netifthe lwip network interface structure for this slipif
Returns:
ERR_OK if serial line could be opened, ERR_MEM if no memory could be allocated, ERR_IF is serial line couldn't be opened
Note:
netif->num must contain the number of the serial port to open (0 by default). If netif->state is != NULL, it is interpreted as an u8_t pointer pointing to the serial port number instead of netif->num.

Definition at line 318 of file slipif.c.

static void slipif_loop_thread ( void *  nf ) [static]

The SLIP input thread.

Feed the IP layer with incoming packets

Parameters:
nfthe lwip network interface structure for this slipif

Definition at line 287 of file slipif.c.

err_t slipif_output ( struct netif netif,
struct pbuf *  p,
ip_addr_t *  ipaddr 
)

Send a pbuf doing the necessary SLIP encapsulation.

Uses the serial layer's sio_send()

Parameters:
netifthe lwip network interface structure for this slipif
pthe pbuf chaing packet to send
ipaddrthe ip address to send the packet to (not used for slipif)
Returns:
always returns ERR_OK since the serial layer does not provide return values

Definition at line 115 of file slipif.c.

void slipif_poll ( struct netif netif )

Polls the serial device and feeds the IP layer with incoming packets.

Parameters:
netifThe lwip network interface structure for this slipif

Definition at line 380 of file slipif.c.

void slipif_process_rxqueue ( struct netif netif )

Feeds the IP layer with incoming packets that were receive.

Parameters:
netifThe lwip network interface structure for this slipif

Definition at line 402 of file slipif.c.

void slipif_received_byte ( struct netif netif,
u8_t  data 
)

Process a received byte, completed packets are put on a queue that is fed into IP through slipif_process_rxqueue().

This function can be called from ISR if SYS_LIGHTWEIGHT_PROT is enabled.

Parameters:
netifThe lwip network interface structure for this slipif
datareceived character

Definition at line 479 of file slipif.c.

void slipif_received_bytes ( struct netif netif,
u8_t *  data,
u8_t  len 
)

Process multiple received byte, completed packets are put on a queue that is fed into IP through slipif_process_rxqueue().

This function can be called from ISR if SYS_LIGHTWEIGHT_PROT is enabled.

Parameters:
netifThe lwip network interface structure for this slipif
datareceived character
lenNumber of received characters

Definition at line 497 of file slipif.c.

static struct pbuf* slipif_rxbyte ( struct netif netif,
u8_t  c 
) [static, read]

Handle the incoming SLIP stream character by character.

Parameters:
netifthe lwip network interface structure for this slipif
creceived character (multiple calls to this function will return a complete packet, NULL is returned before - used for polling)
Returns:
The IP packet when SLIP_END is received

Definition at line 170 of file slipif.c.

static void slipif_rxbyte_enqueue ( struct netif netif,
u8_t  data 
) [static]

Like slipif_rxbyte, but queues completed packets.

Parameters:
netifThe lwip network interface structure for this slipif
dataReceived serial byte

Definition at line 440 of file slipif.c.

static void slipif_rxbyte_input ( struct netif netif,
u8_t  c 
) [static]

Like slipif_rxbyte, but passes completed packets to netif->input.

Parameters:
netifThe lwip network interface structure for this slipif
datareceived character

Definition at line 267 of file slipif.c.