Instead of appending the LQI into the buffer, which is an awkward usage.
Change-Id: I2f604cd61ef3b309cdfe304dac0ab1e7a2ca3f6a
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
If the distant link layer address is unknown, let's find it out.
Change-Id: I2c0488bb2a32093d7a3a98b021ad5f6e1b6c0d9a
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
And take the opportunity to reduce the buffer size, as 127 is the 15.4
MTU, it has just engouh space on 128 bytes for the spi cmd plus the
frame.
Change-Id: Ifdeb83f85ab1adcdebc55bd72c38a98f18a86dbc
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
We need to make sure that the link layer size is correctly set
depending on destination address. This is mandatory in IEEE
802.15.4 which has dynamic link layer header size depending on
the IPv6 distant address, which obviously might become
available in net_context_sendto() after the buffer has been
filled in with data.
If we need to adjust the ll header length, we need to copy
the data from the old fragments to the new ones.
This takes into account fact that ll header size might be
bigger or smaller than previous reserve space.
Change-Id: I70edc55d41bee848837dda9b8a76f13985acc281
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Current value (100) is outside the default values: 0 - 15.
Jira: ZEP-1231
Change-Id: Ib3120b52e6eb3d95b369debd7df541fa2b0dfa6e
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
Forcefully set the IPv6 address in echo-client so that we
can use that address when sending data. Normally this should
not be done like this as the system should autoconfigure itself.
Change-Id: Id24f9aa84b30a3da941bb6b9e4522c7218687e12
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
If we have received IPv6 or IPv4 packet where destination
address is a multicast one, and if there is no connection
listener for that address, then do not send ICMP destination
unreachable port error to peer.
Change-Id: I63ae5c72cf4bb75836a62670754e0b95484a6ed8
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
If net_send_data() returns 0, then the buffer was sent ok
and the sending device driver has already freed the buffer.
If net_send_data() returns <0, then the buffer sending failed
and the caller can either try to fix the issue and re-send the
buffer, or the caller can unref the buffer. Normally caller
should unref the buffer in this case as there is not much that
can be done here.
Change-Id: I39d7b22bbb78a9c16fd037f3a066797e455c31fd
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
The pos and len variables were in incorrect order.
The pos is first before the len variable.
Change-Id: I0b078ce2f08923c1673bd918fc03adb2ff09691a
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This commit adds support for the MQTT protocol v3.1.1.
Specifically, this commit allows a Zephyr application to create
the following MQTT messages:
CONNACK, CONNECT, PUBLISH, PUBACK, PUBREC, PUBREL, PUBCOMP, UNSUBACK,
SUBSCRIBE, SUBACK, UNSUBSCRIBE, PINGREQ, PINGRESP, and DISCONNECT.
Furthermore, the following messages can be parsed by the routines
provided by this commit:
CONNACK, CONNECT, PUBLISH, PUBACK, PUBREC, PUBREL, PUBCOMP, UNSUBACK,
SUBSCRIBE, SUBACK, PINGREQ, PINGRESP and DISCONNECT.
NOTE: client behavior (routines with network access) and QoS will be
integrated in future patches.
The MQTT v3.1.1 specification can be found at:
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html
Origin: Original
Jira: ZEP-365
Jira: ZEP-591
Jira: ZEP-856
Change-Id: Ie0c179370cea22f7554564692bc426a8d5c419d2
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
Makefile modifications to be able to be compiled with the unified kernel
Signed-off-by: Sergio Rodriguez <sergio.sf.rodriguez@intel.com>
Change-Id: I0fce5d3f6b28df0cff4b7c0b554a787996e8c966
Print packet hexdump and interrupt related debug only when
VERBOSE_DEBUG is enabled.
Change-Id: Ieb997e3537a9a2316d1435372948004dd93babab
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Update information related to simple web server info.
Change-Id: Ib0155c116a3d53b374a7401eb6e9d1599390dba3
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Print packet hexdump only when VERBOSE_DEBUG is enabled and remove
debug print in empty functions.
Change-Id: Ifd3ae59001233f0237c4b7575bd92607c93e2ea0
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Forcefully set the IPv6 address in echo-server so that we
can use that address when sending data. Normally this should
not be done like this as the system should autoconfigure itself.
Change-Id: I99041539c50f994f5d3ddaabaf5cac8599d82078
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Add a shell module to provide utilities to send ping and
get statistics information from the running system.
Change-Id: I1129a57f35a6794a23d61f57bee972b6267b09fd
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Add function to send IPv6 ping message to peer.
Change-Id: If7517beefe109f5f35cba82bc175da5a22cdb1d1
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This is needed by net-shell module.
Change-Id: Ic93f806a5882592ff1769b4a14b6ed524ba14912
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Separate the calculation of stack utilization variables and
printing the values from each other so that it is possible
to use separate printing function to print the values.
Change-Id: I3a5827c08edea5017e2a4bc1c5be2fe419cdfcb8
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This function converts a string into an IP address.
Change-Id: If57983a345fe4c18df01e58dbce7d9a50a27b82a
Signed-off-by: Jaakko Hannikainen <jaakko.hannikainen@intel.com>
Those options do not exist anymore on unified kernel.
Change-Id: I8f7f95f8f3e1429cdf7ce82db8a6a14bcfe587ef
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Adapting all unit tests so:
- main task's prj.mdef is already provided by unified kernel with a
default stack of 2kb.
- unified is the only kernel to be used now, removing unecessary kernel
type make option.
- removing all NANOKERNEL/MICROKERNEL related #ifdefs and so on.
Change-Id: I9b853dbd2aef971d355188cbf7fe2ececaaa80c1
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Looks like getting an SFD interruption is not 100% reliable, so let's
just use a semaphore with a timeout on it instead of using
device_sync* routines.
Change-Id: I4e4115c7b939c95d7e75fbb33664d411e0a6e8cc
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Flushing rxfifo is necessary only on complete failure. It's badly
documented, but cc2520 errata mention that srxflush instruction should
be avoided as much as possible because it generates garbage in rxfifo
and kills incoming rx packet.
Change-Id: I486f7f4179103cf0c86c206821a0a61fec06178a
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This creates a `struct net_conn_handle` that's only used as an opaque
pointer. The purpose is to avoid assigning a void* to a void** in
connection registering/unregistering functions, avoiding a
previously-caught bug by issuing an incompatible pointer types warning:
warning: passing argument 7 of 'net_tcp_register' from
incompatible pointer type [-Wincompatible-pointer-types]
Suggested by Andy Ross in 5beec6. This particular commit didn't catch
any bugs, but the one caught in 5beec6 wouldn't exist if this were in
place at the time.
Change-Id: I5c13fb4c5826adce6397feb7b400d36e426c4a87
Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
When the context being used is bound to a multicast address, the source
address of the IPv6 packet was the multicast address, this is wrong. See
RFC4291, Section 2.7:
"Multicast addresses must not be used as source addresses in IPv6
packets or appear in any Routing header."
If the context was bound to an address that would be invalid as an IPv6
source, we find a better alternative.
Change-Id: Ibefb4f2104e39658babfaaacf02f241c48f010cf
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
We were dropping the packet too early as the neighbor cache might
have the peer address stored so the cache needs to be checked too.
Change-Id: I307162cbc0da02e802ac8bb321b7b964c7388ace
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
When we receive IPv6 neighbor solicitation message,
we must not re-use the RX buffer when sending the IPv6
neighbor advertisement. This was an issue for IEEE 802.15.4
technology which has a variable size link layer header.
If we use the RX buffer for sending, the size of the link
layer header can be wrong and the packet might be dropped
by the L2 layer.
Change-Id: I77aed386847b6ccb7ec0ddca873fe00b840c35fd
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
15.4 drivers are supposed to append LQI byte in the end of the buffer,
but of course there is no such thing in uart-pipe. Thus the bug, so
let's announce the proper length even if such LQI is missing.
Also align the debug output to proper length (FCS included)
Change-Id: Ib9ad86a8c22e1cf6437bc82e7fce11a489d0e761
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Looks like auto-indentation is not working properly if editor sees 2
times a '}' as it will not interpret the #ifdef, so fixing this.
Change-Id: I848f705fa5a5e488cb43e1090ac7551140639f6d
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Useful for testing purposes. On RFD level, net mgmt will be selected by
default and such feature will thus be available.
Change-Id: Ic4f1c75557abae6edae5344f4263a106d218ed73
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Such frame is going to be sent.
Change-Id: Ia5dd8b1427ebb609633522e7c94933c1a0be5b61
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
As there's a single intermediate frame buffer used by both RX and TX
routines, protect operations on it with irq_lock() to avoid possibility
that it will be concurrently modified.
Change-Id: Ibbaf882a15fbb193054dbb13ae848becf9deef3f
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
This is a sample app using ECJPAKE crypto algorithm on DTLS, using mbedTLS,
native IP stack and the enc28j60 SPI Ethernet Driver
Change-Id: I658c3d9a54cfdd164a4147903125400f223c6e0a
Signed-off-by: Sergio Rodriguez <sergio.sf.rodriguez@intel.com>
This updates driver for Kinetis SDK Ethernet device (used for example
by BOARD=frdm_k64f) to work with native Zephyr IP stack driver model.
The conversion is done based on the template of eth_enc28j60.c.
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
Change-Id: Ifb0c7d3f921d663d00a2ded89ecdf2336b6e3783
The allocated space for IPv6 string was too short by 10 chars
which meant that full IPv6 address was not printed correctly.
Change-Id: I9c7f3f118f486f88e769aaadf09d100a1d4fd6bc
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
If the RPL is not compiled in, then skip all the RPL IPv6
options that are unknown. This way it is possible to have
non-RPL device in the network even if the IPv6 packets contain
RPL options.
Change-Id: Iff24078f48cd9fe5803355974fac0beb0a7a9e15
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Added a test to send HBH option to IP stack. Currently
the test will always pass, activate some more debugging
to see what the IP stack is doing with the option.
Change-Id: Id0ab1590eb8216f5f67c4d43ce2e882186334198
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Some errors need extra data to be sent to peer.
Change-Id: I142e86d0b21141498148b59f285152fbb51a84ed
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>