Go to file
YannCharbon 0d2badf42c Add complete support of DHCP relay interface ID option
RFC3315 specifies the following: "The relay agent MAY send the Interface-id
option to identify the interface on which the client message was received.
If a relay agent  receives a Relay-reply message with an Interface-id
option, the relay agent relays the message to the client through the
interface identified by the option."

The current implementation of the DHCP relay reply handling, the interface
ID field from the server response is ignored. Managing the interface ID
is very important especially as DHCP requests/replies use link-local
addresses. The consequence of this is that the interface must always be
specified because the routing layer cannot guess the correct interface.
Moreover, Mbed provides a mechanism to enable/disable the interface ID
option on a DHCP relay instance, so it is important to fully support it.

The reason why this issue has not been discoverd until now is that the DHCP
relay is mainly used on systems that use only one interface (such as Wi-SUN
routers). By default, when no interface ID is specified for the socket, the
latter will choose 6loWPAN interface by default. This means that if two
interfaces are used on the same device, the 6loWPAN interface is always
selected.

The commit adds code to retrieve the interface-id value contained within
the DHCP relay reply message and write it to a control message header
that is added to the socket message. This tells the socket which
interface to choose. If the interface-id option is not enabled on the
relay, this procedure is simply ignored.
2022-08-30 17:49:41 +02:00
.github github action: add git safe directory 2022-04-20 11:18:27 +01:00
TESTS Move Mbed TLS self tests to a separate configuration 2021-06-15 10:50:14 +01:00
UNITTESTS Change google test git tag to main 2021-11-16 10:35:49 +01:00
cmsis cmsis: fix iar asm build error with including header 2021-08-20 13:22:56 +01:00
connectivity Add complete support of DHCP relay interface ID option 2022-08-30 17:49:41 +02:00
docker_images/mbed-os-env set locale in mbed-os-env docker image 2021-09-08 13:19:17 +01:00
docs github actions for mbed-os-env docker management 2021-08-03 16:28:14 +01:00
drivers fix: typo in PwmOut.h (pulsewith -> pulsewidth) 2022-06-25 08:21:51 +09:00
events Fix replacement of event queue background. 2021-09-10 12:13:09 +01:00
extern Add external greentea-client dependency 2021-07-07 14:29:14 +01:00
features greentea: Add missing license header 2021-07-20 17:01:34 +01:00
hal fix: typo in pwmout_api.h (pulsewitdth -> pulsewidth) 2022-06-22 00:00:29 +09:00
platform Update Mbed version block 2022-06-14 15:24:16 +01:00
rtos rtos: Thread: Make stack allocation failure runtime catchable 2021-09-08 14:17:58 +01:00
storage Fix missing mbed:: profix issue 2022-08-23 22:47:56 +02:00
targets Removed UTF-8 Chars 2022-08-24 18:31:42 +05:30
tools update to mbed_generate_bin_hex cmake function 2022-06-15 17:03:53 +02:00
.astylerc AStyle: fix indentation for longer lines 2018-05-24 14:15:52 +01:00
.codecheckignore .codecheckignore add STM mx_wifi files 2021-09-30 17:56:07 +02:00
.coveragerc Exclude libraries and tests from coverage numbers 2017-09-25 11:51:31 -05:00
.editorconfig Add .editorconfig file 2021-02-25 16:26:34 +01:00
.gitattributes Normalize line endings for IM880B startup files. 2019-07-15 14:56:22 +03:00
.gitignore CMake: Update mbed os, unittest CMake and add CMAKE_CROSSCOMPILING guard 2021-05-11 02:49:03 -07:00
.lgtm.yml lgtm: Add initial LGTM configuration file 2021-05-27 17:38:47 +01:00
.mergify.yml mergify: fix needs work labels 2021-10-14 15:01:16 +01:00
.pylintrc Add pylint configuration file 2016-08-16 11:48:45 -05:00
CMakeLists.txt CMake: Fix command line too long with Ninja/ARMClang on Windows 2022-02-11 17:59:33 +08:00
CONTRIBUTING.md Fix links to documentation on https://os.mbed.com 2019-01-21 14:56:40 -08:00
DOXYGEN_FRONTPAGE.md Updating with new links and correct branding 2020-08-12 10:49:05 +01:00
Jenkinsfile Updated file comment 2018-08-20 12:31:40 +03:00
LICENSE-apache-2.0.txt license: rename to apache 2.0 txt file 2019-02-13 11:28:01 +00:00
LICENSE.md Update LICENSE.md 2021-08-05 14:13:57 +03:00
README.md travis ci migration to github action 2021-08-11 11:02:06 +01:00
doxyfile_options BLE: update doxygen exclusion pattern 2020-08-25 11:34:00 +01:00
doxygen_options.json BLE: update doxygen exclusion pattern 2020-08-25 11:34:00 +01:00
logo.png Readme updates for style and branding 2017-12-04 14:59:16 -06:00
mbed.h Added Raw CAN (unlocked can read api) and updated the code for the 2021-06-29 12:46:21 +05:30
requirements.txt Update PyElfTools as well 2021-10-22 14:59:10 +02:00

README.md

Mbed OS

Build status master Tools coverage status

Arm Mbed OS is an open source embedded operating system designed specifically for the "things" in the Internet of Things. It includes all the features you need to develop a connected product based on an Arm Cortex-M microcontroller, including security, connectivity, an RTOS and drivers for sensors and I/O devices.

Mbed OS provides a platform that includes:

  • Security foundations.
  • Cloud management services.
  • Drivers for sensors, I/O devices and connectivity.

Release notes

The release notes detail the current release. You can also find information about previous versions.

License and contributions

The software is provided under the Apache-2.0 license. Contributions to this project are accepted under the same license. Please see contributing.md for more information.

This project contains code from other projects. The original license text is included in those source files. They must comply with our license guide.

Folders containing files under different permissive license than Apache 2.0 are listed in the LICENSE file.

Getting started for developers

We have a developer website for asking questions, engaging with others, finding information on boards and components, using an online IDE and compiler, reading the documentation and learning about what's new and what's coming next in Mbed OS.

Getting started for contributors

We also have a contributing and publishing guide that covers licensing, contributor agreements and style guidelines.

Documentation

For more information about Mbed OS, please see our published documentation. It includes Doxygen for our APIs, step-by-step tutorials, porting information and background reference materials about our architecture and tools.

To contribute to this documentation, please see the mbed-os-5-docs repository.