Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Embed: (wiki syntax)

« Back to documentation index

lwip_lowpan6.c File Reference

lwip_lowpan6.c File Reference

6LowPAN output for IPv6. More...

Go to the source code of this file.

Functions

static u8_t lowpan6_write_iee802154_header (struct ieee_802154_hdr *hdr, const struct lowpan6_link_addr *src, const struct lowpan6_link_addr *dst)
 Write the IEEE 802.15.4 header that encapsulates the 6LoWPAN frame.
static err_t lowpan6_parse_iee802154_header (struct pbuf *p, struct lowpan6_link_addr *src, struct lowpan6_link_addr *dest)
 Parse the IEEE 802.15.4 header from a pbuf.
u16_t lowpan6_calc_crc (const void *buf, u16_t len)
 Calculate the 16-bit CRC as required by IEEE 802.15.4.
static void dequeue_datagram (struct lowpan6_reass_helper *lrh, struct lowpan6_reass_helper *prev)
 Removes a datagram from the reassembly queue.
void lowpan6_tmr (void)
 Periodic timer for 6LowPAN functions:
err_t lowpan6_set_context (u8_t idx, const ip6_addr_t *context)
 Set context.
err_t lowpan6_set_short_addr (u8_t addr_high, u8_t addr_low)
 Set short address.
err_t lowpan6_output (struct netif *netif, struct pbuf *q, const ip6_addr_t *ip6addr)
 Resolve and fill-in IEEE 802.15.4 address header for outgoing IPv6 packet.
err_t lowpan6_input (struct pbuf *p, struct netif *netif)
 NETIF input function: don't free the input pbuf when returning != ERR_OK!
err_t lowpan6_set_pan_id (u16_t pan_id)
 Set PAN ID.
err_t tcpip_6lowpan_input (struct pbuf *p, struct netif *inp)
 Pass a received packet to tcpip_thread for input processing.

Variables

static struct
lowpan6_ieee802154_data 
lowpan6_data
 Currently, this state is global, since there's only one 6LoWPAN netif.

Detailed Description

6LowPAN output for IPv6.

Uses ND tables for link-layer addressing. Fragments packets to 6LowPAN units.

This implementation aims to conform to IEEE 802.15.4(-2015), RFC 4944 and RFC 6282.

Definition in file lwip_lowpan6.c.


Function Documentation

static void dequeue_datagram ( struct lowpan6_reass_helper *  lrh,
struct lowpan6_reass_helper *  prev 
) [static]

Removes a datagram from the reassembly queue.

Definition at line 303 of file lwip_lowpan6.c.

u16_t lowpan6_calc_crc ( const void *  buf,
u16_t  len 
)

Calculate the 16-bit CRC as required by IEEE 802.15.4.

Definition at line 262 of file lwip_lowpan6.c.

static err_t lowpan6_parse_iee802154_header ( struct pbuf p,
struct lowpan6_link_addr src,
struct lowpan6_link_addr dest 
) [static]

Parse the IEEE 802.15.4 header from a pbuf.

If successful, the header is hidden from the pbuf.

PAN IDs and seuqence number are not checked

Parameters:
pinput pbuf, p->payload pointing at the IEEE 802.15.4 header
srcpointer to source address filled from the header
destpointer to destination address filled from the header
Returns:
ERR_OK if successful

Definition at line 186 of file lwip_lowpan6.c.

void lowpan6_tmr ( void   )

Periodic timer for 6LowPAN functions:

  • Remove incomplete/old packets

Definition at line 320 of file lwip_lowpan6.c.

static u8_t lowpan6_write_iee802154_header ( struct ieee_802154_hdr hdr,
const struct lowpan6_link_addr src,
const struct lowpan6_link_addr dst 
) [static]

Write the IEEE 802.15.4 header that encapsulates the 6LoWPAN frame.

Src and dst PAN IDs are filled with the ID set by lowpan6_set_pan_id.

Since the length is variable:

Returns:
the header length

Definition at line 130 of file lwip_lowpan6.c.


Variable Documentation

struct lowpan6_ieee802154_data lowpan6_data [static]

Currently, this state is global, since there's only one 6LoWPAN netif.

Definition at line 107 of file lwip_lowpan6.c.