Commit Graph

750 Commits

Author SHA1 Message Date
Grzegorz Kolodziejczyk
e989683d83 Bluetooth: Fix setting proper conn data for read by type rsp
Att data structure passed to read_type callback wasn't set properly
with connection data. This cause parsing att struct set to 0 (casted
in cb, set in att_read_type_rsp). Wrong att data caused parsing wrong
mtu size and whole conn structure.

Change-Id: Ib0aa4b8edca4965afd746e7186a08cfa34e62cf3
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
2016-02-05 20:15:39 -05:00
Grzegorz Kolodziejczyk
7b3e771c91 Bluetooth: Print 16-bit dbg uuid as 4-byte hex
UUID format in 4-byte hex is more readable format than unsigned int.

Change-Id: I5e7fa3771d628705b9991c0064c102313573b8e4
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
df8426aad1 net: tools: Move tools directory to net/ip
The net/ip/contiki/tools directory was not in proper place
as it contains also non Contiki code. The net/ip/tools is
a more suitable location.

Change-Id: I1eb621680d4247d56d67ea977120f3c67c013599
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
23a0543aee net: apps: Add coap observe client
Add sample CoAP application for observe client functionality.

Change-Id: Ie2ee5d191bcc68ec634367c9b36e46ea4261d6b5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
088bb9cf0f net: coap: Observe client needs to allocate net_buf
The observe client routines need to allocate a net_buf that
will hold the sent UDP data.

Change-Id: Ia04aacdde266aa93de1b9941eeed0c8292ca83b8
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
73e861d351 net: coap: Retransmit needs to allocate net_buf
When a transaction is retransmitted, we need to allocate a
net_buf that will hold the actual UDP packet to be sent.

Change-Id: Ie0d51694b5531938cd1da5c330a308e3e9fd1764
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
5165b908b4 net: coap: Add coap_context_connect() for client
Add coap_context_connect() function so that client can use
it both in DTLS and normal connections.

Change-Id: Ibd8cff904e79a97f97ed6ff20d92078eff110e35
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
5042669536 net: coap: Avoid floating point arithmetics
Use only integer arithmetics when calculating the timeout
value.

Change-Id: Ifc61e1eee4a9a680e9c4f8c89f146417d6cc5ba4
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
bfa8358b24 net: coap: Tweaked the debug print when transaction alloc fails
If the transaction allocation fails, then print additional
information in order to find the place of the failure.

Change-Id: Idd59969b2c5eff53170b51a471583ec8c837416a
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
b9cc0e27f3 net: coap: Add util function to initialize the message id
The mid needs to be init from server and client code so
create a new function for it.

Change-Id: I662b64c207ac69288648ffbdc950896edd5ade52
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
c796f3cfcc net: contiki: Use Zephyr provided timer API
Refactor etimer and timer Contiki APIs to use the native
Zephyr timers. The Contiki way did not work well anyway
as we do not really have the process concept in Zephyr.

Change-Id: I14743707f3cf43eddfe914717b069204cde4bd65
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
320df470b7 net: contiki: Clock returned wrong number of seconds
The clock_seconds() API returned wrong number of seconds since
initialization.

Change-Id: I4f0f6197327f4ebe12e2c37588d9611ec40d7643
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
48186c99f5 net: Get debug info about available net buffers
Print additional information about how many net buffers
are available when allocating (get) or de-allocating (put)
them. The prints are only available if Kconfig option
CONFIG_NETWORKING_WITH_LOGGING is set.

Change-Id: I85e6a5813356d8fe00f0ba633c3ebf5379e56bff
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
4d745b70b0 net: Create separate net_buf pool for RX and TX use
Have a separate network buffer pool for received and transmitted
data. This way incoming packet flood cannot prevent from sending
IP packets out.

Change-Id: I2aae3bcb4ea63f36355f758de44532b167edfdb8
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
c00a7aa320 net: tools: Add CoAP client
Add simple CoAP client that can be used to test
the CoAP server running in Zephyr inside qemu.
The coap-client is run in the host.

Change-Id: I50e4b0e13aa657a0d805b0438050b8b9187d3839
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
6ed897f907 net: coap: Initial client support
Adding CoAP client support to Kconfig and Makefile.

Change-Id: I857169feac8b6c4347af4369b0cdfb806c6aedb0
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
20b9a6f845 net: coap: Activate Erbium CoAP support
Add CoAP switches to Kconfig and enable them in Makefile.

Change-Id: I3d5e18f34c0ab0853838c2e883748dd4ae62aed2
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
8848f33030 net: coap: Use CoAP context also in non-DTLS case
The use of CoAP context is needed as we do not have
global buffers any longer. This commit adds support
for CoAP context when user does not have DTLS enabled.

Change-Id: Ief716e2a3290bd1f7e5a3286a20deba690b3c1c5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
77b15eba04 net: coap: Port DTLS code to Zephyr
Make the DTLS code in CoAP context to work in Zephyr.

Change-Id: I0c9cd30a02fa6b3f0221f78e1dadd1d476bad646
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
39e5eeef9d net: coap: Initial port to Zephyr
Initial port of er-coap code into Zephyr.

Change-Id: Icb45903387eb08418a3610c1bd0933a9a9c6f8dd
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
036eda7b9f net: coap: Use uIP debug macros
Use the debug macros from uip-debug.h so that they are
in one place.

Change-Id: I342d727d4c6af9a655729db6245668968bee4b07
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
d60155d02f net: rest-engine: Initial commit
This is originally from git@github.com:YanziNetworks/netcontiki.git
commit e7d7ee5b142fb7b0695677dac9cc1899620b0fe0

Change-Id: I606b26420b9df841f03bc955039f25970553e481
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Jukka Rissanen
7da5d379e1 net: coap: Initial commit importing er-coap
This is originally from git@github.com:YanziNetworks/netcontiki.git
commit 02bb8eed066c012b4b6033cbe17a31ff15879a24

Change-Id: I4b19302266a6ff562532c493bb34b7cd9a27ee5d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:39 -05:00
Szymon Janc
8ac1577641 Bluetooth: SMP: Remove not need double debug
More informative debug is already printed below.

Change-Id: Iff70fef4922bbce649647773a2bc6eb624a13795
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:39 -05:00
Szymon Janc
46f04f3e00 Bluetooth: SMP: Fix not storing IRK on re-pair
conn->dst might already contain identity address from previous
pairing. In order to store IRK distributed in new pairing we
should check address used in connection.

Change-Id: If4bfaf445d31684125246cc98cfad1aab45875ca
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:39 -05:00
Szymon Janc
57daca9341 Bluetooth: Add callback for security changed
This callback is called if security level of a connection was changed.

Change-Id: I268da245cf4b7f6d2bfbd57969ce2da6c34fc69f
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:38 -05:00
Arkadiusz Lichwa
134ae99d35 Bluetooth: Refactor LE Connection Params validator
Move le_validate_conn_params() interface to internal HCI
header to be commonly shared between HCI and L2CAP layers.
Refactor the interface and its users and rename related to Connection
Parameters Update procedure values used for validation.

< ACL Data TX: Handle 42 flags 0x00 dlen 16                                                                                                                          [hci1] 2832.387859
      LE L2CAP: Connection Parameter Update Request (0x12) ident 1 len 8
        Min interval: 40
        Max interval: 56
        Slave latency: 0
        Timeout multiplier: 0
@ Device Connected: 00:AA:01:00:00:23 (1) flags 0x0000
< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2                                                                                                     [hci0] 2832.389374
        Handle: 42
> ACL Data RX: Handle 42 flags 0x02 dlen 16                                                                                                                          [hci0] 2832.389437
      LE L2CAP: Connection Parameter Update Request (0x12) ident 1 len 8
        Min interval: 40
        Max interval: 56
        Slave latency: 0
        Timeout multiplier: 0
> HCI Event: Number of Completed Packets (0x13) plen 5                                                                                                               [hci1] 2832.389440
        Num handles: 1
        Handle: 42
        Count: 1
> HCI Event: Command Status (0x0f) plen 4                                                                                                                            [hci0] 2832.389443
      LE Read Remote Used Features (0x08|0x0016) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 12                                                                                                                            [hci0] 2832.389444
      LE Read Remote Used Features (0x04)
        Status: Success (0x00)
        Handle: 42
        Features: 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          LE Encryption
          Connection Parameter Request Procedure

< ACL Data TX: Handle 42 flags 0x00 dlen 10                                                                                                                          [hci0] 2832.393154
      LE L2CAP: Connection Parameter Update Response (0x13) ident 1 len 2
        Result: Connection Parameters rejected (0x0001)
> ACL Data RX: Handle 42 flags 0x02 dlen 10                                                                                                                          [hci1] 2832.393181
      LE L2CAP: Connection Parameter Update Response (0x13) ident 1 len 2
        Result: Connection Parameters rejected (0x0001)

Rejected due to Timeout multiplier: 0.

Change-Id: Idaf4f452f560ff71d9637ec5d793154190e94b35
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:15:38 -05:00
Mariusz Skamra
26124136b1 Bluetooth: Set bt_conn role based on LE Connection Complete Event data
bt_conn role can be set when LE Connection Complete event is received.
Controller indicates to both Hosts forming the connection their role
in this connection.

Change-Id: I35455eff54afa30665611415ac52e19089f2e649
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:15:38 -05:00
Szymon Janc
393dad0ccf Bluetooth: Add callback for identity resolution
This callback is called if identity was resolved for remote device
that was using Resolvable Private Address while connection. From
now on only Identity Address is used.

Change-Id: I5976be575a8e4ad8c13f56d7bc274d751ae37511
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:38 -05:00
Szymon Janc
81c445c02e Bluetooth: Remove not needed src from bt_conn
Since initiator and responder addresses are already tracked it is
no longer needed to store source address in bt_conn structure.

Change-Id: I048e4d4659f4b7d29b101f9f3c5708f66c773906
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:38 -05:00
Szymon Janc
4bf5573055 Bluetooth: SMP: Fix using identity address while re-pairing
When remote device initiate pairing but its IRK is already known
identity address was used to calculate confirmation value. This
resulted in 'Confirm Value Failed' error and pairing failure.

To avoid any confusion simply track initiator and responder addresses
used for connection.

This fix re-enabling security with iPhone if device was unpaired
only on iPhone side.

Change-Id: I07d9589bee5fea7f6b028472b1709090a5755e31
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:38 -05:00
Szymon Janc
c0ee86d1bf Bluetooth: SMP: Fix security request auth requirements
When sending security request for connection with pending high
security level, authentication requirements should indicate that
MITM is required.

< ACL Data TX: Handle 64 flags 0x00 dlen 6
      SMP: Security Request (0x0b) len 1
        Authentication requirement: Bonding, MITM, Legacy,
                                    No Keypresses (0x05)

Change-Id: Ie78e021726063b0eee415bfa7189962fe0b2d94b
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:38 -05:00
Szymon Janc
6b20c8c40d Bluetooth: SMP: Cleanup all old keys on re-pairing
When re-pairing was successful (indicated by enabling encryption with
STK) old keys are no longer needed as those will be replaced by keys
distributed in new pairing.

Change-Id: If2a81e8e94f35eb04ce9a7e4d782094632cbd77a
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:38 -05:00
Jukka Rissanen
b617cbbfd1 net: tools: Usage info was missing -i option in echo-client
The -i (interface) option was not described in usage.

Change-Id: I50d01f0e639d3258234c5573abd8836a7144584e
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:38 -05:00
Jukka Rissanen
607bc6deb2 net: tools: Clarify how to run echo-server in host
Add note about possible firewall issue in host.
Make sure you run echo-server as a root user.

Change-Id: I9ebe06db799eef8664d7d7ccb38827280e338f9d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:38 -05:00
Jukka Rissanen
882d53dce8 net: tools: echo-client did not return proper error code
So return 0 if all the tests run ok, and !=0 if some failed.

Change-Id: Ib66d84dbcc6cc29e5e46609b1e2b1b1748ce6fcc
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:38 -05:00
Jukka Rissanen
662fc64009 net: Remove obsolete comment in net_init.c
Change-Id: I088c734317f0fe6efe1691fce26e2cab8febecb9
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:38 -05:00
Jukka Rissanen
1abb0b5792 net: Enhance debugging of mac net buffer allocations
Print information who allocated or freed mac net buffer.

Change-Id: I106e1703b7f5c3e5363d53d63c599a12b65577cb
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:38 -05:00
Jukka Rissanen
b6230cac0a net: 15.4: Use stack analyze functions from net_buf.h
Use more generic stack analyze functions that are now
found in net_buf.h

Change-Id: I473665bbad8aa1a6749a4c5dc1d6952bdb56da5d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:38 -05:00
Jukka Rissanen
792bbbb6d8 net: Refactor the stack analyzer functions
Generalize the stack analyze functions so that they
can be used by other fibers.

Change-Id: If1fae51db45010b75f6ac58cd8d874b31ca336e2
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:38 -05:00
Jukka Rissanen
649a525329 net: Check NULL net_buf when releasing it
Make sure we are not trying to release a NULL net_buf.

Change-Id: Ie4d2e7cdbd4f85c5543874471cc7c7ce3bc0b9df
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:38 -05:00
Jukka Rissanen
4b5a1d7172 net: tinydtls: Do not access NULL net_buf
If the net_buf allocation fails, then return and do not
try to access it.

Change-Id: Ib4c4a0b3a6669f6e6030357f3f2dd9af4dc638c8
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:38 -05:00
Jukka Rissanen
5ae65332ca net: Use new macros to access IP and UDP data
Use the new NET_BUF_IP() and NET_BUF_UDP() macros to access
IP and UDP data in the received network buffer.

Change-Id: Ic35ddf6fa8641aa6334b1207a8c2f1f19a39866f
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:38 -05:00
Szymon Janc
ae10411267 Bluetooth: SMP: Forbid JustWorks re-pairing of authenticated keys
Fail if we have keys that are stronger than keys that will be
distributed in new pairing. This is to avoid replacing authenticated
keys with unauthenticated ones.

Change-Id: If81b158f68a818d7a6e5d2854b482f34516b4737
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:38 -05:00
Szymon Janc
4f9ba8129b Bluetooth: Store key type in common structure
Keys from same pairing have are of similar key type and
this can be stored in single place.

Change-Id: I38426c282604769424098af6ee26e0cf9cb5f358
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:38 -05:00
Szymon Janc
90121208ab Bluetooth: Simplify keys management code
There is no need for separate lists of each key type as this
lookup optimization is of little benefit. Removing those results in
much simpler and smaller code. Using array over list also improves
data locality and thus cache utilization.

This patch results in following code size reduction:
keys.o from 14208 to 10028 bytes
microkernel.elf from 599417 to 597091 bytes

Change-Id: Ia8fe21ca3d79f668d8550c4376fa403e8778861e
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:38 -05:00
Johan Hedberg
bac8917917 Bluetooth: SMP: Clean up and unify remote key distribution tracking
Ensure smp->remote_dist tracks unreceived PDUs both for slave and
master role, and use the same logic in all PDU handlers for
remote_dist and allowed_cmds.

Change-Id: If4769d0be0118e8e764d7483f0d93ef8b61fa398
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:15:37 -05:00
Grzegorz Kolodziejczyk
ee178d0970 Bluetooth: Fix wrong read included function name
Other function name was used "bt_gatt_attr_read_included" by include
than the implementation "bt_gatt_attr_read_include" has.
Function naming mismatch caused linker error if used included service
define.

Change-Id: Ib4b4d07050d634cb1578c8a8948322acad85a307
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
2016-02-05 20:15:37 -05:00
Andrei Emeltchenko
7a504e9a62 Bluetooth: Fix wrong buffer allocation result
Change-Id: I5db2e320e3fb83b9ea41c03053c3ce5b0bbf2bcd
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
31baaa9a18 Bluetooth: Fix compilation error with debugs enabled
This fix following build error:
  CC      net/bluetooth/hci_core.o
In file included from net/bluetooth/hci_core.c:43:0:
net/bluetooth/hci_core.c: In function 'update_conn_params':
net/bluetooth/hci_core.c:751:49: error: 'evt' undeclared
     (first use in this function)
  BT_DBG("status %u, handle %u,features 0x%x\n", evt->status, handle,

Change-Id: Ic3c15d17c73b26d44913327df577495afc80f356
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Arkadiusz Lichwa
87b219cc05 Bluetooth: Update LE Exchange Features event handler
Adds conditions to trigger L2CAP based Update Connection Parameters
and HCI based Connection Parameters Request Procedure.

Change-Id: I66e4a977b534afc4a10d4eba54ee3eb95c2166ef
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:15:37 -05:00
Arkadiusz Lichwa
d3dc91e73a Bluetooth: Initiate LE Exchange Remote Features
Adds host bits to initiate LL LE Exchange Feature procedure if
supported. Both the master and slave can initate it for controllers
newer than 4.0. For 4.0 controllers only master can do that.
Inform upper stack layers of the slave about the connection is ready
to use only when LE Exchange Feature isn't supported. Otherwise
upper layers shall be notified about new connection when Connection
Parameters Update procedure is finished.

Change-Id: Ief29744e498873f79fc6f62f98c083fecaeae24e
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:15:37 -05:00
Mariusz Skamra
2b2e67a220 Bluetooth: Move connection callbacks to the conn.c
Since then bt_conn_connected as well as bt_l2cap_disconnected callback
can be called from bt_conn_set_state directly.
Also connected cb could be called from there, however
eg. introduction of some additional state is required TBD.

Change-Id: Ida6906272e1468ef5b41ba8dba2a936db049d308
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:15:37 -05:00
Mariusz Skamra
7682d1579f Bluetooth: Make bt_l2cap_update_conn_param to be non-void function
Makes bt_l2cap_update_conn_param to return an error if command was not
sent.

Change-Id: Ie7351040bd371bb161afc2f2a2c10e015bcdc8e4
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
e6b32cd098 Bluetooth: SMP: Use flag for tracking if encryption pending
There is no need to have sparate bool in context structure while
flags field is available.

Change-Id: Ib1bcf9794c32268897b0a873787566a620f3097b
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
8e645f9e7c Bluetooth: Use connection reference as free indicator
If ref is zero other struct bt_conn fields should be considered
garbage. Using ref count instead of address is also faster.

Change-Id: Ic3b30c0fdbce8f93f81095d3671be0e54eac1455
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
6486ae7943 Bluetooth: SMP: Verify MITM requirements in security request
If slave is requesting MITM protection verify if LTK is authenticated
before enabling encryption.

Change-Id: I6642f88945b0ca0310880935edbcfa2a6764c8d8
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
25973ac160 Bluetooth: Fix setting security level on encryption
If authenticated key was used for encryption resulting security
level is high. If resulting security level is lower then
requested level link is disconnected.

Change-Id: Ib66f722e6bb52e943d2b5cefb58f018707ce725b
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
b73d408b72 Bluetooth: Fix requesting high security level
If high security is required but keys are unauthenticated start
pairing instead of encrypting with too weak keys.

Change-Id: I35e5f0c1ab86660479288908152d61823ffb102e
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
74a1f0fe2e Bluetooth: SMP: Verify if required security level is reachable
There is no point in initializing security if required security level
is not reachable due to local IO capabilities.

Change-Id: I00d3cc552fcce4d1aac9498c90dcd826735dcb2b
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
4020511af7 Bluetooth: Store if generated keys are authenticated
This allows to store information if key was generated during
authenticated or unauthenticated pairing.

Change-Id: Idd398749c869e6278bf10909cfb768ba09565d54
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Ravi kumar Veeramally
e5bb0f9bdd net: tools: Add 15.4 monitor tool support
This monitor_15_4 tool is run in the host side. It will connect
to Zephyr via UART using pipes. Test app1 in qemu send data
through the uart and pipe, this tool read data from pipe1
and writes it to pipe2 where test app2 running in qemu2
will read data from it and vice-versa. In between tool store
data in pcap format for further wireshark packet analyzation.

Change-Id: If5c998591edf4253fbd5e249c6c9e48fa1792715
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:15:37 -05:00
Ravi kumar Veeramally
048464b756 net: 15.4: Fix trivial errors in dummy radio
Cache input type and validate TLV according to it. Check
uart_send return values.

Change-Id: Ib1f784a776176763773fead2d464330a4325ba19
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
84e9c1ec69 Bluetooth: SMP: Report failure only for authenticated pairing
If JustWorks pairing is used for pairing don't report failure.

Change-Id: I23cee54a74dd021c1f273d987ca67066452d7801
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
765ad1f6b9 Bluetooth: SMP: Add flags for tracking state
Flags for indicating if stored TK is valid and if confirm sending
was delayed are required for properly handling passkey entry input.
This is to avoid using incorrent TK or sending SMP commands in invalid
order.

Change-Id: I11e162331e93311f292f0723fc9f860c753d7d96
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
01c76d9fa4 Bluetooth: SMP: Add support for passkey entry
This allows to request passkey being entered by user.

Change-Id: I6a56c65ca689473659a13c19f8578058476d2685
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Szymon Janc
7d392f7a6d Bluetooth: SMP: Add support for tracking pairing method
This allows to track which pairing method was used and is
a preparation for storing information if resulting keys
are authenticated.

Change-Id: Ib9fc762d19bd4add6f0b431745eeb9e2780016d4
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:37 -05:00
Luiz Augusto von Dentz
a9d6a816e8 Bluetooth: ATT: Be more consistent with bt_buf variable names
This makes the code more consistent by always trying to name bt_buf
variables as buf.

Change-Id: I10d54260c5cf2f6aea5300668d5eb68f3da2a8ba
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:15:37 -05:00
Jukka Rissanen
d5f3415562 net: tools: Add dtls-server test application
This dtls-server app is run in the host side. It will
connect to Zephyr via UART using SLIP. The app will
listen DTLS data in socket 4242 and will reverse the returned
bytes and send them back to the sender. The application
supports both IPv4 and IPv6 protocols.

Change-Id: I8d37b0d3318bf6a3a5365e7d2c64eae83a1f3285
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:36 -05:00
Anas Nashif
a5609c8547 Kconfig: contain networking option in menuconfig
The option NET_BUF_SIZE was all over the place due to
missing dependency. Use menuconfig for networking and
put everything inside an  if statement.

Change-Id: Id61d777cd4079a2a0a8975b7f32fdd795557fb3a
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:31 -05:00
Benjamin Walsh
87eeaa3249 sys_clock: rename timer_read to _sys_clock_cycle_get
Follow coding conventions.

Change-Id: I3ca5d1cf4eaacfc09d5e8c44c49be447549537c8
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Benjamin Walsh
0dcad8331b clarify use of term 'context'
The term 'context' is vague and overloaded. Its usage for 'an execution
context' is now referred as such, in both comments and some APIs' names.
When the execution context can only be a fiber or a task (i.e. not an
ISR), it is referred to as a 'thread', again in comments and everywhere
in the code.

APIs that had their names changed:

  - nano_context_id_t is now nano_thread_id_t
  - context_self_get() is now sys_thread_self_get()
  - context_type_get() is now sys_execution_context_type_get()
  - context_custom_data_set/get() are now
    sys_thread_custom_data_set/get()

The 'context' prefix namespace does not have to be reserved by the
kernel anymore.

The Context Control Structure (CCS) data structure is now the Thread
Control Structure (TCS):

  - struct ccs is now struct tcs
  - tCCS is now tTCS

Change-Id: I7526a76c5b01e7c86333078e2d2e77c9feef5364
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Andrei Emeltchenko
0c6b6902fe Bluetooth: Refactor signed write command
Include all headers to signature verification process.

Change-Id: I14e152e8529bca380faeb8e9a1be00e4e8d84f9a
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:24 -05:00
Andrei Emeltchenko
355ff64175 Bluetooth: Add debug statement
Change-Id: I8308c31dc0916b8f2e7858f48e7fd2346164f333
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:24 -05:00
Andrei Emeltchenko
8e48fa3fa4 Bluetooth: Verify Signed Write GATT command
Verify that message is signed correctly using early distributed CSRK
key.

Change-Id: I30b24e90f3503907449c310dd4f59f32e6acca6f
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:24 -05:00
Andrei Emeltchenko
f9cd4105da Bluetooth: Add GATT Signed Write command
Add support for signed write with sign parameter for write without
response.

Change-Id: I79008532d88b10d34db1f68898ad4258dd3e761b
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:24 -05:00
Andrei Emeltchenko
2de40248ff Bluetooth: Print sign count in correct byte order
cnt is in le byte order so print keys->remote_csrk.cnt instead.

Change-Id: I2c2970f0bdf91960d978fea248bc0dbc23fdfd53
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:24 -05:00
Andrei Emeltchenko
15bad51bfb Bluetooth: Increment sign count after signing
Change-Id: I09b21e68f716a7f0952b81b8bd217503d4e5b7e5
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:24 -05:00
Andrei Emeltchenko
5c8fda8e67 Bluetooth: Add data signing function
bt_smp_sign_packet() signs data packet adding signature and count at
the end of data.

Change-Id: I6cca931cf33d74a765f4b4aa126aae10bee7ef4c
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:24 -05:00
Szymon Janc
947f7100c5 Bluetooth: Validate callbacks in bt_auth_cb_register
This adds validation for passed callbacks. Previously registered
callbacks need to be explicitly unregistered by passing NULL.
It is no longer possible to implicitly overwrite callback
structure.

Input Output Capabilities generation is factored out to separate
function. This is in preparation for adding more callbacks.

Change-Id: Ie809ea2daa80f9c54585efb459b49af1107007d3
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:24 -05:00
Arkadiusz Lichwa
530d2f9175 Bluetooth: Enable LE Remote Features event handler
Adds LE Exchange Remote Features HCI event handler.

Change-Id: I5ab9fb3e5284222269c95961054a176dd3067018
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
2016-02-05 20:15:24 -05:00
Szymon Janc
8423871b90 Bluetooth: Add initial support for authenticated pairing
This allows to register agent with display capability resulting
in DisplayOnly InputOuput Capability being used.

Change-Id: I98931af35c51a71882b60303c0f5d4da19eefbc4
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:24 -05:00
Szymon Janc
9de0ef392f Bluetooth: Add connection security level tracking
Change-Id: Ib2a84f964e5b189969127774ae982539ba38ad87
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:15:24 -05:00
Jukka Rissanen
89570caab9 net: tools: Add dtls-client test application
This dtls-client app is run in the host side. It will
connect to Zephyr via UART using SLIP. The app will
send data to server using the established DTLS connection.
The dtls-server will echo the data back and dtls-client
will verify that it got back same bytes that it sent
to server.

Change-Id: Ia18d75e887b38e08bc06b660c60dac4043f7d605
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:24 -05:00
Jukka Rissanen
a6c6245d87 net: Do not check the net_buf validity in rx fiber
This will print incorrect warning if we have tinyDTLS
server functionality in use.

Change-Id: I21689b69190621329ee7ae2c7ebe6577937c561a
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:24 -05:00
Jukka Rissanen
249a6d6b18 net: Add minor comment when micro or nano kernel is used
Change-Id: Ie226648f9ac45f326f788cfc5837e1ee602c6eae
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:24 -05:00
Jukka Rissanen
abd124c4dc net: Return NULL if we cannot receive a network packet.
This is not a likely scenario but make sure that we
return NULL if there are problems when user is trying
to receive network packets.

Change-Id: I637306d127d20a95c4a2f420b9a3061b707311c2
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:24 -05:00
Jukka Rissanen
1c26158c81 net: Additional check making sure IP stack is not corrupted
Print error if IP stack is corrupted, best option would
be to reboot the device.

Change-Id: Ie92782de2fe0f323c9461fa21e90e545ccd23449
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:24 -05:00
Jukka Rissanen
0768ed81c6 net: Use the net_buf_datalen() to initialize uIP pointers
Use the data length in net_buf as a master value when
replying the data.

Change-Id: I2184890b0ed8d26b700ee75b9e4b6d5a466e649c
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:24 -05:00
Jukka Rissanen
9c1a76351a net: contiki: Define network buffer size using default in uipopt.h
Make sure that the default link MTU for IPv6 networks
is used (1280 bytes). If this is left out the default would
be 128 bytes. This setting is only needed because the values
are used in tinyDTLS project.

Change-Id: I6873b8383be6355d616910aa58a03317e92dc8f8
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:24 -05:00
Jukka Rissanen
664df6db68 net: tinydtls: Allow bigger IPv6 packet to be sent
Use net_buf when sending data in order to allow bigger
messages to be sent. Earlier the max. msg length was
200 bytes, now it is 1280 bytes.

Change-Id: Id5550de45b61c6fa6410258776cd8240efb1570e
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:24 -05:00
Jukka Rissanen
fd6cca42a3 net: contiki: Use appdata pointer in udp callback
Using appdata pointer is more logical here. There was no
error in earlier code either.

Change-Id: Ic1557f01b2b016484d75fdff00f3fc02c9debac5
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:24 -05:00
Jukka Rissanen
b41ec6590c net: contiki: Set the DTLS session IP address and port correctly
Instead of having IP address and UDP port as separate fields
in session struct, place them inside an address struct.
This way the session size field will have a proper size
and we can use the dtls_session_init() function when initializing
the session.

Change-Id: I0560750bdd7189e24bf720a3bad240df2a3fc7fe
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
f6ef316c5b net: contiki: Process context was using wrong variable
The PROCESS_CONTEXT_END() macro used wrong variable. This is
only cosmetic as the variable is not used in macro but for
consistency use the proper variable name.

Change-Id: Ia9537f4c78e6573b955fd91482e033d96cdaf66b
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
3257916346 net: contiki: Set the clock ticks according to system config
Use sys_clock_ticks_per_sec that is defined from Kconfig,
to set the Contiki clock.

Change-Id: I1d0198fb39e83a59258b7c067107c25b63db50ed
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
a895e38ad2 net: Add tinyDTLS support activation
User is able to enable tinyDTLS support via Makefile.

Change-Id: I383bf69756fe3540b63bcd5793e2a1a31231d6b1
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
0d33901b1a net: tinydtls: The library compiles correctly
No functionality testing done yet.

Change-Id: Iab98ec4c6ba14187a70ef5bd4f9b1e8ab7baa640
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
76a42daaa9 net: tinydtls: Initial commit
This is originally from git@github.com:YanziNetworks/tinyDTLS.git
commit d7ca5120e7e853f76e9743db2a0236a26ba71363

Change-Id: I6e6c2da76e11b473ead1b0ddac929f8bd670d7e3
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Andrei Emeltchenko
b029073dee Bluetooth: Add signature verification function
bt_smp_sign_verify() checks signature if csrk is present.

Change-Id: I90be8be769539860a245b141bf27549a3506a111
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:23 -05:00
Andrei Emeltchenko
c0824c73fa Bluetooth: Add data signing API and test
Sign data using AES-CMAC algorithm and add test to self-tests executed
at init.

Change-Id: If01ec38a9897f74c26d1ba5c32304114d208549a
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:23 -05:00
Andrei Emeltchenko
8f2a5e6b56 Bluetooth: Make self-test option relevant to SMP debug
Make menuconfig screen more logical placing self-tests option inside
Bluetooth block. Currently self-tests looks not belonging to
Bluetooth.

Change-Id: I1ad2826b1dd09fb7c9b67aace1ad5f280543104d
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:23 -05:00
Andrei Emeltchenko
d5c55b75ae Bluetooth: Fix wrong check
Checking for (!conn && conn->state != BT_CONN_CONNECTED) makes NULL
dereference in a case conn is NULL.

Change-Id: I73c93e4eefad046eecb76958184880ef8b72676e
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:15:23 -05:00
Luiz Augusto von Dentz
c6c89a8529 Bluetooth: GATT: Add bt_gatt_write_without_response
This split the use of ATT Write Command and ATT Write Request since with
the former it is possible to sign the data thus making combinations of
parameters in bt_gatt_write complex/confusing.

Change-Id: I0349acd16d22ea4e38ac3e5ad8c3cdc318851633
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:15:23 -05:00
Ravi kumar Veeramally
00c8baadc9 net: contiki: Add beacon support for 802.15.4
Importing patch 9974bb6599333cface655bd63b01dfbbfe5dcead from Contiki.
Original commit by Niclas Finne <nfi@sics.se>

Change-Id: I90e6da7c596edca6f8c78f667cc14723b9e3f2d7
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:15:23 -05:00
Ravi kumar Veeramally
e6e55bc943 net: contiki: Add option to set/get PAN ID and get next framer seqno
Importing patch b541cd24725591f586162497b493f37902120217 from Contiki.
Original commit by Niclas Finne <nfi@sics.se>

Change-Id: Id8a287c2cd21966039397ab7a596d978a14941f2
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:15:23 -05:00
Ravi kumar Veeramally
26d68bafa0 net: contiki: Add support for multiple fragmented IPv6 packets
Add support for handling multiple interleaved fragmented
IPv6 packets. Non fragmented packets will no longer disturb
the reassembly at all.

Importing patch 8489582746e401e0c52b9f7e861bdd759924017e from Contiki.
Original commit by Joakim Eriksson <joakime@sics.se>

Change-Id: I2202779cb71dd12c0cbe05e8a96e34ded2e65995
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:15:23 -05:00
Ravi kumar Veeramally
bb9343cf56 net: contiki: Remove deprecated HC1 compression.
Importing patch e5616fc4687827818b78e66825e7da6d37de858a from Contiki.
Original commit by Joakim Eriksson <joakime@sics.se>

Change-Id: Ic53fb92f33d1d77d659c2368cc13b1314de11ea6
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
ade2baeca9 net: contiki: Added RPL API to setup root with a specified DAG version
Importing patch b21deba19914d95e6dfe92a902d1a406d167be43 from Contiki.
Original commit by Niclas Finne <nfi@sics.se>

Change-Id: I2be1719f169394f0a9fd0f43b1ae878e018e95c3
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
1e7ed734a3 net: contiki: Added buffer size check in frame802154
Importing patch 565ff0b3dcaca5d0c31ba388447e3f71c914ccc8 from Contiki.
Original commit by Niclas Finne <nfi@sics.se>

Change-Id: I27014bf0af0770cd7f572655f288b6c382fdd659
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
f47f63616c net: contiki: Add callback to DIO handling in RPL
Importing patch 5eea977ea24145b2181a4faf182951016cf3a199 from Contiki.
Original commit by Niclas Finne <nfi@sics.se>

Added callback to DIO handling for application control if a RPL DAG
should be joined or not (originally implemented by Joakim).

Change-Id: If22bfea13c456d5e170cc2c952a8d6ad48a6b37d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
9bd473b715 net: contiki: Set uip_ext_len to 0 after dropping packet
Importing patch 778e6536b022fe24398d3c026bb99ff35b07495b from Contiki.
Original commit by Maciej Wasilak <wasilak@gmail.com>

Change-Id: I70f5cf2b1abd8f3748623d0217d9f0ef830e128c
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
6aeb812105 net: contiki: Removed obsolete argument in framer-802154
Importing patch d935acc7c115503ad5192e30ef832796d3dd6795 from Contiki.
Original commit by Niclas Finne <nfi@sics.se>

Change-Id: I4c3a9c23bde26631bbe5917568a17574898713f9
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
08309b9cd6 net: contiki: Update parent rank in rpl_process_dio
Importing patch 9782a760b1165af7849a742a7a30767f2d4c7137 from Contiki.
Original commit by Laurent Deru <laurent.deru@cetic.be>

Change-Id: Ife33e5c38fcf00dab592df79fb8c843240ef39a4
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
5e458839db net: contiki: Add cast to printout for portability
Cast clock_time_t to unsigned for portable printout
in rpl_print_neighbor_list().

Importing patch fc178dab876ea8ac72f4c0f1395fea1f71f9df81 from Contiki.
Original commit by Simon Duquennoy <simonduq@sics.se>

Change-Id: If5a0adcbc8aafd0a2bda8788173000bd8c4c9d7f
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
a71abdbafe net: contiki: Probe last recently update parent in RPL
When no probing target is found, probe least recently updated parent.

Importing patch 9ced5b7bac2150f993ba0c6e602f279e7b27127f from Contiki.
Original commit by Simon Duquennoy <simonduq@sics.se>

Change-Id: If494663ed7df38865d3a8776c56de74bf2d2fc04
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
Jukka Rissanen
45543c1b2a net: contiki: Make probing expiration time configurable
Importing patch 832a4d3e01349458a48a585e2e1af72ec6be0411 from Contiki.
Original commit by Simon Duquennoy <simonduq@sics.se>

Change-Id: Ida5dff1a5d592f77fb1a21b4016ea4fd4c10db80
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:23 -05:00
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
c95a072786 net: contiki: Cast IPv4 and IPv6 in copy macros
Importing patch daef1ea252feca2ae540c2c06f5f49496231a209 from Contiki.
Original commit by Adam Dunkels <adam@thingsquare.com>

Cast the addresses when copying IPv4 and IPv6 addresses using
the IPv4 and IPv6 copy macros.

Change-Id: Id34a294c653ec3310ef8152e600db3eb39778ae1
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
ea889225ad net: contiki: Added a function for getting the default RPL instance
Importing patch 06daa08ffc4da0f0e2e5d32c222c0f513d273cec from Contiki.
Original commit by Adam Dunkels <adam@thingsquare.com>

Change-Id: I20b69b440923061f1993f7063c668351ee304a77
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
14ac018d95 net: contiki: Make delay function user-configurable in RPL probing
Importing patch 6a5f238255a3a3450db2588cba7383d1be8529a0 from Contiki.
Original commit by Simon Duquennoy <simonduq@sics.se>

Change-Id: I4684d403a8a3d65f442f11f2d66f53c6968709aa
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
3d86cfe13d net: contiki: Modified the default RPL probing selection process
Will now probe the least recently updated parent from time to time.

Importing patch 2dd182f4a8a322867f90cdbc8f1a983b972ac7cd from Contiki.
Original commit by Simon Duquennoy <simonduq@sics.se>

Change-Id: Ifa87485a3a5fdb895cf3fc375ef9589cbbb950f6
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
fdbfff44d1 net: contiki: Implement RPL probing
Importing patch 47ba4c0c4bd81fd429ba23557aa44ee75daa2b3a from Contiki.
Original commit by Simon Duquennoy <simonduq@sics.se>

Change-Id: I30da9aac6f1057239fc3689996aa45b0a019f6f6
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
1e9cb6f925 net: contiki: Added rpl_print_neighbor_list function for RPL state monitoring
Importing patch 529376be7758eec8320e695c1efb5e416f2d8c1c from Contiki.
Original commit by Simon Duquennoy <simonduq@sics.se>

Change-Id: I21aebbdff3687e6d29c4c28afa7d8095e185dc8b
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
da6d884b7a net: contiki: Added missing sanity check in uip-ds6-route.c
Importing patch 8344290e0898bb54a68d0e417a7a1c6dee992200 from Contiki.
Original commit by Simon Duquennoy <simonduq@sics.se>

Change-Id: I46ab31bbba06a54f020ec792a4e12ef60ae3caff
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
fdbeba4967 net: contiki: Remove all the DODAG from the instance when the node is set as Root
Importing patch 9d94c4efae9c7604790034264d22e6cbf7fb61cd from Contiki.
Original commit by Laurent Deru <laurent.deru@cetic.be>

Change-Id: Iffd51ce5b4e68acf7e15b4559843f128cf5f13d0
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
3294a5796b net: contiki: Do not delete instance when a new DODAG can not be created
Importing patch 49bfb1308db8eff186677bcd8f1dd3861d9b26d8 from Contiki.
Original commit by Laurent Deru <laurent.deru@cetic.be>

Change-Id: I307fbec3ff6325a06c895411b83b811c2a392d44
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
35c147b85d net: Fix net_receive() for microkernel
Make sure to use the correct fifo wait function for microkernel.

Change-Id: Ie3e365a2e24836485d028c05c936c30dfce91ba4
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
20319a1dca net: Remove extra debug print when packet is received
This debug print will flood the console is certain scenarios
so remove it.

Change-Id: I9e1d04ef48d9a6acf21c360c5ebb0dfa15c0173f
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
ed7b370213 net: Set buffer user data pointer correctly when receiving packet
The buf->data was incorrectly set.

Change-Id: I721a849a79ba9ba7d114cb1dfc7f853192c6807d
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
0ee55d73af net: tools: Add echo-server test application
This echo-server app is run in the host side. It will
connect to Zephyr via UART using SLIP. The app will
listen data in socket 4242 and will reverse the returned
bytes and send them back to the sender. The application
supports both IPv4 and IPv6 protocols and it will also
listen multicast packets sent to it.

Change-Id: Icf0805794a16842e70fbb5e8a3f843a3782e1968
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
e6d1925a96 net: Make sure Contiki will not remove received packet
We must not touch uip_len(buf) value as Contiki IP stack
will use it to determine what it should do with the
received packet. So after we have received the packet,
we update separate datalen variable in net_buf that will
store the correct length of the packet.

Change-Id: Iab79b741508e95e581d1727645e6b1d1eacded4c
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
d3b0d1afdf net: Clear only desired network context when releasing it
We were clearing too many contexts in net_context_put().

Change-Id: Ie65fc7d4f3949cca4035bc459c0127179038bd85
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
e1359ab16b net: Add timeout to net_receive function
Allow caller to specify a timeout in ticks while waiting
network data. The timeout value has following meaning:
  TICKS_UNLIMITED  wait forever
  TICKS_NONE       do not wait
  value > 0        timeout value (only applicaple if
                   CONFIG_NANO_TIMEOUTS is defined)

Change-Id: Icbb33fa0eeb462659d4006dd9d948a04f39a87a9
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
0dc19ba88a net: Allow network buffer tweaking from Kconfig
User is able to tweak the number of network buffers via
Kconfig file. Default value of network buffers is 2.
Each buffer will occupy 1280 bytes and can either hold
received or sent IPv6 or IPv4 packet.

Change-Id: I81c099bc5d97972ec9cc1cae775f891f8b8f887c
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
1d7caf6b52 net: Add debug print when receiving a buffer in rx queue
Useful in order to see what is going on in the stack.

Change-Id: I9fa7d12d836d449b253a0339c70bb25f471059df
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
d9e2a98a9b net: UDP packet reply callback was losing net_buf
UDP reply handler was not freeing net_buf properly if the
context was not passed properly to the callback. This
happened because the callback user data pointer was having
incorrect value.

Change-Id: Idfefd37b29674129252aa8f903fa9fe55de191cb
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:15:22 -05:00
Jukka Rissanen
20aa77ce6f net: Network buffers could be lost when sending packets
When sending data to network, make sure to check the return
code from network driver. The driver should return these codes:
 0 : If packet could not be sent. In this case buf should
     not be released.
 1 : If the packet was sent successfully. In this case the buf
     should be released by either the send() or some other
     lower layer function.
 <0: If there is an error, the buf should not be released by
     send() function.

Fixed the relevant part in Contiki code so that the tcpip_output()
return correct value
  0 = packet was not sent, caller needs to free it
  1 = packet was sent, network driver will free the net_buf
      after sending it to medium

Change-Id: I4380d7747985fc057f5ef73ca97b76f6e9888a55
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
Luiz Augusto von Dentz
0636edfdd7 Bluetooth: GATT: Add offset to bt_gatt_write
This enables writing from offset using Prepare Write + Execute Write
procedures including Long Write procedure when the data is bigger than
the MTU.

Change-Id: Id35d66c011ba582a4ba92ffe75444226e479335a
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:15:22 -05:00
Luiz Augusto von Dentz
752315a082 Bluetooth: ATT: Add bt_att_get_mtu
This can be used to check what is the configured MTU for the given
connection.

Change-Id: I292b06dbe079fbd567cd8d39615cfbc3dad6b2a5
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:15:22 -05:00
Luiz Augusto von Dentz
2ee7df52f4 Bluetooth: ATT: Handle Execute Write response
This adds the callback necessary to parse Execute Write response PDU:

< ACL Data TX: Handle 3585 flags 0x00 dlen 6
      ATT: Execute Write Request (0x18) len 1
        Flags: Immediately write all pending values (0x01)
> ACL Data RX: Handle 3585 flags 0x02 dlen 5
      ATT: Execute Write Response (0x19) len 0

Change-Id: Ida1f73021097628bd5e60faa007441db9b92a38d
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:15:22 -05:00
Luiz Augusto von Dentz
fb0f86fd2b Bluetooth: ATT: Handle Prepare Write response
This adds the callback necessary to parse Prepare Write response PDU:

< ACL Data TX: Handle 3585 flags 0x00 dlen 10
      ATT: Prepare Write Request (0x16) len 5
        Handle: 0x0011
        Offset: 0x0001
          Data: 01
> ACL Data RX: Handle 3585 flags 0x02 dlen 10
      ATT: Prepare Write Response (0x17) len 5
        Handle: 0x0011
        Offset: 0x0001
          Data: 01

Change-Id: Iaa16ec1477f25a2ebdfbefa5c0056aa3177c930c
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:15:22 -05:00
Andrei Emeltchenko
ae3c6c00c2 Bluetooth: Fix alignment
Change-Id: If6b3b426bbcb763e4e089d330930bf68d4843282
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:14:44 -05:00
Andrei Emeltchenko
98e3e44655 Bluetooth: Allow Signing Info command after Address Info
Follow Key Distribution order: CSRK shall be sent after BDADDR Info.

Change-Id: I08a784ebc56d5f891e81bb9f2c7d215d47f1f6a5
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:14:44 -05:00
Luiz Augusto von Dentz
9c17e83d68 Bluetooth: ATT: Fix using uninitialized conn at find_info_cb
This leads to unexpected responses where the data can be bigger than
the MTU negotiated.

Change-Id: I395f85ce8b132b3c1727978eed8491ae4745b078
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:14:44 -05:00
Andrei Emeltchenko
2baab11485 Bluetooth: Implement processing signing info request
Store remote CSRK key upon receiving SMP Signing Info command.

Change-Id: I62e8fafc9bef5fd765edc5455b7eb17ea0961605
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:14:44 -05:00
Andrei Emeltchenko
ecc1a274a5 Bluetooth: Allow CSRK key generation and distribution
Include CSRK to Key Distribution fields in Pairing Request and
Response.

Change-Id: I0a564bd2675760b6b30f0288b6f26e24a161811f
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:14:44 -05:00
Andrei Emeltchenko
37bff2b3be Bluetooth: Generate and distribute local CSRK key
Connection Signature Resolving Keys allows to sign data sent over not
encrypted connection.

Change-Id: Ia73e5572acc99f53a183f94597d57865563279d1
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2016-02-05 20:14:44 -05:00
Luiz Augusto von Dentz
0a918ae444 Bluetooth: GATT: Remove subscriptions on disconnect
If a device is disconnected and has not been paired remove any
subscriptions to the device since it wont be notifying once reconnected
the application will have to subscribe again.

Change-Id: I8ca7de0ccaefbc543b723ce5280ab8ee5f9157d1
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:14:44 -05:00