Commit Graph

264 Commits

Author SHA1 Message Date
Jukka Rissanen
44df1a12a2 net: Print local MAC address when setting local addresses
Useful for debugging.

Change-Id: I812ec770e1cdf24f6470c4a0d066c74107ce35df
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
dbed256cb0 net: Print stack usage more often for 802.15.4 fibers
The stack usage was not printed often enough when receiving
and sending 802.15.4 packets.

Change-Id: I61a4b6acdc10cb1681e2aeb63cb6af7a35834dff
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
c41ad174fc net: Print stack usage and statistics for every transmitted msg
The TX stack usage data and statistics were only printed
if there was an error. This happened very seldom which was
not very helpful.

Change-Id: I059cf9ee3449e5b39d872ef6026df968d86d0209
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
b14fdb8b5d net: contiki: Print detailed info if packet len is wrong
If IPv6 packet length is incorrect, then print the actual
length values for debugging aid.

Change-Id: I20d4d73efd1e0103f670e8e53ba6417a4795ab80
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
f857815455 net: Print warning if 6lowpan is not used with 802.15.4
If one has 802.15.4 network and tries to compile without
6lowpan, then print warning as that combination is not a
usable network setup. It can be used for testing but not
for real live setup.

Change-Id: I3b540686c8556ed0306723834ca38633aff63165
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
a3c8bf6ce3 net: contiki: Typo in 802.15.4 reassembly debug message
Change-Id: Ib363ff582fe5e3e019055c2f3bf062deb5ba8eba
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
b7d790b4b2 net: contiki: Do not discard non-fragmented packets
If the fragmentation header is missing, then do not discard
the message but pass it to upper layers as is. The fragmentation
header might be missing if the packet fits into 128 bytes.

Change-Id: I39d29e7ad80be5531262a0ac413d8137da0c64f5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
ea0d712ee1 net: Compile 6lowmac layer only if 6lowpan is enabled
No need to compile sicslowmac.c if we do not have 6lowpan.

Change-Id: I8624089f4b360fb12ef1c4a6d7104f0b190f048c
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
d0731d5d81 net: Pretty print statistics
Align statistics columns better.

Change-Id: I9e83fbbb744d910cae3512bdddab8a5d0e217ba5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
a8c54384c0 net: Gather statistics about amount of received L2 bytes
This collects received statistics from layer 2 (MAC).

Change-Id: Ie869c1209bd06f0a5ccad5094b0cafe5fe74d787
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
f84e0c1b9b net: Gather statistics about amount of sent L2 bytes
This collects byte counts from layer 2 (MAC).

Change-Id: I16c25f7ae8b9aa485e3c5f1573154cd2270cff93
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
f10641f072 net: contiki: Initialize statistics structure
The statistics counts were not initialized so the numbers were
mostly bogus.

Change-Id: If4c33701fbdc4d4603d708c69950a8a18f8eaeaf
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:26 -05:00
Jukka Rissanen
18a375d487 net: tools: echo-client can send data forever
Added -e option to echo-client and it will not quit but just
send data forever to the echo-server.

Change-Id: I9085220844b5bc45b2b7fffc46fb1b9e93235307
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
2456300976 net: 802.15.4: Ignore too long network packets in dummy radio
If we receive too long message in dummy radio driver,
then we need to discard the packet as we cannot handle
it anyway.

Change-Id: Ibed0ac5f1568dd791dec3e780c7f6c71914d02cd
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
b8fb7ebd02 net: apps: Fix the 802.15.4 monitor application
The 802.15.4 monitor application had issues with connecting
pipes together and making sure the first byte from qemu is
not lost. Before starting real data connection we send five
null bytes and the discard them in receiving side.

Change-Id: I376ae4f79aaa1ea742640999ec5b3d9c57a1279a
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
40638b3ad4 net: Additional checks for length of the data to be sent
Dummy 802.15.4 has now some additional check to verify that we
are really sending correct amount of bytes.

Change-Id: I4d223c02e2628966e3b1a3cdcf7b560043d7d788
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
03e0d10ab3 net: contiki: Remember original data length when sending
If the stack is sending network packets by itself, like when
sending router or neighbor solicitation messages, then remember
the original length of the message. This is important because
uIP stack will clear the length of the sent message after it
is sent.
After this change, the lower level drivers can use
the net_buf_datalen() to get the original length of the
buffer. The issue is seen because uIP stack is running in
different fiber than the network device driver.

Change-Id: I6078c5d716bba455a93be9be122e97cd24b8dc0e
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
ddab4c11af net: contiki: Print debug information about fragment length
Print information about how much data we are losing if
null fragmentation is used.

Change-Id: I2f18d180a4c75768534de851c7cc27c3e70ca310
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
d9e0f0494a net: User can select the desired 6LoWPAN compression method
Adding selection of 6LoWPAN compression method to Kconfig.
Possible values are:
* no compression
* IP header compression

Change-Id: I8721fa683f7488ec9ad0bf37f6637fa264c2038f
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
c890edc687 net: 802.15.4: Allow user to set the PAN id
User can set the desired network id from Kconfig.

Change-Id: Iac9de1deb2b01bcfcb3382849d451dce1a05077a
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
3c1f69dcbc net: 802.15.4: Fix the sent network buffer length
When 802.15.4 code is receiving the network buffer, the uIP
stack might have zeroed the buf->len value. Restore it back
here so that other parts of the stack will get sane value.

Change-Id: I8fb3c1d3a3c9b0f41f3915d0f31d78afeccf68b6
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
c8830c8a14 net: rpl: Fix compile error when debugging is activated
Parent link metric was incorrectly printed.

Change-Id: I479820f850d8e9a5459667d58bc35c8174a77559
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
c295cd5b62 net: rpl: User can enable RPL probing support
When enabled, probes will be sent periodically to keep
parent link estimates up to date.

Change-Id: Ia7f1fe7cd28bb487c64a41159fffdf3665e9e1df
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
0ddb10f155 net: rpl: User can configure used objective function
User needs to be able to configure used OF as all RPL nodes
in DODAG need to use the same OF. Default OF is MRHOF RFC 6719.
Other alternative is OF0 RFC 6552.

Change-Id: I6d135a6a2c6880a919993e29b0985d4c686b8a9d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:25 -05:00
Jukka Rissanen
1dedbd28e6 net: contiki: Remove unused variable declaration
The etimer.c does not need to know about ctimer_process so
remove the extra variable.

Change-Id: I761a9d79c09876c5270e294dd008a8821705e9a2
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:24 -05:00
Jukka Rissanen
2734af4742 net: rpl: Free received net_buf in case of error
The code did not mark net_buf to be freed in a case of error
when receiving data. This caused the system run out of network
buffers very fast. It is necessary to set uip_len variable to 0 so
that the upper stack can free the buffer in this case.

Change-Id: Id5e009affcb2ce916f21fcf60060efb1c6d1ec0c
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:24 -05:00
Jukka Rissanen
5ca530c5cb net: rpl: Fix the net_buf handling
Allocate a net_buf when a network packet is about to be sent.
Earlier one statistically allocated buffer was used for sending
RPL packets but this did not work well enough and it cluttered
the RPL APIs with redundant net_buf parameter.

Change-Id: Ib4160167f8deac83c30852af2346acdf6c6f711b
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:24 -05:00
Jukka Rissanen
62b67666d8 net: contiki: etimer should call proper handler
When the timer is set, the caller needs to specify the function
that is called when timer expires.

Change-Id: Iae69986c6f32b789d708247b187d143e45d73828
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:24 -05:00
Jukka Rissanen
9b18a6d0bb net: Increse the size of timer stack to 1K
The RPL support needs bigger stack than 600 bytes.

Change-Id: If61fb2b4874d32d6e02c8e510cccd45246332da5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:24 -05:00
Jukka Rissanen
a9c39988ed net: rpl: Print RPL statistics if enabled
Print RPL statistics in the general IP statistics printing
function if CONFIG_RPL_STATS is defined.

Change-Id: Iefc3a1e5186b052e91b17309a6e9fdeb2fa70886
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:24 -05:00
Jukka Rissanen
aa73046f24 net: rpl: Fix compilation error if debugging is enabled
Need to use pointer when printing link address.

Change-Id: Ied7fcbefc02034e0ddbe714716b883de33d1e724
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:24 -05:00
Jukka Rissanen
ae97505279 net: contiki: If we do not have 802.15.4 then use nullrdc driver
For RDC (Radio Duty Cycling) we activate nullrdc driver
if 802.15.4 is not used.

Change-Id: I793b84ee8e81cdbc8315758f1b83f7ad3bd7555a
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:24 -05:00
Jesus Sanchez-Palencia
22e68cbc84 net: Remove EXPERIMENTAL label from net and bluetooth
These features set are not experimental anymore.

Change-Id: Ia9e4803982f625157e78c8002c38fed1e95c4892
Signed-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>
2016-02-05 20:24:17 -05:00
Jukka Rissanen
01d8a82332 net: tinydtls: Add missing header files
Tinydtls had its own .gitignore file that masked away two
include files that are needed in compilation. Removed
the files from ignore file and added those two files.

Change-Id: Ibcfcf4e18ca8f56eef97d41464c4233148e9db9e
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:16:16 -05:00
Jukka Rissanen
3cf2e63f81 net: Check neighbor discovery option correctly
Use correct config option to either enable or disable
neighbor discovery.

Change-Id: If67219cfa71893d2805b37e5ab3bbd11af789cb5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:16:16 -05:00
Jukka Rissanen
d56ed452cb net: tools: Use default pipe names for 802.15.4 monitor tool
No need to give the pipe names as the default values can be
used instead.

Change-Id: I610d07b860a32b55e6c68e7b2869218b29c8f304
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:41 -05:00
Jukka Rissanen
062c467fac net: contiki: Run DAD in periodic timer
The duplicate address detection check was not run properly
in periodic timer. After this patch the IPv6 address is
marked properly as preferred if DAD succeeds.

Change-Id: I2b4ad91b2c851dca51a52635ef2dea92fb5b58b5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
80252f5cd2 net: Enable network statistics support
This is only meant for testing the network. This must not be
enabled in live system as it takes memory and processing power
for each sent or received network packet.

Change-Id: I223a087175b19c8561743a1fcceb659be2356c4d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
a67415ebb8 net: contiki: slip: Fix compile error when getting the MAC address
Change-Id: I75823ac9b71cefcfd1258471a93aa7e3e4511fac
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
7d3e5f847f net: contiki: Add utility function to get the MAC address
Add function that returns the link address that the system
is using at the moment.

Change-Id: Id09aed3f6cbc4cd3ee694e18441f7443f0b7c3bf
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
53a18f6c33 net: contiki: Call etimers correctly when they expire
Make sure the etimers are triggered in main event processing
function in tcpip.c

Change-Id: Ib521b9291c768245a9f35f3502b3b173abe08ee9
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
88fcbd52d0 net: Create a separate fiber that handles Contiki timers
The Contiki etimers need polling which is handled by this fiber.
This fiber sleeps until next etimer is to be triggered. If the wakeup
time is long, we wait max 60 sec so that new timers can be triggered
also. This 60 sec timeout might be too long and require tweaking when
we know how the system behaves.
If there are no etimer event in the system, then the timer fiber
will only sleep 2 seconds before checking the timers again. This
interval might need tweaking also.

Change-Id: If34b97073882d8b273941cfb0be36df6aac97cf8
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
68dce30b3f net: tools: Add radvd instructions to README file
Add sample radvd.conf and instructions how to use it in README
file. This is needed if user wants to use IPv6 SLAAC (stateless
address auto configuration) when using qemu setup.

Change-Id: I3c9c34cfcc1bc88117a1c70a5d3ef6b5e56739f1
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
95ee00e099 net: contiki: Use new TX net_buf when sending NS packet
Allocate a new TX net_buf when sending neighbor solicitation
message instead trying to use the existing RX net_buf. This
simplifies and unifies the RX and TX buffer management.

Change-Id: Ia1c42f7fef720ad85fe1c599c3c2ec9ea2c024b5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
25e5ccdccb net: contiki: Add checks to not send NULL or empty net_buf
When sending IPv6 packet, make sure that the net_buf is valid.

Change-Id: I0027f42f307c09b3add42f430abf759bd88d63c5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
5604782d6c net: contiki: Send RS, RA and NS ICMPv6 messages properly
Allocate a separate buffer when sending RS, RA and NS ICMPv6
messages to the network.

The ICMPv6 messages are:
RS = router solicitation
RA = router advertisement
NS = neighbor solicitation

Change-Id: Ibe5a1701f78f72dce6460f77e9f659b16c355640
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
1b1cb8e8fa net: contiki: Debug print enhancements in IPv6 ND code
Debug prints were missing line feeds + spaces in neighbor
discovery code.

Change-Id: I1373af38cc7eae103d1a1da527430f2eb63e6b7a
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
f9a7e27220 net: contiki: Add Kconfig option to disable ND
User is able to disable IPv6 neighbor discovery.
Normally ND should be enabled but for testing purposes
the ND can be turned off as it simplifies the network
setup.

The default value atm is not to run ND because
we do not have a proper network setup. If user is
running qemu image, then ND should be disabled because
ND does not work properly with tun device.

Change-Id: I0ab7d6ee2ea3bc70918d9adf6f44473f71b3bd29
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
df30c05771 net: contiki: Fix compile error when sending IPv6 NS
Neighbor solicitation message sending had a typo.

Change-Id: Ia2a8b5c0eef60acc093463eb24f33bbe8fb93421
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:40 -05:00
Jukka Rissanen
e37ed46b17 net: contiki: Timer handling fixes
Now we can wakeup properly if there are multiple Contiki etimers
in the system.

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