Commit graph

12987 commits

Author SHA1 Message Date
Peter 432f12e156 Several changes to fix bugs and harden mqtt code.
1. The PT_MQTT_WAIT_SEND() macro has several issues:

- It does not check the return value from process_post(), which
  sometimes returns an error code. See next issue.

- Each time the macro is called, is posts an event to itself. The idea
seems to be that the event should be absorbed by the macro itself, so
when the macro terminates there is NOT a net growth of the event
queue. This does not work.  The reason is that the
PROCESS_WAIT_EVENT() sometimes absorbs a broadcast event instead of
its own event, and then the number of events in the event queue
increases. This leads to event explosions and overflow in the event
queue.

- The macro cannot call PT_EXIT(). This will expand to a return
statement, causing a return from the function calling the macro
(mqtt_process), rather then exiting the protothread (which was
probably the intention). Protothreads have lexical scope...

Fixes: 1) Check return value from process_post() 2) Loop until the
event posted to itself is absorbed (rather than just absorbing the
next event) 3) Replace PT_EXIT() with PT_INIT() (doesn't really make a
difference, could probably just be removed).

2. Change order of the checks in the protothread-calling loops in
mqtt_process().  Reason: When a protothread has been cleared by
PT_MQTT_WAIT_SEND(), it will not return a value, so checking against
PT_EXITED does not make sense.

3. PT_MQTT_WRITE_BYTES() should initialize conn->out_write_pos to 0.
When PT_MQTT_WRITE_BYTES() does not finish (due to TCP disconnect for
instance), it may leave conn->out_write_pos with a non-zero
value. Next time PT_MQTT_WRITE_BYTES() is called, it will take data
from the wrong place.

4. Put MQTT_CONN_STATE_ABORT_IMMEDIATE before
MQTT_CONN_STATE_NOT_CONNECTED in the enum list, so that the check
if(conn->state > MQTT_CONN_STATE_NOT_CONNECTED) in mqtt_connect()
fails when in state MQTT_CONN_STATE_ABORT_IMMEDIATE. Otherwise, it
will deadlock and not reattempt connections while in this state.
2017-03-21 16:43:15 +01:00
Wojciech Nizinski 5a0d085451 native-border-router: fix for disappearing timer 'uip_ds6_timer_periodic'
When UIP_ND6_SEND_NS is enabled, I've noticed that unreachable
neighbours still remains in REACHABLE state even if lifetime
(nbr->reachable) expired.

During network init 'tcpip_process' is scheduling
'uip_ds6_timer_periodic' is to tick every 100ms and make necessary
expirations.

When MAC addres is received from slip-radio (from 'etimer_process'
context), network is "reinitialized" and timer 'uip_ds6_timer_periodic'
is set again with wrong process.
2017-03-21 13:13:10 +01:00
Harald Pichler 0e861e76a3 Merge branch 'master' of https://github.com/osdomotics/osd-contiki 2017-03-18 20:43:10 +01:00
Harald Pichler 918b20f3cf set loop to 30 2017-03-18 20:42:47 +01:00
George Oikonomou 99402348eb Merge pull request #2147 from g-oikonomou/bugfix/1972
Add missing variable declaration
2017-03-18 17:23:41 +00:00
Oliver Schmidt 356814fe9c Merge pull request #2146 from oliverschmidt/slip
Add SLIP support to retro platforms.
2017-03-18 15:56:06 +01:00
George Oikonomou 739b901e0d Add missing variable declaration
#1972 removed the declaration of `i` from various locations. In one of those locations it is still needed. This commit puts it back
2017-03-18 14:01:10 +00:00
George Oikonomou 758d9aa168 Merge pull request #1972 from MohamedSeliem/patch-11
update httpd_cgi to enable the compilation of webserver-ipv6 example
2017-03-18 13:50:52 +00:00
Oliver Schmidt 7f3fcbd8e7 Made it somewhat more obvious that this is SLIP-only. 2017-03-18 14:19:36 +01:00
George Oikonomou dc782732e0 Merge pull request #2132 from JoaoS/energest_avr_rss2
add CPU energest measurements that were lacking in this platform
2017-03-18 13:17:51 +00:00
Oliver Schmidt a0134ff35e Beautified SLIP macros. 2017-03-18 14:06:11 +01:00
Oliver Schmidt 79855ff02d Beautified SLIP macros. 2017-03-18 14:05:36 +01:00
George Oikonomou 6d51c1a9f9 Merge pull request #2138 from atiselsts/bugfix/cc26xx/limited_busywait
CC26xx IEEE mode driver fixes and robustness improvements
2017-03-17 23:09:11 +00:00
George Oikonomou 905356da13 Merge pull request #2093 from thomas-blank/fix-mqtt-connection-refused
Fix Bug in MQTT App: Refused Connections should not be pursued.
2017-03-17 23:08:45 +00:00
George Oikonomou 21d6abe30b Merge pull request #2139 from atiselsts/sensortag-i2c/limited_busywait
CC26xx SensorTag I2C: add and use LIMITED_BUSYWAIT macro
2017-03-17 23:04:19 +00:00
George Oikonomou b91448dfa4 Merge pull request #1348 from g-oikonomou/bugfix/cc26xx/wait-for-rssi-valid
Wait for a valid RSSI reading in CC13xx/CC26xx RF drivers
2017-03-17 22:52:51 +00:00
George Oikonomou 7e6d5c2971 Don't force RPL MOP configuration in contiki-default-conf.h
rpl-private.h handles the default MOP correctly, whereas the block in `contiki-default-conf.h` is not only redundant but also fails to handle situations where RPL multicast is required.
2017-03-17 22:33:17 +00:00
George Oikonomou fbb682ae15 Merge pull request #2144 from MohamedSeliem/patch-12
fix a macro related to multicast, which are not user configuration
2017-03-17 22:19:49 +00:00
Ralf Schlatterbeck 3545f1fab5 Update README and LICENSE
Add comments about new Github Terms of Service (new since 2017-03-01)
and clarify the purpose of this project, point to LICENSE file in
README.md
2017-03-17 19:32:51 +01:00
Mohamed Seliem 08b12f2346 fix a macro related to multicast, which are not user configuration
fix a macro related to multicast, which are not user configuration
- RPL_CONF_MULTICAST      -> RPL_WITH_MULTICAST
2017-03-17 20:21:56 +02:00
Atis Elsts a0a2881ab0 CC26xx SensorTag I2C: add and use LIMITED_BUSYWAIT macro 2017-03-14 18:52:10 +00:00
Atis Elsts c850bae186 CC26xx IEEE mode: introduce and use LIMITED_BUSYWAIT macro; avoids watchdog reboots in cases when the radio fails to turn off 2017-03-14 18:42:09 +00:00
Atis Elsts 3b090d97c7 CC26xx IEEE mode: more robust radio timer handling: do not crash the system in case the radio timer failed to start; allow the overflow checker to be called when the radio is off 2017-03-14 18:41:05 +00:00
Atis Elsts dbd9d32daf CC26xx RF core: don't bail out from restarting the radio timer if just stopping it failed 2017-03-14 18:36:23 +00:00
root cc4aa440a0 moved energest init to after the rtimer init 2017-03-13 13:54:40 +00:00
Nicolas Tsiftes b756841522 Merge pull request #2102 from yatch/pr/rpl-leaf-only-debug-msg
RPL: move a debug message for RPL_LEAF_ONLY to a correct place
2017-03-10 15:11:31 +01:00
Thomas Blank ed1b27e40b Fix Bug in MQTT App: Refused Connections should not be pursued.
No means no.
2017-03-09 19:35:20 +01:00
Simon Duquennoy a24ac862de Merge pull request #2046 from yatch/pr/ringbufindex-bugfix
Bugfix in ringbufindex
2017-03-09 13:06:33 +01:00
Simon Duquennoy c5c1979d37 Merge pull request #2012 from cetic/jn516-hw-mac
JN516x: Add support for hardware MAC
2017-03-09 08:53:47 +01:00
Yasuyuki Tanaka 9acf177036 Enable TSCH regression testing 2017-03-09 16:47:54 +09:00
Yasuyuki Tanaka 2d42b91c7b ringbufindex: fix bugs of ringbufindex_peek_{put,get} 2017-03-09 16:47:24 +09:00
Yasuyuki Tanaka fbf9bb9e64 ringbufindex: explain return values by the APIs 2017-03-09 16:47:24 +09:00
Yasuyuki Tanaka baaa3da23e ringbufindex: fix a typo in a comment 2017-03-09 16:47:24 +09:00
Yasuyuki Tanaka 8df0f7dd01 Add a regression test for ringbufindex APIs 2017-03-09 16:47:24 +09:00
George Oikonomou b70677cce6 Merge pull request #2131 from t-than/master
Adjust CC26xx/CC13xx ADC reading for gain and offset
2017-03-08 22:18:57 +00:00
root 42cbe85a49 add CPU energest measurements that were lacking in this platform 2017-03-08 16:13:27 +00:00
Thanos Tsakiris dbcac67aab Normalize code style with uncrustify 2017-03-08 17:09:53 +02:00
andrewbrannan 0a85ccdc56 prevent the rpl root from dropping packets bound for outside the dodag while in NS mode 2017-03-08 14:34:25 +00:00
Laurent Deru da45afdf27 Add basic contikimac parameters for jn516x 2017-03-08 15:25:55 +01:00
Laurent Deru 79b06879fe Add to jn516x micromac driver full MAC layer support 2017-03-08 15:25:55 +01:00
Laurent Deru 9b6ba3c009 Make frame fcf creation and parsing standalone functions 2017-03-08 15:25:55 +01:00
Simon Duquennoy 0ceb45ee78 Merge pull request #2129 from simonduq/pr/update-jn516x-sdk
jn516x: update SDK
2017-03-08 15:20:31 +01:00
Thanos Tsakiris d80f362a2b Adjust CC26xx/CC13xx ADC reading for gain and offset 2017-03-08 15:55:28 +02:00
Simon Duquennoy 04bce213e6 jn516x: remove redundant declaration 2017-03-08 12:13:37 +01:00
Simon Duquennoy ae554aa256 jn516x: update SDK 2017-03-08 11:24:35 +01:00
Simon Duquennoy c37e7cfb0e Merge pull request #2108 from yatch/pr/poc-tsch-queue-flush-nbr-queue
TSCH: POC of a bug in tsch_queue_flush_nbr_queue()
2017-03-08 10:18:41 +01:00
Harald Pichler 2942868799 bugfix format 2017-03-03 11:45:46 +01:00
Harald Pichler 362eadd821 bugfix format 2017-03-03 11:40:13 +01:00
Harald Pichler 14baf5df6c bugfix format 2017-03-03 11:37:09 +01:00
Harald Pichler c954d22d81 bugfix format 2017-03-03 11:29:32 +01:00