Skip to content

AT firmware >= 1.7.0 - treat data as OOB #109

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

Merged
merged 7 commits into from
Nov 1, 2018

Conversation

VeijoPesonen
Copy link
Contributor

To avoid AT recv() timeouts receiving data is handled as OOB.

To get the performance improvement PR ARMmbed/mbed-os#8598 needs to be also taken into use

} else if (!_parser.recv("%d:", &amount)) {
return;
}

pdu_len = sizeof(struct packet) + amount;

if ((_heap_usage + pdu_len) > MBED_CONF_ESP8266_SOCKET_BUFSIZE) {
MBED_WARNING(MBED_MAKE_ERROR(MBED_MODULE_DRIVER, MBED_ERROR_CODE_ENOBUFS), \
"ESP8266::_packet_handler(): \"esp8266.socket-bufsize\"-limit exceeded, packet dropped");
tr_debug("\"esp8266.socket-bufsize\"-limit exceeded, packet dropped");
Copy link
Contributor

Choose a reason for hiding this comment

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

Why these have been changed from MBED_WARNING to tr_debug()

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Based on @kjbracey-arm's comment about usage of MBED_WARNING.

@VeijoPesonen VeijoPesonen force-pushed the refactor-tcp_passive_data_as_oob branch from 32f8d11 to dedb846 Compare October 31, 2018 12:20
@VeijoPesonen VeijoPesonen requested a review from tommikas October 31, 2018 12:29
@VeijoPesonen VeijoPesonen force-pushed the refactor-tcp_passive_data_as_oob branch from dedb846 to e3aa71f Compare November 1, 2018 08:20
@VeijoPesonen
Copy link
Contributor Author

VeijoPesonen commented Nov 1, 2018

Test results

+--------------+---------------+-------------------------+---------------------------------------+--------+--------+---------+--------------------+
| target       | platform_name | test suite              | test case                             | passed | failed | result  | elapsed_time (sec) |
+--------------+---------------+-------------------------+---------------------------------------+--------+--------+---------+--------------------+
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | ASYNCHRONOUS_DNS                      | 1      | 0      | OK      | 0.26               |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | ASYNCHRONOUS_DNS_CACHE                | 1      | 0      | OK      | 0.61               |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | ASYNCHRONOUS_DNS_CANCEL               | 0      | 0      | SKIPPED | 0.0                |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | ASYNCHRONOUS_DNS_EXTERNAL_EVENT_QUEUE | 0      | 0      | SKIPPED | 0.0                |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | ASYNCHRONOUS_DNS_INVALID_HOST         | 0      | 0      | SKIPPED | 0.0                |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | ASYNCHRONOUS_DNS_NON_ASYNC_AND_ASYNC  | 0      | 0      | ERROR   | 0.0                |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | ASYNCHRONOUS_DNS_SIMULTANEOUS         | 1      | 0      | OK      | 0.8                |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | ASYNCHRONOUS_DNS_SIMULTANEOUS_CACHE   | 1      | 0      | OK      | 0.68               |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | ASYNCHRONOUS_DNS_SIMULTANEOUS_REPEAT  | 0      | 0      | SKIPPED | 0.0                |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | ASYNCHRONOUS_DNS_TIMEOUTS             | 0      | 0      | SKIPPED | 0.0                |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | SYNCHRONOUS_DNS                       | 0      | 0      | SKIPPED | 0.0                |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | SYNCHRONOUS_DNS_INVALID               | 0      | 0      | SKIPPED | 0.0                |
| K64F-GCC_ARM | K64F          | tests-netsocket-dns     | SYNCHRONOUS_DNS_MULTIPLE              | 0      | 0      | SKIPPED | 0.0                |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_CONNECT_INVALID             | 1      | 0      | OK      | 0.22               |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_ECHOTEST                    | 1      | 0      | OK      | 3.47               |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_ECHOTEST_BURST              | 1      | 0      | OK      | 33.03              |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_ECHOTEST_BURST_NONBLOCK     | 1      | 0      | OK      | 32.54              |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_ECHOTEST_NONBLOCK           | 1      | 0      | OK      | 5.5                |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_ENDPOINT_CLOSE              | 1      | 0      | OK      | 0.92               |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_OPEN_CLOSE_REPEAT           | 1      | 0      | OK      | 0.06               |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_OPEN_LIMIT                  | 1      | 0      | OK      | 0.2                |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_RECV_100K                   | 1      | 0      | OK      | 11.79              |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_RECV_100K_NONBLOCK          | 1      | 0      | OK      | 11.74              |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_RECV_TIMEOUT                | 1      | 0      | OK      | 1.33               |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_SEND_REPEAT                 | 1      | 0      | OK      | 77.29              |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_SEND_TIMEOUT                | 1      | 0      | OK      | 0.92               |
| K64F-GCC_ARM | K64F          | tests-netsocket-tcp     | TCPSOCKET_THREAD_PER_SOCKET_SAFETY    | 1      | 0      | OK      | 3.46               |
| K64F-GCC_ARM | K64F          | tests-netsocket-udp     | UDPSOCKET_ECHOTEST                    | 1      | 0      | OK      | 3.32               |
| K64F-GCC_ARM | K64F          | tests-netsocket-udp     | UDPSOCKET_ECHOTEST_BURST              | 1      | 0      | OK      | 28.8               |
| K64F-GCC_ARM | K64F          | tests-netsocket-udp     | UDPSOCKET_ECHOTEST_BURST_NONBLOCK     | 1      | 0      | OK      | 27.99              |
| K64F-GCC_ARM | K64F          | tests-netsocket-udp     | UDPSOCKET_ECHOTEST_NONBLOCK           | 1      | 0      | OK      | 5.58               |
| K64F-GCC_ARM | K64F          | tests-netsocket-udp     | UDPSOCKET_OPEN_CLOSE_REPEAT           | 1      | 0      | OK      | 0.06               |
| K64F-GCC_ARM | K64F          | tests-netsocket-udp     | UDPSOCKET_OPEN_LIMIT                  | 1      | 0      | OK      | 0.22               |
| K64F-GCC_ARM | K64F          | tests-netsocket-udp     | UDPSOCKET_SENDTO_INVALID              | 1      | 0      | OK      | 0.09               |
| K64F-GCC_ARM | K64F          | tests-netsocket-udp     | UDPSOCKET_SENDTO_REPEAT               | 1      | 0      | OK      | 0.82               |
| K64F-GCC_ARM | K64F          | tests-netsocket-udp     | UDPSOCKET_SENDTO_TIMEOUT              | 1      | 0      | OK      | 0.15               |
| K64F-GCC_ARM | K64F          | tests-network-interface | NETWORKINTERFACE_CONN_DISC_REPEAT     | 1      | 0      | OK      | 22.25              |
| K64F-GCC_ARM | K64F          | tests-network-interface | NETWORKINTERFACE_STATUS               | 1      | 0      | OK      | 23.43              |
| K64F-GCC_ARM | K64F          | tests-network-interface | NETWORKINTERFACE_STATUS_GET           | 1      | 0      | OK      | 24.22              |
| K64F-GCC_ARM | K64F          | tests-network-interface | NETWORKINTERFACE_STATUS_NONBLOCK      | 1      | 0      | OK      | 26.23              |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONNECT                          | 0      | 1      | FAIL    | 22.16              |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONNECT-DISCONNECT-REPEAT        | 0      | 1      | FAIL    | 62.42              |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONNECT-NOCREDENTIALS            | 1      | 0      | OK      | 0.05               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONNECT-PARAMS-CHANNEL           | 1      | 0      | OK      | 0.11               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONNECT-PARAMS-CHANNEL-FAIL      | 1      | 0      | OK      | 0.11               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONNECT-PARAMS-NULL              | 1      | 0      | OK      | 0.05               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONNECT-PARAMS-VALID-SECURE      | 1      | 0      | OK      | 4.18               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONNECT-PARAMS-VALID-UNSECURE    | 1      | 0      | OK      | 7.12               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONNECT-SECURE                   | 1      | 0      | OK      | 4.17               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONNECT-SECURE-FAIL              | 1      | 0      | OK      | 14.17              |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-CONSTRUCTOR                      | 1      | 0      | OK      | 0.05               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-GET-RSSI                         | 1      | 0      | OK      | 6.98               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-SCAN                             | 0      | 2      | FAIL    | 17.5               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-SCAN-NULL                        | 0      | 1      | FAIL    | 17.45              |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-SET-CHANNEL                      | 1      | 0      | OK      | 0.09               |
| K64F-GCC_ARM | K64F          | tests-network-wifi      | WIFI-SET-CREDENTIAL                   | 1      | 0      | OK      | 0.05               |
+--------------+---------------+-------------------------+---------------------------------------+--------+--------+---------+--------------------+
mbedgt: test case results: 4 FAIL / 8 SKIPPED / 43 OK / 1 ERROR
mbedgt: completed in 726.84 sec

Conclusions

  • Test case timeouts could be reduced back to 480s from 960s, i.e., lets revert commit ARMmbed/mbed-os@88eea6a
  • continue handler should also be used with DNS test cases.

When trying to pull data from the ESP8266 handle it as OOB to prevent
timeouts.
@VeijoPesonen VeijoPesonen force-pushed the refactor-tcp_passive_data_as_oob branch from e3aa71f to 7cd0a99 Compare November 1, 2018 12:54
@VeijoPesonen
Copy link
Contributor Author

Squashed.

@VeijoPesonen VeijoPesonen merged commit c9bba6f into master Nov 1, 2018
@VeijoPesonen VeijoPesonen deleted the refactor-tcp_passive_data_as_oob branch November 1, 2018 12:54
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.

2 participants