Commit graph

17 commits

Author SHA1 Message Date
Jukka Rissanen
e034a32095 net: contiki: Fix const argument in uip_connect()
Made the first argument to uip_connect() const, to ensure it isn't altered

Importing patch daef1ea252feca2ae540c2c06f5f49496231a209 from Contiki.
Original commit by Adam Dunkels <adam@thingsquare.com>

Change-Id: I92a8c389b0331c2cddcdac0190965209a4488eb3
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
7f77a6774d net: contiki: Added clarification for UDP packet reception
Added comment how UDP packet is handled when receiving it.

Change-Id: If1e10c5bde55cb2cf7a8928b0f1ec38dd6ab84b4
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
65ce2d8be1 net: contiki: Improve UDP connection matching debug prints
Make the debug prints a bit more useful by printing also
the relevant IP addresses.

Change-Id: I2029f7a7bc5e888d184467dee19802af9621e36e
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
f4a2245d8b net: contiki: Add debug printing when traversing UDP connections
Disabling prints by default but have them around as we will need
them later.

Change-Id: I21d980018286be560b9a072ee08ef0be42b0e788
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:44 -05:00
Jukka Rissanen
857017a9e3 net: contiki: Traverse UDP connection list properly
We have an array of UDP connections so just go through
the list in a most simple way. Set only the UDP connection
pointer if we found something and clear it otherwise.

This helps to avoid weird errors where multiple UDP connections
were added but only the first one was found during list traversal.

Change-Id: Iae90ee6803eee1d06e7a49211d77692b0cf5ca50
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:44 -05:00
Jukka Rissanen
6f059122f7 net: contiki: Init UDP connection list properly
It is better to initialize the UDP connection array
fully in init instead of setting only the port number
to zero. This way we do not have any garbage bytes
left around.

Change-Id: I90dcf6dc39a5a108818f25796160ca7dc52ba9d9
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:44 -05:00
Jukka Rissanen
4a21035141 net: uip: Traverse only through valid UDP connections
The uip6.c:uip_process() was not checking the upper bound of
the UDP connection list when traversing the connection list.
Now the code checks the upper bound of the array (UIP_UDP_CONNS)
and will not go beyond the max number of items in the array.

Change-Id: I417ffd2bbb54922ae071f2f382f7e9470516ce55
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:33 -05:00
Jukka Rissanen
e0509c5e6f net: rpl: Fix compile errors
This fixes RPL compile errors if CONFIG_NETWORKING_WITH_RPL is
enabled. The end result is not tested atm so RPL might not yet
work as expected.

Change-Id: I458c20f8f8c7c750cc17f24acf425f244399699d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:30 -05:00
Jukka Rissanen
19fe2ff93d net: uip: Avoid unused label compile warning
The process: label is only used if we are a router so add
ifdef guard.

Change-Id: Ib88d4e4d70b049541480a6e9dd9d68911543ff50
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:30 -05:00
Jukka Rissanen
63512ac2f3 net: udp: Do not mark the packet to be dropped if received ok
If the udp packet was successfully delivered to the application,
and if the application did not want to send anything back to
sender, then then uip_slen(buf) will be 0.
In this case we MUST NOT set uip_len(buf) to 0 as that would
cause the net_buf to be released by RX fiber. In this case it is
application responsibility to release the buffer.

Change-Id: I43cf9b147a45294288dc3c631908b034e1a4ab6a
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:30 -05:00
Jukka Rissanen
6fe17bb7a5 net: Check error when pushing packet into stack
Make tcpip_input() to return 0 if there is an error when
processing the packet. Value != 0 indicates a successfull
packet processing and in this case the application will
free the packet.

Change-Id: I4aaeb5f0039cfbe25f7238a144964e31a8204148
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:29 -05:00
Patrik Flykt
586f3adf6e net: Handle IPv6 packet reception
When read from the Rx FIFO, pass the network buffer to the uIP IPv6
stack using the tcpip_input() function. As the event is handled, not
all cases where the buffer is to be discarded can be detected.
Thus, if ICMPv6 errors will not be sent, indicate that the packet is
to be dropped by setting its length to zero.

Change-Id: I49f69011685e39759ba25ebb07670308382a5ca8
Signed-off-by: Patrik Flykt <patrik.flykt@linux.intel.com>
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:29 -05:00
Jukka Rissanen
05c97c195e net: uip: Return correct packet discard status to caller
Fixed the compiler warning about not returning correct value to
caller. Now we return correct value if neighbor solicitation was
sent properly.

Change-Id: Ie28a2ee417bcdf3eb9b24ab91a49c688992e7420
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:29 -05:00
Jukka Rissanen
210d10b036 net: Release net_buf in a case of error in IPv6 packet processing
Change-Id: Ic29762737d3d71e97a45cbe9bfccfb0dd1c1bb2f
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:29 -05:00
Jukka Rissanen
49410ae20a net: Allow loopback address for packet
This is enabled so that the loopback network test
driver works.

Change-Id: Ib5e1af2c1b064b0ef71c31be919ea88ed62531ff
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:29 -05:00
Jukka Rissanen
251a45b602 net: Use our network buffers instead of global ones in Contiki
This mega patch changes how Contiki uses buffers. In standard
Contiki there is only couple of static and global buffers.
This makes the stack non-reentrant and only usable in one
thread. This patch replaces the global buffer with buffer
supplied by caller (net_buf.h). The Contiki stack is still not
fully re-entrant after this (packet reassembly needs more TLC)
but it is a good start.

Change-Id: I63abc230b36b14f33f687d3ef64cffb0f3a69f5d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:20 -05:00
Jukka Rissanen
75d4b3f0c2 net: Initial networking support
Base is from Contiki git tree at git://github.com/contiki-os/contiki.git
commit 6ac939bc58ea76aa37e9b86af55ad51cfc3434e9

This one does not do anything useful yet. It sets the baseline for
subsequent patches.

Change-Id: I7078c938dd59188beceaf47721afaa521d8bde1a
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:14:20 -05:00