Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

provided a script for moving from device.h to target.json #1830

Merged
merged 7 commits into from
Jun 4, 2016

Conversation

theotherjimmy
Copy link
Contributor

use -h to find out how it works!

also auto-formatted hal/target.json

cc @screamerbg

@theotherjimmy
Copy link
Contributor Author

theotherjimmy commented May 31, 2016

example diff after running python workspace_tools/remove-device-h.py -t LPC23XX

diff --git a/hal/targets.json b/hal/targets.json
index c3ad9a1..747c3ed 100644
--- a/hal/targets.json
+++ b/hal/targets.json
@@ -590,6 +610,27 @@
  "LPC2368": {
        "inherits": [
            "LPCTarget"
        ],
        "core": "ARM7TDMI-S",
        "progen": {
            "target": "lpc2368"
        },
        "extra_labels": [
            "NXP",
            "LPC23XX"
        ],
        "supported_toolchains": [
             "ARM",
             "GCC_ARM",
             "GCC_CR"
+        ],
+        "provides": [
+            "LOCALFILESYSTEM",
+            "ANALOGIN",
+            "RTC",
+            "SPI",
+            "SEMIHOST",
+            "INTERRUPTIN",
+            "ERROR_PATTERN",
+            "PORTINOUT",
+            "PORTIN",
+            "STDIO_MESSAGES",
+            "I2CSLAVE",
+            "PWMOUT",
+            "CAN",
+            "SPISLAVE",
+            "PORTOUT",
+            "ETHERNET",
+            "SERIAL",
+            "I2C",
+            "ANALOGOUT"
         ]
     },

@0xc0170
Copy link
Contributor

0xc0170 commented May 31, 2016

I am confused. Is the one commit about changing formating in targets.json? that should be separate commit.

Do we need this script in this code base ? I assume we do device.h to json, generate that header file once for all target, and that's it?

@theotherjimmy
Copy link
Contributor Author

I'll amend to separate the commits.

@theotherjimmy theotherjimmy force-pushed the device-h-to-target-json branch 2 times, most recently from 325dbaf to 950f3f1 Compare May 31, 2016 20:50
@theotherjimmy
Copy link
Contributor Author

@0xc0170 done rebasing. I was committing it so that if someone decides to make a device.h in the future, we can easily convert it.

@geky geky changed the title provided a scirpt for moving from device.h to target.json provided a script for moving from device.h to target.json May 31, 2016
@screamerbg
Copy link
Contributor

This is awesome! Now we have unified target definition that propagates to device features! Also I like the variable order consistency (e.g. inherits is always first).
2 small suggestions:

  • alphabetic sort values in "provides"
  • can we reduce the multiline targets.json?

@sg-
Copy link
Contributor

sg- commented Jun 1, 2016

👍

@bogdanm
Copy link
Contributor

bogdanm commented Jun 1, 2016

Looks nice, however:

  1. This can't really be accepted without removing the corresponding device.h files. Otherwise you'll get loads of warnings related to multiple macro definitions.
  2. It results in a very large target.json files. In targets.py, targets can already inherit macros from their base target(s) and change them using macros_add and macros_remove. This can be extended to provides and the result would likely be an important reduction in size for targets.json.
  3. To keep the number of lines in targets.json under control, targets.json lists small arrays in a single line, see for example https://github.com/mbedmicro/mbed/blob/master/hal/targets.json#L50. Please keep this convention at least for extra_labels, macros and supported_toolchains`.
  4. Are there any tests than can prove that the script correctly interprets all the device.h files in the tree? If it doesn't, we're going to get invalid builds, and that's going to be hard to diagnose.

@bogdanm
Copy link
Contributor

bogdanm commented Jun 1, 2016

Point 2 above is especially imporant, since the current targets implementation allows target composition (building a board target on top of a MCU target, for example). If we just define the provides field in each target, we give up on a large part of this, which would be a pitty.

@theotherjimmy theotherjimmy force-pushed the device-h-to-target-json branch 2 times, most recently from 987eca2 to adb6823 Compare June 1, 2016 19:36
@theotherjimmy
Copy link
Contributor Author

theotherjimmy commented Jun 1, 2016

@bogdanm Point 3 taken care of.
example: python workspace_tools/remove-device-h.py -t LPC23XX

diff --git a/hal/targets.json b/hal/targets.json
index ff77b61..a1ec3ef 100644
--- a/hal/targets.json
+++ b/hal/targets.json
@@ -281,7 +281,8 @@
         "core": "ARM7TDMI-S",
         "progen": {"target": "lpc2368"},
         "extra_labels": ["NXP", "LPC23XX"],
-        "supported_toolchains": ["ARM", "GCC_ARM", "GCC_CR"]
+        "supported_toolchains": ["ARM", "GCC_ARM", "GCC_CR"],
+        "provides": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"]
     },
     "LPC2460": {
         "inherits": ["LPCTarget"],

also, I sorted the provides array.

@theotherjimmy
Copy link
Contributor Author

theotherjimmy commented Jun 1, 2016

@bogdanm an example of what you mean by point 2 would be helpful.

Point 4 is good, and I'm pretty sure that it may fail some builds as the following lines appear in the device.h associated with LPC23XX:

#define DEVICE_ID_LENGTH       32
#define DEVICE_MAC_OFFSET      20

which I don't handle at the moment. We could:

  1. remove only the lines that end in 0 or 1, assuming that we can easily recreate them with -DDEVICE_<thing>={1|0} on the command line. Then remove the file if it only contains the header wrappers.
  2. make provides a dict that replaces all #defines in the device.h file.
    Any suggestions for how we could handle this?

@bogdanm
Copy link
Contributor

bogdanm commented Jun 1, 2016

For point 2, see the documentation about defining target data here, especially the section macros, macros_add, macros_remove. In this case, if a target A defines provides like this:

"provides": ["p1", "p2", "p3", "p4"]

and target B inherits from A:

  • if B and A provide them same thing, B doesn't need to declare provides, since it inherits it from A.
  • if B also provides p5, it can do "provides_add": ["p5"]
  • provides_remove also works, but I wouldn't recommend using it, that's mostly useful for macros.

To add the _add/_remove capability to provides, you just need to add "provides" to this array: https://github.com/mbedmicro/mbed/blob/master/workspace_tools/targets.py#L61

@bogdanm
Copy link
Contributor

bogdanm commented Jun 1, 2016

  1. make provides a dict that replaces all #defines in the device.h file.

I like this. Or you can use a combined approach and do something like this (which is shorter):

"provides": ["ANALOGIN", "ANALOGOUT", "CAN", ... , {"DEVICE_ID_LENGTH": 20}, ...]

This looks a bit weird, but given the size of targets.json, it's probably more pragmatic.
And of course, even if we do this, it'd be great if we could find a way to check if this automatic conversion succeeded. Although I don't have yet any good ideas about how to do that.

@bogdanm
Copy link
Contributor

bogdanm commented Jun 1, 2016

Found this, not sure if it's useful or not: http://stackoverflow.com/a/12147822

@sg-
Copy link
Contributor

sg- commented Jun 1, 2016

We should reserve provides for platform defined features and macros for target/platform configuration. The base Target object should have an official list that is check against the provides implementation such that its not misused. Board specific macros should be in a file such as target.h (?). This would be a good place for the next change set which is friendly pin names :) reduction from Pinnames.h to reduce the enum copy paste that exists in inherited targets

One more thing to remove from sources:

  • hal/api probably safe to just delete
  • hal/common probably safe to just delete
  • hal/hal needs to include objects.h
  • hal/targets/... probably safe to just delete
$ grep -R . -n  -e "#include \"device.h\"" 
./hal/api/mbed_debug.h:18:#include "device.h"
./hal/api/mbed_interface.h:19:#include "device.h"
./hal/api/platform.h:21:#include "device.h"
./hal/api/semihost_api.h:19:#include "device.h"
./hal/common/assert.c:17:#include "device.h"
./hal/common/error.c:18:#include "device.h"
./hal/hal/analogin_api.h:19:#include "device.h"
./hal/hal/analogout_api.h:19:#include "device.h"
./hal/hal/can_api.h:19:#include "device.h"
./hal/hal/ethernet_api.h:19:#include "device.h"
./hal/hal/gpio_api.h:19:#include "device.h"
./hal/hal/gpio_irq_api.h:19:#include "device.h"
./hal/hal/i2c_api.h:19:#include "device.h"
./hal/hal/lp_ticker_api.h:19:#include "device.h"
./hal/hal/port_api.h:19:#include "device.h"
./hal/hal/pwmout_api.h:19:#include "device.h"
./hal/hal/rtc_api.h:19:#include "device.h"
./hal/hal/serial_api.h:19:#include "device.h"
./hal/hal/sleep_api.h:19:#include "device.h"
./hal/hal/spi_api.h:19:#include "device.h"
./hal/hal/ticker_api.h:19:#include "device.h"
./hal/targets/hal/TARGET_ARM_SSG/TARGET_IOTSS/SDK/mps2_ethernet_api.h:20:#include "device.h"
./hal/targets/hal/TARGET_ARM_SSG/TARGET_MPS2/SDK/mps2_ethernet_api.h:20:#include "device.h"
./hal/targets/hal/TARGET_Atmel/TARGET_SAM_CortexM4/i2c_api.c:17:#include "device.h"
./hal/targets/hal/TARGET_Atmel/TARGET_SAM_CortexM4/spi_api.c:17:#include "device.h"
./hal/targets/hal/TARGET_Maxim/TARGET_MAX32600/PeripheralPins.c:34:#include "device.h"
./hal/targets/hal/TARGET_Maxim/TARGET_MAX32610/PeripheralPins.c:34:#include "device.h"
./hal/targets/hal/TARGET_RENESAS/TARGET_RZ_A1H/rtc_api.c:18:#include "device.h"
./hal/targets/hal/TARGET_RENESAS/TARGET_VK_RZ_A1H/rtc_api.c:18:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/analogin_api.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/analogout_api.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/gpio_irq_api.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/i2c_api.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/lp_ticker.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/mbed_overrides.c:36:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/port_api.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/pwmout_api.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/rtc_api.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/serial_api.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/sleep.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/spi_api.c:31:#include "device.h"
./hal/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/us_ticker.c:38:#include "device.h"

@theotherjimmy
Copy link
Contributor Author

theotherjimmy commented Jun 1, 2016

We are looking at

[u'AACI',
 u'ANALOGIN',
 u'STDIO_MESSAGES',
 u'TSC',
 u'PORTIN',
 u'I2C_ASYNCH',
 u'DEBUG_AWARENESS',
 u'I2CSLAVE',
 u'CAN',
 u'LOCALFILESYSTEM',
 u'RTC_LSI',
 u'CLCD',
 u'LOWPOWERTIMER',
 u'RTC',
 u'ERROR_PATTERN',
 u'SPI',
 u'SERIAL_ASYNCH',
 u'SERIAL_FC',
 u'SEMIHOST',
 u'INTERRUPTIN',
 u'SPI_ASYNCH',
 u'PORTOUT',
 u'SERIAL',
 u'ANALOGOUT',
 u'SPISLAVE',
 u'PORTINOUT',
 u'PWMOUT',
 u'SLEEP',
 u'ERROR_RED',
 u'ETHERNET',
 u'I2C',
 u'SERIAL_ASYNCH_DMA']

as all current possible 'features' of a device

@theotherjimmy
Copy link
Contributor Author

theotherjimmy commented Jun 1, 2016

@sg- @bogdanm @0xc0170 is there anything in that list that should be removed?

@bogdanm
Copy link
Contributor

bogdanm commented Jun 1, 2016

@sg- @bogdanm @0xc0170 is there anything in that list that should be removed?

No idea, sorry :) But anyway, I don't necessarily think that gathering all these defines in a single place is a good idea. Something like CLCD is quite target specific, it doesn't feel like including it in Target makes a lot of snese.

@sg-
Copy link
Contributor

sg- commented Jun 1, 2016

These represent mbed features

 u'ANALOGIN',
 u'PORTIN',
 u'I2C_ASYNCH',
 u'I2CSLAVE',
 u'CAN',
 u'LOCALFILESYSTEM',
 u'LOWPOWERTIMER',
 u'RTC',
 u'SPI',
 u'SERIAL_ASYNCH',
 u'SERIAL_FC',
 u'INTERRUPTIN',
 u'SPI_ASYNCH',
 u'PORTOUT',
 u'SERIAL',
 u'ANALOGOUT',
 u'SPISLAVE',
 u'PORTINOUT',
 u'PWMOUT',
 u'SLEEP',
 u'ETHERNET',
 u'I2C',

These seem to be platform features that could be better handled?

 u'ERROR_PATTERN',
 u'STDIO_MESSAGES',
 u'DEBUG_AWARENESS',
 u'SEMIHOST',
 u'ERROR_RED',

These are extensions for specific platforms that should be in a targets.h like file

DEVICE_SERIAL_ASYNCH_DMA
CLCD
RTC_LSI

@bogdanm
Copy link
Contributor

bogdanm commented Jun 1, 2016

That looks like a nice classification. We could put all of them under provides, but at different levels in the target inheritance tree. Or we could choose to provide actual headers for some of them. I'm tempted to use provides for everything, since that should make adding a target a little easier, but the headers would work too.

@theotherjimmy
Copy link
Contributor Author

theotherjimmy commented Jun 1, 2016

We would like to use the provides array to filter test out that will never work on a platform. We need to be careful what we let into the provides arrays, as they represent hardware features that mbed provides an abstraction for. Therefore, I think that being conservative with what we let in is the better option.

@bogdanm
Copy link
Contributor

bogdanm commented Jun 1, 2016

We need to be careful what we let into the provides arrays, as they represent hardware features that mbed provides an abstraction for.

Only if you define it as such. If you let targets extend it with their own specific hardware, that's still a valid model, and you can still filter tests. And mbed will still provide abstractions only for the features it knows of. Maybe I don't understand the advantages of being conservative instead.

@theotherjimmy
Copy link
Contributor Author

@theotherjimmy
Copy link
Contributor Author

After a bit of grepping:

$ grep -R . -e "#.*if.*DEVICE_TSC"
$ grep -R . -e "#.*if.*DEVICE_AACI"
$ grep -R . -e "#.*if.*DEVICE_CLDC"     

I am convinced that TSC, AACI, and CLDC are all safe to remove.

@theotherjimmy
Copy link
Contributor Author

Sorry for the CI noise. I forgot to remove a comma.

@0xc0170
Copy link
Contributor

0xc0170 commented Jun 3, 2016

Before merging, consider this is a breaking change, as there are projects out there which are using mbed sources, but not our buildsystem, suddenly device.h is empty (yes they will update, will require to get our json file and parse it). I am not against this change, just a note that we should start announcing this type of changes in advance (aka "this changeset will be part of this release, either via issues here or mailing list"). My 5 cents

@theotherjimmy
Copy link
Contributor Author

Thanks for your cents! This change will definitely break all build systems outside of this repo.

@screamerbg
Copy link
Contributor

Build systems outside of this repo definitely have knowledge about the macros that this build system defines. E.g. to compile a target you need bunch of macros related to TARGET_ and TOOLCHAIN_ and also LIKE_CORTEX__, LIKE_MBED_, RTOS_ and so on.

@bogdanm
Copy link
Contributor

bogdanm commented Jun 3, 2016

Thanks @0xc0170, that's a very good point. What if we do it "less braking" then? We could automatically generate a device.h that lives outside source control, as previously suggested, which is potentially "less breaking".

@screamerbg
Copy link
Contributor

@bogdanm how is that different than the upcoming config system? Shall we generate mbed_config.h from the config system instead of runtime -D macros then?

@sg-
Copy link
Contributor

sg- commented Jun 3, 2016

That still requires use of our build system so would say we should make a utility in tools but also just expect that people will use our export scripts

@bogdanm
Copy link
Contributor

bogdanm commented Jun 3, 2016

I think @sg- is right: if people use our export scripts, the configuration will automagically make it in there. That (people using our exporters) feels like a reasonable expectation.

@screamerbg
Copy link
Contributor

@bogdanm exactly. This applies to 'features' as well

@0xc0170
Copy link
Contributor

0xc0170 commented Jun 3, 2016

@theotherjimmy Ready for merging?

@theotherjimmy
Copy link
Contributor Author

hold a few min. need to translate the build system patch to the other build system repo

@theotherjimmy
Copy link
Contributor Author

Ready for merging.

@sg-
Copy link
Contributor

sg- commented Jun 3, 2016

👍

@screamerbg
Copy link
Contributor

Shall we @0xc0170 ? :)

@0xc0170 0xc0170 merged commit d1ec4be into ARMmbed:master Jun 4, 2016
artokin pushed a commit to artokin/mbed-os that referenced this pull request Nov 5, 2018
…..ccd30a3

ccd30a3 Merge branch 'release_internal' into release_external
a9d7c1b Use BSD3 license for Thread files (ARMmbed#1898)
2b1d298 Link request retransmission delay changed (ARMmbed#1895)
06bd60a Remove ws resources from Nanostack
ad8577d Remove new test files
4453f82 Merge branch 'release_internal' into release_external
acbf1ac Add missing function macros (ARMmbed#1897)
dae82f6 implemented wisun routing cost calculation
f919fd1 Fix warning found by PVS-studio (ARMmbed#1891)
399f02f Additional time for distribution of dataset added (ARMmbed#1892)
dde9e61 Reverted commit ARMmbed#1888 and fixed thread_bbr_dua_entry_find (ARMmbed#1893)
628fa27 Merge pull request ARMmbed#1885 from ARMmbed/IOTTHD-2752
cfea7b2 BBR route for added with preference. Route info updated. (ARMmbed#1888)
dc404c4 Fix issues found by coverity (ARMmbed#1889)
c81e59c Fixes for Wi-SUN bbr behaviour
c941fe6 Adjust COAP callback return values (ARMmbed#1886)
7ef4775 Fix for multicast ping forwarding before adding MPL header(ARMmbed#1883)
766e305 FHSS: fixed missing us convert
ef38363 FHSS: Traces in set parent
296e455 FHSS: Time unit defines added
724696c FHSS: changed traces to use timestamp from MAC
3deb08c FHSS: use divider function in ufsi calculation
74c7f37 FHSS: function to check if remaining slots is negative
654dd44 Merge pull request ARMmbed#1879 from ARMmbed/IOTTHD-2752
1ef5062 Address registration fix (ARMmbed#1882)
4c74f96 FHSS unit tests: Fixed tr51 tests
4cf7fdf FHSS: fixed tr51 channel table size
a1d8b3d FHSS unit tests: Fixed tr51 tests
7e622b3 FHSS: Allocate TR51 channel tables when FHSS enabled
e7a8d45 link-local multicast group registration (ARMmbed#1880)
d4c95f2 Clear COAP retransmissions in partition change (ARMmbed#1872)
bf36b91 Added generation of mac address if not set
990f4f1 Merge pull request ARMmbed#1877 from ARMmbed/dhcpv6_server_fix
6cbe7c5 Fix wrong link type to correct one DHCPV6_DUID_HARDWARE_EUI64_TYPE ->  DHCPV6_DUID_HARDWARE_EUI48_TYPE
fd6c1c8 Merge pull request ARMmbed#1876 from ARMmbed/thread_dhcpv6_server_trace_fix
3f83bd1 Added trace about prefered timeout for fix CI test
4331ea1 added support for multicast forwarding
7327652 bbr start called after seq number updated. (ARMmbed#1875)
98be8b2 Merge pull request ARMmbed#1868 from ARMmbed/IOTTHD-2863
23296c1 Merge pull request ARMmbed#1871 from ARMmbed/ws_config_handler
2188fd2 FHSS: Fixed negative remaining time in ufsi calculation
5b70440 announce reattach fix (ARMmbed#1873)
fc11a7a Merge pull request ARMmbed#1869 from ARMmbed/dhcpv6_server_update
a156355 WS PAN config message handler update
5e45c40 Thread dhcpv6 server update
fe9ba3b Wi-sun border router enable global prefix with DHCP address allocation.
6d2af0b Dhcpv6 server update
ab1260a added possibility to set next sequence number on PBBR. (ARMmbed#1867)
6679db4 WS bootstrap: traces to hop calculation
1cc4aff Merge pull request ARMmbed#1865 from ARMmbed/dhcpv6_client_ws_integration
c2d0e14 Enable wi-sun dhcp relay service.
70e56b1 Wi-sun DHCP client support and RPL prefix learn Callback
3389b46 Merge pull request ARMmbed#1866 from ARMmbed/dhcp_relay_fix
9aa6a95 Address registration changes for MED and SED (ARMmbed#1863)
16359eb Fix compile problem
1472b02 Removed duplcate line.
67ea075 Wi-SUN node init API change
b906861 Fixed DHCP relay bugs
bcffa5f FHSS: Fixed setting parent synch
e0276f6 FHSS: Configure in critical state
d74d5ff Merge pull request ARMmbed#1862 from ARMmbed/dhcp_client_generic_update
999bbc3 Copied memory fix from PR ARMmbed#1858
6500fcf DHCPv6 client Generic API for all stacks.
2ec9b6e Fix memory leak if dhcp renew send fails (ARMmbed#1858)
cbf99e7 Merge pull request ARMmbed#1861 from ARMmbed/ws_dhcp_support
08155b1 DHCPv6 service relay support
62812ab Libdhcpv6 Relay support
0eea30d delay Join_ent.ntf sending by 50 ms (ARMmbed#1860)
dac1d99 Merge pull request ARMmbed#1857 from ARMmbed/mac_enhanced_ack
b819fa8 Fix bbr start
514bb58 Merge pull request ARMmbed#1836 from ARMmbed/IOTTHD-2828
b074d0e Merge pull request ARMmbed#1845 from ARMmbed/IOTTHD-2839
20b5e57 Enhanced ACK tx fix
caf53d1 Merge pull request ARMmbed#1846 from ARMmbed/IOTTHD-2824
9b5e1c9 added payload length for Max child timeout tlv (ARMmbed#1856)
3c1864b address registration tlv check only for MTDs (ARMmbed#1855)
942d8e7 Diagnostic TLV added (ARMmbed#1854)
f2b38cf Check for mandatory Address registration tlv (ARMmbed#1853)
ce8d5b7 Valdations for Child update response added: (ARMmbed#1852)
e373545 Added Wi-SUN border router implementation
1f7c040 Merge pull request ARMmbed#1849 from ARMmbed/mac_asynch_fix
33afc9c FHSS: Added force synch boolean in parent set
5ddf5fa FHSS: prevent unicast on broadcast channel in tx handle
f17e6cd FHSS: Check TX/RX slot in tx handle
3082407 FHSS: implemented divide function
cebdaf4 Update stoip6 prototype to tests (ARMmbed#1851)
279c708 Trig a new back off period for pending TX if ACK tx is active
f1e7f06 Fix broken unit test.
1d8e3d7 MAC Asynch Data request update
cca9879 Merge pull request ARMmbed#1848 from ARMmbed/iotthd-2788
fe84585 Merge pull request ARMmbed#1847 from ARMmbed/eAck_mac_timer_fix
c1c5926 Dynamic parent selection delay based on trickle i_min.
68bad00 MAC: Stop active MAC timer before sending enhanced Ack
4a204bd MAC: set new MAC channel only if RF returns success
9d79ca9 FHSS: Added minimum synch interval
a35b702 FHSS: Increased min random of tx poll
db6dc6b MAC: Fixed enhanced ack TX time
5836b50 Merge pull request ARMmbed#1844 from ARMmbed/fix_ack_tx_fail_handling
d9e2ea6 MAC: Fixed handling of the failed Ack transmission
f43e285 Merge pull request ARMmbed#1843 from ARMmbed/address_reg_fix
0b4aa78 Parent Broadcast synch fix and TR51CF slot define fix
d6b4111 fix for valgrind reported error. (ARMmbed#1842)
8160d86 Added support for wisun multicast
1f4625e Call ws_secondary_parent_update inside primary set for reduce code size.
35b39f4 Merge pull request ARMmbed#1840 from ARMmbed/address_register
cfb2426 bbr memory leak during keep alive fixed. (ARMmbed#1839)
a8aafe4 Stub update
c244ad8 Enable 6-bit path control for give better compare between parent's.
eac63d2 FHSS and address registration update
c14343a valgrind and coverity reported errors fixed. (ARMmbed#1838)
9b14b83 additional thread prefixes in network data (ARMmbed#1833)
fb07086 Merge pull request ARMmbed#1837 from ARMmbed/llc_parent_synch
bf55180 Fixed failing unit test.
5e7a493 Update brodcast synch when here data from primary parent.
9e22831 Merge pull request ARMmbed#1834 from ARMmbed/enable_bt_ie_ulad
02af1a8 Thread extension commission updates (ARMmbed#1835)
dd082a0 Fix ws_llc_data_send unit test validation with new bt-ie lement length.
ae6554d Revert "Disable wi-sun features temporary".
927c329 Thread extension commissioning updates (ARMmbed#1828)
160ef0a Merge pull request ARMmbed#1829 from ARMmbed/IOTTHD-2821
576f2bf FHSS unit tests: Fixed channel function variable name
f33d163 WS: Removed backward compatibility defines
9c88a7f WS: fixed overwriting fixed channel with random
efd77f1 Clean thread_routing test stub (ARMmbed#1832)
2b8a011 Remove recursion from MAC layer ARMmbed#2 (ARMmbed#1830)
2f5a2ce Remove recursion from MAC layer (ARMmbed#1826)
06e3243 propagation of reserved bit in network data implemented. (ARMmbed#1827)
e7fa605 Merge pull request ARMmbed#1823 from ARMmbed/IOTTHD-2782
89001d1 Merge pull request ARMmbed#1825 from ARMmbed/IOTTHD-2816
9c78a95 MAC: Static CSMA period when using FHSS
3d1c8a0 FHSS: Stop unicast schedule when fixed channel or no dwell interval
d6086d0 Merge pull request ARMmbed#1818 from ARMmbed/nud_statemachine
a2b8491 Wi-sun Border router and NUD process updates
60e1545 Disable wi-sun features temporary
7e3c16c Wi-sun LLC Data request IE update
a27076f Fixed Pan informatio IE read bug
bb1aeac Fixed Fragmentation init failure problem.
02fce65 Parent select and pan config handler update
a2ef56a wi-sun update:
ca9fd4f Disabled Wi-sun border router version number update.
231daf7 Wi-sun NUD State Machine update
e7d551c Commissioner fixes (ARMmbed#1824)
62ffba3 keepalive for on mesh commissioner sent to leader aloc. (ARMmbed#1821)
f846823 Coverity reported error fixes: (ARMmbed#1822)
708e8d3 Merge pull request ARMmbed#1820 from ARMmbed/IOTTHD-2735
b2e7efc FHSS WS: Get MAC channel from FHSS when starting RF interface
fe2b448 Merge pull request ARMmbed#1819 from ARMmbed/fixed_bad_channel
7c13c3c commissioner updates. (ARMmbed#1812)
4c7d4f2 FHSS: Fixed bad channel check with fixed channel configuration
40b2eec Set global address flag to follow address state
b46eacc updated channel plan settings
4a1d595 Merge pull request ARMmbed#1815 from ARMmbed/iotthd-2745
5a37354 Primary Parent Update Hook to Wi-sun for synch broadcast schedule.
98b0e23 Fix memory leak when advertising route (ARMmbed#1814)
b5d276d refactored trickkle running checks
61ff793 Merge pull request ARMmbed#1807 from ARMmbed/rpl_parent_candidate
a7a1ab3 Updated to NUD probability from 10% to 1%.
89b8eeb Merge pull request ARMmbed#1810 from ARMmbed/IOTTHD-2734
b99d497 Modify NUD operation propability.
4bb8b54 Wi-sun Probe update
2183869 FHSS Ack tx done fix
fb4309d Mac Asynch and Ack validation update
2695601 FHSS parent synch fix.
b50abb0 RPL, FHSS and Wisun Update
a40e012 Check MAC status when purging indirect queue (ARMmbed#1811)
b68f394 WS bootstrap: Updated channel function set apis
42b2e7c Unit tests: channel function tests updated
b6236f9 WS bootstrap: Separated unicast and broadcast channel functions
6fe5ea5 Fix Thread DHCPv6-client memory leak (ARMmbed#1808)
bbc0d77 WS bootstrap: renamed channel_function to uc_channel_function
7dbad5e Parent sends full network data in response to data request (ARMmbed#1806)
cbe45b4 Merge pull request ARMmbed#1805 from ARMmbed/IOTTHD-2733
8956418 FHSS unit tests: Fixed broadcast handler tests
e7aa893 FHSS: Define to make outdated application work
9fd804b FHSS: Separated broadcast schedule channel function
327c310 Merge pull request ARMmbed#1804 from ARMmbed/fhss_ws_cs
e7ae8ce FHSS unit tests: Fixed missing platform stub
9cbd2b7 FHSS: added critical states
51f8328 Merge pull request ARMmbed#1803 from ARMmbed/IOTTHD-2736
537b60d FHSS unit tests: Fixed missing stub
43bc93d FHSS: Poll TX queue on every TX slot
c6e2457 Merge pull request ARMmbed#1802 from ARMmbed/asynch_channel_plan_filter
c851b07 Wi-sun bootstrap verify channel plan component against own configured ones.
1bdc4e6 Merge pull request ARMmbed#1800 from ARMmbed/IOTTHD-2504
6ed53e6 FHSS unit tests: Fixed timestamp stub return value
f43b3af FHSS unit tests: Fixed missing timestamp read function
f27a29c Merge pull request ARMmbed#1801 from ARMmbed/rf_driver_start_fix
c2bc561 Add MAC TX active FLAG to active before write function return value.
08d3e12 Merge pull request ARMmbed#1799 from ARMmbed/several_bug_fixs
65d96c4 FHSS: Fixed calculating UFSI
eedd746 FHSS: Compensate delay from platform driver when starting timeout
7d537ea FHSS: Read timestamp from MAC/PHY instead of using FHSS own timestamp
0206fc8 FHSS: Added callbacks for debugging purposes
63d8a41 Added Packet rebuild for extented driver after Driver Busy error.
607da3e Bug fixes:
f39312b REED and FED links removed (ARMmbed#1796)
b162d7b added support for modifying fhss configuration after initial startup
88e239d Merge pull request ARMmbed#1798 from ARMmbed/enhanced_ack_send
11fb5fa MAC Enhanced ACK TX fix:
08d5584 Merge pull request ARMmbed#1794 from ARMmbed/rpl_address_learn
5bbc86f fed advertisement fix (ARMmbed#1795)
a48254c Wi-sun Address registration update:
5db8037 RPL Local Repair, SLAAC prefix update and Dodag Prefix proces update:
b3139c8 Adjust Thread BBR neighbor/destination cache size (ARMmbed#1793)
21deb75 Registered neighbour cache entries are not reregistered. (ARMmbed#1792)
d93b9e4 Added empty function for ws public api
1a09af7 Updated management api
f52289f Merge pull request ARMmbed#1790 from ARMmbed/ws_llc_neigh_update_fix
b954e56 WS neighbor refresh update
0b2736f Thread address registration improvements (ARMmbed#1779)
931a17d Merge pull request ARMmbed#1789 from ARMmbed/iotthd-2693
90c6a8a Removed unnecessary Decrypt Fail debug trace.
b425f4b Adapatation neighbor validation update:
06255ee Merge pull request ARMmbed#1787 from ARMmbed/iottthd-2692
e98c182 MAC report unknow neighbour COMM status at Packet TX process not detetct destination.
be0aa9c Merge pull request ARMmbed#1786 from ARMmbed/iotthd-2695
42122b7 Added support to report Driver if FHSS return unknow neighbor error.
eb5ba30 Fixed Driver Tx done callback missing error return values.
1a9acbd Wi-SUN fhss refactor
0ca78d6 Merge pull request ARMmbed#1784 from ARMmbed/iotthd-2533
9b37c24 Fixed Unicast and Broadcast MAC packet request types.
0ddff57 Fix PAN-id read bug when received 2015 frame version's.

git-subtree-dir: features/nanostack/sal-stack-nanostack
git-subtree-split: ccd30a3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants