FreeRTOS-Plus-TCP IPv6 Functionality
Introduction
IPv6 functionality is enabled by default from FreeRTOS V4.0.0 onwards. IPv6 functionality can be disabled as compile time option
using the flag ipconfigUSE_IPv6. The IPv6 IP-addresses can be configured either statically, or automatically using either
Router Advertisement (RA) (along with SLAAC) or DHCP version 6 (DHCPv6).
When using Stateless address auto-configuration (SLAAC), the device will first receive the address of a network prefix. Then it will take a random IP-address that is valid, and it will test if the address is already in use in the LAN. These addresses can be public Internet addresses, which means that NAT is not needed, only a IPv6 gateway.
The IPv6 functionality adds 3 new modules:
FreeRTOS_Routing
Introduces the concept of end-points and address resolution. See the page about “multiple interfaces“. These are necessary to get both IPv4
and IPv6 addresses.
FreeRTOS_ND
Neighbor Discovery (ND): this handles all ICMPv6 messages. It does the (MAC-) address resolution, along with a cache,
ping and router solicitation.
FreeRTOS_DHCPv6
This is the DHCPv6 client. Note that it will create a session for each of the end-point that has DHCP enabled.
FreeRTOS_RA
Router Advertisement: This implements Router Solicitation and SLAAC. An IPv6 router advertises a network prefix, and the
end-point will select its own IP-address. By issuing Neighbour Solicitation messages, it will find out if the chosen address is unique.
Demo
The how to setup and run a demo for IPv6 page provides instructions on setting up an IPv6 demo
IPv6 functions
The IPv6 and multiple interface functions page provides information on new functions required to use both IPv6 and multiple interfaces.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.