Commit Graph

16 Commits

Author SHA1 Message Date
Flavio Santes 74980d02f4 mqtt: Add KNOWN_ISSUES file
The KNOWN_ISSUES file describes the following:

- "Unable to connect" and timeout errors
- Publisher and Subscriber limitations

Jira: ZEP-428
Jira: ZEP-632
Jira: ZEP-669

Change-Id: I10591a1fd14bccbeb0b7f3876549d29ddf8ffd1f
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-18 23:56:05 -05:00
Flavio Santes 29fc59e535 samples/net: Remove call to unref routine when net_send returns >= 0
According to last comments posted in ZEP-632, the unref routine must
be called only when net_send reports an error.

Jira: ZEP-632
Change-Id: I11553edf2c7d686c3e58617c2e05b6f18962955e
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-18 16:08:11 +00:00
Flavio Santes d7555dbe21 samples/net: Update README file w.r.t compiler warnings
README files are updated to include information about the
warnings displayed by the compiler.

Applications affected: DNS, NATS and MQTT.

Jira: ZEP-681

Change-Id: I482c3bbf37c5d9af3bb43b7ef5e58957bac2852a
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-11 17:43:16 +00:00
Flavio Santes b564ee6d76 mqtt: fix: Remove ping function call
Zephyr's MQTT does not implement a client's message queue.
So, a race-condition may be present when multiple messages are
received and processed.

We remove the pinreq function call to allow the mqtt_read function
to handle all the incoming messages.

CONFIG_IP_BUF_RX_SIZE is also updated to allow more messages to be
queued by the IP stack.

Jira: ZEP-669

Change-Id: Ie3ef55b17020e04c6540adf975a66fb004933914
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-10 14:41:00 +00:00
Flavio Santes 97e1beaf52 mqtt: fix: Eliminate redundant lines by using a common exit point
Use the goto statement to create a common exit point.
Remove redundant code when possible.

Change-Id: I2e22483c6fca4cb501b401164faf97d585ecec3c
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-10 14:41:00 +00:00
Flavio Santes f8b30eada7 mqtt: fix: pinreq handler function exit condition
The previous version of the pingreq handler function leaves
the semaphore blocked if an error condition is detected.

This patch solves the above described situation.

Change-Id: I4897609fae3f6523244892ae38ffdc5ae85f852d
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-10 14:41:00 +00:00
Flavio Santes df22e226f0 mqtt: FIX: add unsubscribe function and update return codes
MQTT unsubscribe message was not included previously. See ZEP-623.
So, this commit adds the handling functions for the MQTT UNSUBSCRIBE
message.

MQTT high-level API return codes are now unified to only return:
- 0 on success
- -EINVAL when invalid parameters are received
- -EIO on network error

API documentation is also updated to reflect the previous changes.

Jira: ZEP-623

Change-Id: I04d65c303762ce2ecaca73a4f222f0b77fe70503
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-05 23:13:58 +00:00
Flavio Santes 5280beffab mqtt: FIX: add MQTT unsubscribe/pingresp handling functions
The UNSUBSCRIBE and UNSUBACK functions are added. These functions allow
to create the UNSUBSCRIBE message and to read the UNSUBACK message,
repectively.

Another function to create the PINGRESP message was also added.

Jira: ZEP-623

Change-Id: Ic055e5762051cc9fb5d59a19c6eb974e34014d7e
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-05 23:13:58 +00:00
Flavio Santes 6503654e75 mqtt/subscriber: FIX: update README file
README file now has a Troubleshooting section. It could be useful during
tests.

Change-Id: I925812b9bd62ac00a2f404939c1c0b7d9cf4dfd2
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-05 23:13:58 +00:00
Flavio Santes fb080a3211 mqtt: FIX: update sample code to include MQTT UNSUBSCRIBE message
This patch demonstrates how to use the MQTT UNSUBSCRIBE message.

The publisher application is updated to fix a typo.

Jira: ZEP-623

Change-Id: I2c302c9f9320687fc39f36726394417db89f06d8
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-05 16:54:54 -05:00
Flavio Santes dde410e2a6 mqtt: FIX: update hack to handle dummy packet for TCP connect
The zero bytes hack to connect was deprecated by last
commits, so now we send 1 byte initialized to 0 :).

Jira: ZEP-612

Change-Id: I372964bbb102811d33509ad9386d9b360032a180
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-05 16:53:32 -05:00
Flavio Santes e22df46b61 samples/net: Add network-related functions to MQTT Subscriber
Add TCP/IPv4 routines to this sample.

This MQTT sample code demonstrates how to implement an MQTT subscriber
application.

To build this sample, the Paho's MQTT Packet Library is required. See
the README file.

For network application development, see:

* samples/net/echo_server
* samples/net/echo_client

Change-Id: Ibeb175ee2c4594b8961c60f2a0d25296c238401c
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-02 01:59:13 +00:00
Flavio Santes 8ba4f26e5f samples/net: Add network-related functions to MQTT Publisher
Add TCP/IPv4 routines to this sample.

This MQTT sample code demonstrates how to implement an MQTT publisher
application.

For network application development, see:

* samples/net/echo_server
* samples/net/echo_client

Change-Id: I13ac5ca1da2cd4d984fb595b599c3eab4edc5bf0
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-08-01 18:28:38 +00:00
Flavio Santes f61574eef7 samples/net/mqtt: Update README file for Debian/Ubuntu users
Debian and Ubuntu distributions come with an old version of the
mosquitto server that does not support MQTT 3.1.1.

So, the MQTT applications' README file is updated with this
information.

Change-Id: I1c76c757b5a15aa2bdd192bd912835a417cb0031
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-07-29 19:14:42 +00:00
Flavio Santes bbd4d4cb1f samples/net: MQTT subscriber with QoS
This sample demostrates how to write a subscriber application that is
able to receive messages with different Quality of Service values.

The code is self-documented. Read the README file for more information
about the network setup.

This sample code uses the Network for Zephyr API (netz).

More details about MQTT can be found in the official documentation:
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html

Jira: ZEP-416
Jira: ZEP-568
Jira: ZEP-573
Jira: ZEP-594

Change-Id: Ia660313439c0c61c2210abbf8ce09ff278d11a1a
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-07-28 15:37:24 +00:00
Flavio Santes cc2804f2b6 samples/net: MQTT publisher with QoS
This sample demostrates how to write a publisher application that is
able to send messages with different Quality of Service values.

The code is self-documented. Read the README file for more information
about the network setup.

This sample code uses the Network for Zephyr API (netz).

Old mqtt applications (paho_mqtt_client and paho_mqtt_shell) are now
deprecated.

More details about MQTT can be found in the official documentation:
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html

Jira: ZEP-416
Jira: ZEP-568
Jira: ZEP-593
Jira: ZEP-573

Change-Id: I31f8a01e143e5d446f2fb4055c1cacb9d7174517
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2016-07-28 15:37:11 +00:00