Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Embed: (wiki syntax)

« Back to documentation index

net_ipv6_api.h File Reference

net_ipv6_api.h File Reference

IPv6 configuration API. More...

Go to the source code of this file.

Functions

int8_t arm_nwk_ipv6_frag_mru (uint16_t frag_mru)
 Set maximum IPv6 fragmented datagram reception size.
int8_t arm_nwk_ipv6_max_cache_entries (uint16_t max_entries)
 Set the maximum number of entries for the neighbour cache and destination cache.
int8_t arm_nwk_ipv6_destination_cache_configure (uint16_t max_entries, uint16_t short_term_threshold, uint16_t long_term_threshold, uint16_t lifetime)
 Configure destination cache.
int8_t arm_nwk_ipv6_neighbour_cache_configure (uint16_t max_entries, uint16_t short_term_threshold, uint16_t long_term_threshold, uint16_t lifetime)
 Configure neighbour cache.
void arm_nwk_ipv6_auto_flow_label (bool auto_flow_label)
 Configure automatic flow label calculation.
int8_t arm_nwk_ipv6_opaque_iid_key (const void *secret_key, uint8_t key_len)
 Set the key for opaque IPv6 interface identifiers.
int8_t arm_nwk_ipv6_opaque_iid_enable (int8_t interface_id, bool enable)
 Enable/disable opaque IPv6 interface identifiers by interface.

Detailed Description

IPv6 configuration API.

Definition in file net_ipv6_api.h.


Function Documentation

void arm_nwk_ipv6_auto_flow_label ( bool  auto_flow_label )

Configure automatic flow label calculation.

Enable or disable automatic generation of IPv6 flow labels for outgoing packets.

Parameters:
auto_flow_labelTrue to enable auto-generation.

Definition at line 56 of file net_ipv6.c.

int8_t arm_nwk_ipv6_destination_cache_configure ( uint16_t  max_entries,
uint16_t  short_term_threshold,
uint16_t  long_term_threshold,
uint16_t  lifetime 
)

Configure destination cache.

Set destination cache maximum entry count, thresholds where amount of entries is kept during operation and lifetime.

Note: This must be called before arm_nwk_interface_lowpan_init()

Parameters:
max_entriesMaximum number of entries allowed in destination cache at any time.
short_term_thresholdAmount of cache entries kept in memory in short term. Must be less than max_entries.
long_term_thresholdAmount of entries kept in memory over long period of time. Must be less than short_term_threshold.
lifetimeLifetime of cache entry, must be over 120 seconds
Returns:
0 Change OK.
<0 Change invalid - unable to change the maximum for cache.

Definition at line 46 of file net_ipv6.c.

int8_t arm_nwk_ipv6_frag_mru ( uint16_t  frag_mru )

Set maximum IPv6 fragmented datagram reception size.

Set the maximum size limit for fragmented datagram reception.

RFC 2460 requires this to be at least 1500. It should also be at least as large as the MTU of each attached link.

Parameters:
frag_mruThe fragmented Maximum Receive Unit in octets.
Returns:
0 Change OK - actual MRU is at least the requested value.
<0 Change invalid - unable to set the specified MRU.

Definition at line 35 of file net_ipv6.c.

int8_t arm_nwk_ipv6_max_cache_entries ( uint16_t  max_entries )

Set the maximum number of entries for the neighbour cache and destination cache.

Default value is 64 and minimum allowed value is 4.

Note: This must be called before arm_nwk_interface_lowpan_init()

Parameters:
max_entriesThe absolute maximum entries allowed in cache at any time.
Returns:
0 Change OK.
<0 Change invalid - unable to change the maximum for cache.

Definition at line 41 of file net_ipv6.c.

int8_t arm_nwk_ipv6_neighbour_cache_configure ( uint16_t  max_entries,
uint16_t  short_term_threshold,
uint16_t  long_term_threshold,
uint16_t  lifetime 
)

Configure neighbour cache.

Set neighbour cache maximum entry count, thresholds where amount of entries is kept during operation and lifetime.

Note: This must be called before arm_nwk_interface_lowpan_init()

Parameters:
max_entriesMaximum number of entries allowed in neighbour cache at any time.
short_term_thresholdAmount of cache entries kept in memory in short term. Must be less than max_entries.
long_term_thresholdAmount of entries kept in memory over long period of time. Must be less than short_term_threshold.
lifetimeLifetime of cache entry, must be over 120 seconds
Returns:
0 Change OK.
<0 Change invalid - unable to change the maximum for cache.

Definition at line 51 of file net_ipv6.c.

int8_t arm_nwk_ipv6_opaque_iid_enable ( int8_t  interface_id,
bool  enable 
)

Enable/disable opaque IPv6 interface identifiers by interface.

Enable or disable RFC 7217 opaque IIDs generated by SLAAC, per interface. By default opaque IIDs are enabled if the opaque key is set. If disabled, SLAAC IIDs will be EUI-64-based as per RFC 4291.

Parameters:
interface_idInterface ID.
enableTrue to enable.
Returns:
0 enabled/disabled OK.
<0 failed (for example invalid interface ID).

Definition at line 66 of file net_ipv6.c.

int8_t arm_nwk_ipv6_opaque_iid_key ( const void *  secret_key,
uint8_t  key_len 
)

Set the key for opaque IPv6 interface identifiers.

This call sets the secret key used to generate opaque interface identifiers, as per RFC 7217. Once this has been set, all interfaces will use opaque interface identifiers by default. If secret_key is NULL, opaque interface identifiers will be disabled.

Correct implementation of RFC 7217 would require that this key be randomly generated at first bootstrap, and thereafter remain constant, which would require non-volatile storage. The next closest alternative would be to base this on a MAC address.

Parameters:
secret_keyA pointer to secret key (will be copied by call).
key_lenThe length of the key.
Returns:
0 key set okay.
<0 key set failed (for example due to memory allocation).

Definition at line 61 of file net_ipv6.c.