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

Fix uart tx test #1801

Closed
wants to merge 1 commit into from
Closed

Fix uart tx test #1801

wants to merge 1 commit into from

Conversation

LMESTM
Copy link
Contributor

@LMESTM LMESTM commented May 27, 2016

2 commits in this pull request:
1 fix for STM32 platforms
1 extra test for UART tx complete transmission

@LMESTM
Copy link
Contributor Author

LMESTM commented May 27, 2016

Adding reports. Report for non regression of Tx complete fix on ST:
reports_TxCompleteTesting.zip
Report on MBED39 test runs
report_Mbed39.zip

@bridadan
Copy link
Contributor

@mbed-bot: TEST

HOST_OSES=ALL
BUILD_TOOLCHAINS=ALL
TARGETS=ALL

@mbed-bot
Copy link

[Build 411]
FAILURE: Something went wrong when building and testing.

@LMESTM
Copy link
Contributor Author

LMESTM commented May 30, 2016

how can I check what's wrong with continuous-integration/mbedci ?

@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 1, 2016

@bridadan how can I check what's wrong with continuous-integration/mbedci ?

out_str_stripped = out_str.strip(strip_chars)

if out_str_stripped != "123456789":
selftest.notify("HOST: Unexpected output. '123456789' Expected' but received '%s'" % out_str_stripped)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like there's a stray ' after Expected

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch - I'll solve this if we agree the test is useful

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've rebased the fix, so corrected also the ' typo

@bridadan
Copy link
Contributor

bridadan commented Jun 1, 2016

Hi @LMESTM sorry for not getting back to you sooner. continuous-integration/mbedci is our private CI bot, so unfortunately you can't view the results publicly. Usually the failure is caused be existing issues in the code base, so it's not necessarily a problem with your PR.

Though in this case, it looks like a good amount of platforms aren't passing your Serial Complete test. Am I right in saying that the putc function is now completely blocking for the targets that you've implemented in this PR? Meaning the putc function won't return until the character has left the buffer?

I'm not sure if that's something we actually want to do by default. Though I think having a function to see if the serial tx is complete would be very useful to have, or to use this function during a blocking buffer flush.

What do you think, @0xc0170 ?

@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 1, 2016

HI @bridadan and @0xc0170

I think the putc function is supposed to be a synchrnonous API, meaning that it will return only when complete, otherwise this may lead to unwanted behaviors as shown in test example (printf then sleep is supposed to sleep only after sending the whole printf right ?)

I agree that this is not efficient, (also not efficient to send byte by byte BTW). So I guess that's the reason for the ongoing implementation of asynchronous serial APIs with a callback to tell you when it's complete.

@bcostm
Copy link
Contributor

bcostm commented Jun 2, 2016

OK with me to add the check of the "end of transmit" after each byte.

@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 3, 2016

@bridadan @0xc0170
Hi again: the test is pretty basic: printf then sleep. I think mbed target should be reliable on this.
I've rebased on top of master. If you still think that the test is problematic, I can split this in 2 separate pull requests so that we can get STM32 commit applied and then discuss the new test separately.

@@ -469,6 +469,7 @@ void serial_putc(serial_t *obj, int c) {
USART_TypeDef *uart = (USART_TypeDef *)(obj->uart);
while (!serial_writable(obj));
uart->TDR = (uint32_t)(c & (uint16_t)0xFF);
while(!serial_TxComplete(obj));
Copy link
Contributor

@0xc0170 0xc0170 Jun 3, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tab used here? (misaligned)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry about that - Solved now - I changed my editor settings since then

@0xc0170
Copy link
Contributor

0xc0170 commented Jun 3, 2016

If you still think that the test is problematic, I can split this in 2 separate pull requests so that we can get STM32 commit applied and then discuss the new test separately.

Please do split those, remove from here the new test, and send new PR. Thanks

@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 3, 2016

@0xc0170 done as proposed. New PR (and issue) for the new test are on the way

As explained in UART of STM32 reference manuals:
After writing the last data into the USART_DR register,
it is mandatory to wait for TC=1 before disabling the USART or causing
the microcontroller to enter the low-power mode.
@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 7, 2016

@0xc0170 @Sissors @adamgreen please consider this patch for merging.

This may have some impact on performances as long as sending bytes by bytes over serial, but this is the only way to be safe and is mandated in ST reference manual:
" After writing the last data into the USART_DR register, it is mandatory to wait for TC=1
before disabling the USART or causing the microcontroller to enter the low-power mode"
The performance aspect is addressed by ASYNC API which allows to send a buffer of data instead of single bytes and which gets the TC (Transmission Complete) flag with an int'errupt -s o no CPU load waste.

@adamgreen
Copy link
Contributor

" After writing the last data into the USART_DR register, it is mandatory to wait for TC=1
before disabling the USART or causing the microcontroller to enter the low-power mode"

Of course a person could also argue that it mandates a change in the sleep API and not the serial API. The sleep API could be modified to wait for any enabled UARTs which have data yet to transmit.

@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 7, 2016

@adamgreen
yes that's right, this is a possible evolution. If the sleep API later evolves to let drivers like UART inform sleep code whether sleeping is safe or not, then we can change the serial code again.
For now, I'd like to have the tests passing ok with the available fix. What do you think ?

@bridadan
Copy link
Contributor

bridadan commented Jun 7, 2016

@LMESTM I would like to propose a different option.

Could we instead use your Serial Complete functions you've added and use those to properly implement a blocking buffer flush function (fflush)? That way we don't change the existing implementation but we provide a mechanism to explicitly block until the buffers are empty?

@0xc0170
Copy link
Contributor

0xc0170 commented Jun 7, 2016

The sleep API could be improved, in some cases you can just provide some time for the system to respond (there are use cases where you don't know how long the packet/data transfer can take) or just check what is ongoing within a system).

You can provide to check if UART has finished into sleep API, that would be much better than to affect every putc write. Do all these target provide FIFO? I would assume some do, and putc could take an advantage of those aka push as much as you can to the hw. Sleep would wait for FIFO to get empty if sleep mode which is going to get activated do not keep serial active.

Let me know what do you think. I'll close this PR.

@0xc0170 0xc0170 closed this Jun 7, 2016
@0xc0170
Copy link
Contributor

0xc0170 commented Jun 7, 2016

One addition: this discussion pinpointed there is a potential for a status function. Had a quick look at cmsis-driver which provides one https://www.keil.com/pack/doc/CMSIS/Driver/html/group__usart__interface__gr.html#ga1e8fdd54294b587438b2b72f4dbde004 . we introduced something similar to asynch api (serial_active()), which is not exactly the status. I imagine a status would return that tx is still transmitting (fifo not empty, or shift register). And sleep would use this API.

Please @LMESTM create an issue describing this, we would consider this for future.

@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 7, 2016

All, I'd have to admit I'm disappointed that this thread is closed before we get an agreement.
I'd be fully happy to reject my proposal if there is another PR available on the table - but it's not the case. We're leaving now our STM targets in an unsteady state with only vague ideas on how to solve the problem - I have other activities ongoing and don't have time now to look at your proposals now whereas my PR was validated internally and does not cause any regression.

@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 7, 2016

Also your proposal on sleep will not cover cases like serial change of baudrate, serial deinit, change of system clock, etc ...
So a note to whoever will make the changes later (maybe myself when I'm done with ongoing dev), many more changes are required in serial on top of the proposed ones in sleep to make sure we check the Tx is complete.

@0xc0170
Copy link
Contributor

0xc0170 commented Jun 7, 2016

Also your proposal on sleep will not cover cases like serial change of baudrate, serial deinit, change of system clock, etc ...

Yes, this must be handled by an application at the moment (sleep just goes to sleep for most platforms). I don't understand how sleep is connected to change of baudrates, etc. We were discussing the TX complete action for stdout serial.

All, I'd have to admit I'm disappointed that this thread is closed before we get an agreement.

You can reopen it anytime, I closed this as 3 people agreed the serial putc should not have this behavior. you can push more commits/rebase it and reopen. It's not locked, just closed.

@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 7, 2016

I don't understand how sleep is connected to change of baudrates, etc. We were discussing the TX
complete action for stdout serial.

Not only. My PR is for any generic usage of putc in serial_api.c I would expect that anyone could use it, not only for stdout.
It is not related only to sleep, I created the sleep example because is sounded a good example to me. But many other tests will fail, like
MBED_38 which contains sequence::
pc.printf(); // could be pc.putc()
del pc:
Another test that would fail is:
pc.printf(); //could be pc.putc()
pc.baud(change_rate);

So someone implementing a protocol over serial (BT chipset or any other ..) on a target that doesn't support ASYNC API, may face some of the issues mentioned above.

I don't know how to re-open this, but please consider this PR, even ifas a temporary fix until a more optimized solution is found and replaces this one. I'd really prefer a stable solution in place for now.

I rebased yesterday, can rebase again any time.

@bridadan
Copy link
Contributor

bridadan commented Jun 7, 2016

@LMESTM Instead of modifying the behavior of the existing apis, would providing a function to explicitly wait while the buffers are emptied be a solution? We could augment the current tests to use this function.

This kind of function has been discussed before but I don't think anyone has looked in to how it would be implemented. There are functions in the standard library (ex. fflush, or perhaps sync) that allow you to flush buffers, but I don't think these functions work correctly at the moment. Perhaps it would be possible to enable these functions with the HAL support you've added here?

EDIT: for example

pc.printf(); // could be pc.putc()
// Block until all data sent
fflush(//file handle associated with pc) // could be more appropriate standard function (sync?)
del pc;
pc.printf(); //could be pc.putc()
// Block until all data sent
fflush(//file handle associated with pc) // could be more appropriate standard function (sync?)
pc.baud(change_rate);

@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 7, 2016

@bridadan As far as I see that would make the changes and possible impacts on applications even more complex. The change I have proposed does not make any visible impact on API behavior and was tested ok on the complete STM32 family (and does not impact other targets).

To all:
I actually don't understand why this proposal raises so much concern ...

Let me try to clarify if I was not clear enough before.
The STM32 FIFO is only 1 byte, so the performance impact of my patch on applies on the last byte of the stream / string being sent.
Basically _ before my proposed patch _ most of the CPU time is being spent looping in:
while (!serial_writable(obj));
and _ after my proposed patch _ most of the CPU time is being spent looping in:
while(!serial_TxComplete(obj));
In every case, I think that the CPU is being wasted sending debug data over a slow interface.

The first thing that I would suggest to anyone which faces performances issue is : do not heavily rely on printf over serial as the main debug purpose - there are plenty of good debuggers supported with mbed. For the debug that you want to keep, do not hesitate to switch to at least 115200kbps instead of 9600.

@Sissors
Copy link
Contributor

Sissors commented Jun 7, 2016

Sure you can use a debugger, but the point of the online compiler is that you don't need to install a tool chain and hope it works. And for debuggers you always need those, while printf is universal for every MCU that is mbed supported (okay, almost all).

The issue is that every single target implements putc non-blocking. It makes sense to me to have an API function to see if it is done transmitting, but by making it blocking you are simply not following what every other target does, and as a result you break libraries such as BufferedSerial and actually pretty much every single library that uses TX interrupts. Of course you can say you can also use the async API, but besides my personal opinion that that API has some issues, there is still the problem that it will mean quite some programs won't work on STM devices anymore and/or are alot slower. Even simple code with some serial passthrough/loopback could run into issues.

And as you say your FIFO is only 1 byte, so even without an API change the worst something would need to do is add wait(10.0f/9600) before going into deepsleep.

@LMESTM
Copy link
Contributor Author

LMESTM commented Jun 7, 2016

@Sissors :

as a result you break libraries such as BufferedSerial and actually pretty much every single library that uses TX interrupts.

I frankly missed that I would break anything with my patch.
I'll make a trial with BufferedSerial and check the impact of my proposed patch.
So we can for now keep the PR closed - sorry for the noise.

And as you say your FIFO is only 1 byte, so even without an API change the worst something would need to do is add wait(1/9600) before going into deepsleep.

Ok let's add up delays here and there, starting with tests like MBED_38 (and MBED_39 if merged) ...

@Sissors
Copy link
Contributor

Sissors commented Jun 8, 2016

(Btw technically BufferedSerial and the likes probably still work, however they go from running interrupt based on the background, to permanently blocking everything from inside an interrupt until it is done sending.)

And just to be clear, overall I definately agree with you it would be good to have a method to know when it is save to change baudrate, enter deepsleep, etc. That is a good point, I just don't think making putc blocking is the answer.

@LMESTM LMESTM deleted the fix_uart_tx_test branch May 23, 2017 15:05
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.

None yet

7 participants