Commit Graph

4176 Commits

Author SHA1 Message Date
Szymon Janc d9322c58d5 Bluetooth: SMP: Fix LE SC Passkey Confirmation on Big Endian
Issue causing crash is already fixed so now proper BE to cpu convertion
can be used.

Change-Id: If07ed6f3b342b9e6a58e62c9a6f5fee9bc11133a
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:25:00 -05:00
Johan Hedberg f1d4b686b6 Bluetooth: Rename bt_bredr_* prefix to bt_br_*
bt_br_* is equally understandable and the same length as the
corresponding bt_le_* prefix on the LE side.

Change-Id: I1820f9b9fab6363b696072f6b70d57c0bc780078
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:25:00 -05:00
Johan Hedberg 5619d1114b Bluetooth: Rename LE scan & advertising APIs for consistency
To have a clear split between LE & BR/EDR rename these APIs with the
appropriate prefixes.

Change-Id: I983df2b5880947d96f0ad289d12f3383f44894be
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:25:00 -05:00
Mariusz Skamra 65e917c9ab Bluetooth: GATT: Fix calculation of max data allowed in write req
This patch fixes the calculation of maximum data that can be sent
by Write Request.
Maximum data is MTU reduced by size of handle and command opcode.

Change-Id: I2abeef9adffd65e24a2489ad084bfa3b810e4acf
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:25:00 -05:00
Mariusz Skamra 6e28748e3e Bluetooth: GATT: Minor fix in warning message
This patch fixes warning that ATT MTU exceeded. An opcode size should
be taken into account.

Change-Id: Ia69c9514a59767542cca0ef36fc77d896d20db28
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
2016-02-05 20:25:00 -05:00
Luiz Augusto von Dentz 962462629e Bluetooth: Fix scan data of IPSP Application
The data length was incorrect which caused the name to be truncated.

Change-Id: Ieaca7745fff89f0f5689b6d15bfc0386f59add47
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:25:00 -05:00
Luiz Augusto von Dentz c3fde0020d Bluetooth: Make IPSP Application use blocking version of bt_enable
For test purpose pass NULL to bt_enable so it blocks until init
sequence is complete.

Change-Id: I875ff9a59bb3d1d2e799db6fc967da3aee3ac77a
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:25:00 -05:00
Luiz Augusto von Dentz 21fc28e8f8 Bluetooth: Add IPSP application to sanitycheck
Change-Id: Ib64f9e4d3f1d6a7f6d1cd1e18f88303b70e0dd91
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:25:00 -05:00
Luiz Augusto von Dentz e6784925bd net: Fix include path of fragmentation.h in null_fragmentation.h
This is a left over of 41edeffb721b4b00321ee5ff1777adc69009fe6d which
attempted to fix the include path of contiki sources but apparently
missed null_fragmentation.h.

Change-Id: I42bf1ee2e8b4809c1bb623c73279ea1146ddeeae
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:25:00 -05:00
Szymon Janc 798227dfa0 Bluetooth: SMP: Add support for Passkey Entry in LE SC
This allows to request user to input passkey displayed on remote
device when LE SC connection are used. Since similar method was
already present in legacy pairing no new public API is required.

Change-Id: I331647d5442e65162d25bbdd37ceb8b1ed841fc6
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:25:00 -05:00
Szymon Janc ebdb834a6a Bluetooth: SMP: Add support for Passkey Display in LE SC
When Passkey Entry protocol is used for LE SC and device has
display capabilities random passkey is generated and displayed
to user.

Passkey Entry is different that Passkey Confirm due to common
secret (entered passkey) being injected at begining of pairing.
After that 20 passkey rounds are performed to disclose passkey.
This "gradual disclosure" prevents leakage of more than 1 bit of
un-guessed Passkey information in the case of a MITM attack.
Due to 20 rounds of confirm-random PDU exchange this pairing
method takes more time comparing to JustWorks or Passkey Comparison.

Since similar method was already present in legacy pairing no new
public API is required.

Change-Id: Ibb36320dc751e4fae43aa8c08ca57a2a984bf491
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:25:00 -05:00
Szymon Janc 637695a476 Bluetooth: SMP: Reduce number of used flags
SMP_FLAG_TK_VALID and SMP_FLAG_USER_CONFIRM flags can be replaced
by single flag that express 'waiting for user input'. This makes
code simpler and easier to follow. Same flag will be used for
passkey entry pairing.

Change-Id: Icb857b07e3f5db1ef870cb4bc09a5f5d9efbca6a
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:25:00 -05:00
Szymon Janc 5e3eea6b0e Bluetooth: SMP: Refactor to prepare for LE SC Passkey Entry
This prepares code for introducing more pairing methods for LE SC.
Changes in following patches will be easier to review.

Change-Id: I59ea283c4dcf8537808ddf71a63df7c6ca34a5f6
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:25:00 -05:00
Arkadiusz Lichwa 66f9b8dc22 Bluetooth: BR/EDR: Add SCAN functionality to shell app
Enables in bt shell commands to verify available SCAN API.

Change-Id: Ie5a50ee6ecb875b56260bec7c5bbaa0482bd69e0
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
2016-02-05 20:25:00 -05:00
Arkadiusz Lichwa a8d187d5aa Bluetooth: BR/EDR: Enable BLUETOOTH_BREDR option in shell app
Enables CONFIG_BLUETOOTH_BREDR option by default for bt shell app.

Change-Id: I94bca76f4c55ccccb61a3c868cbc6922f553f1f0
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
2016-02-05 20:25:00 -05:00
Arkadiusz Lichwa 1b66376a61 Bluetooth: Fix misused forward declaration
Instead of struct forward declaration there should be used
struct type with at least empty body.
Otherwise compiler doesn't know the size of variable of that type
used later and emits error.

Change-Id: Ie0643ed92b8eb95c1d55c9295117a2a9b8cc95cc
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
2016-02-05 20:24:59 -05:00
Arkadiusz Lichwa 2ebf636fe2 Bluetooth: BR/EDR: Add basic SCAN support
Adds capability to stack to make controller discoverable and
connectable.

Change-Id: Iffe380d2bde0c193f806b76cce3933914c9a4796
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
2016-02-05 20:24:59 -05:00
Szymon Janc 216938ca2b Bluetooth: Print leading zeros for passkey in shell app
Passkey should be entered with leading zeros so print them to avoid
user confusion. Due to printk limitation (no support for padding or
precision operators for decimal numbers) snprintf is used for
convertion.

Change-Id: I6e01f577c935147ec91038b6dce115fcd893ac99
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:59 -05:00
Luiz Augusto von Dentz b2beefc0b3 net: 6LowPAN: Add length check when decompressing headers
Even though the buffer sice should be the same as the MTU it may actually
not be enough in case the headers are compressed so this adds a check if
there is enough space left to receive the decompressed data.

Change-Id: If8b4b5c2d7351b11a595a4b5f5364c78a19791f3
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:59 -05:00
Luiz Augusto von Dentz ddc617efad Bluetooth: Update README with instructions for IPSP application
For testing IPSP application against a Linux host it currently need some
extra steps since 6LowPAN is not enabled by default.

Change-Id: Id491e31ef9ad6eebca7497705e874c01a5493589
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:59 -05:00
Luiz Augusto von Dentz 6be8a35d05 Bluetooth: Add IPSP sample application
This application uses Bluetooth IP driver to listen to UPD port and
echo back the data received.

Change-Id: Id8e58f5f8bf58ff5947441cbcb3131c0da27081c
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:59 -05:00
Jukka Rissanen 64662703af net: Network driver for Bluetooth 6LoWPAN connections
This driver handles IPv6 traffic over Bluetooth LE connection.
The packet fragmentation is done inside BT stack, so this
driver only calls compression function.

Change-Id: Ib7f2356a1e88e78502239e54ef6e41f1f24ccd67
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:59 -05:00
Luiz Augusto von Dentz c05ea4c21c Bluetooth: Add bt_conn_get_info
Change-Id: I32fd5b1c159623c59a353e1084f47f3cc9f704e6
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:59 -05:00
Luiz Augusto von Dentz 2f275c86b9 Bluetooth: UUID: Add IPSS UUID definition
Change-Id: Iff14213b734a3eb10c1c386c0b638849e9232465
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:59 -05:00
Luiz Augusto von Dentz 0af650f145 Bluetooth: L2CAP: Make bt_l2cap_chan_send return the bytes sent
This is useful to detect if everything was sent properly.

Change-Id: If5ec891dc394d46b5ce8e011759ced4f3ecb5fb5
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:59 -05:00
Luiz Augusto von Dentz 40aaff5779 Bluetooth: L2CAP: Allocate buffer from channel if supported
Some channels may required specific user data (e.g. IPSP) so even if
data is not segmented use alloc_buf callback to allocate a buffer if
supported.

Change-Id: Iecca4a6979da8bc6745ad5b3b214506d3dd71437
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:59 -05:00
Luiz Augusto von Dentz 1725d14b31 Bluetooth: L2CAP: Fix check of SDU buffer
Change-Id: I7522a8988b4b458d2f92813f12c10b1a54f3c88c
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-02-05 20:24:59 -05:00
Johan Hedberg 045bac2d4c Bluetooth: Fix zero-byte coding style for memset()
Change-Id: If2e657b855c142c04f206d3bc9e3c0bdf4057243
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:59 -05:00
Johan Hedberg 5e607f93b9 Bluetooth: Use continuous scanning when initiating LE connections
Since we always do passive scanning and wait for a connectable
advertising event it makes sense to request continous scanning when we
issue the HCI_LE_Create_Connection. This way we minimize the risk of
loosing any advertising packets.

Change-Id: Ie314e15243aede00d1fb3be9532efb74518b293d
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:59 -05:00
Jukka Rissanen 3949ef16ea net: contiki: IPv6 packet handling had debugging activated
By default all debugging should be off and only activated if
user really wants so.

Change-Id: I280748b7852052892c309d5f0ada611cb2bc08b0
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:59 -05:00
Jukka Rissanen d0ac5c7cf0 net: buf: Enable IP and L2 buf debugging properly
The IP and L2 buffer debugging is now activated if one enables
CONFIG_NETWORKING_WITH_LOGGING option.

Change-Id: Idad4978cfd6bd705bdde6e21f1edcd3c7d280c75
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-02-05 20:24:59 -05:00
Grzegorz Kolodziejczyk ce4a34181f Bluetooth: Add SM related struct defs to bttester
This patch adds structure definitions for SM related commands and
events. Structs are mapped with btp specification and will be used
within commands and events implementation.

Change-Id: I82231cdab62d170b86c548acc14ffdcbd888473a
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
2016-02-05 20:24:59 -05:00
Szymon Janc 3aad102874 Bluetooth: SMP: Fix missing new line
Change-Id: I732ec7884997d6f21ef18387927c62d9b54edee6
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:59 -05:00
Szymon Janc 2046a2d606 Bluetooth: Simplify preprocessor checks for BR/EDR samphores
There is no need for #if #else as BR/EDR enabled path is only special
case for LE connection. Also if there is return in if block else is not
needed.

Change-Id: Ie1a57a0e4dae6c4b79f64c14971b7e8ef009fca3
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:59 -05:00
Szymon Janc b63a04fb51 Bluetooth: Remove extra semicolons
Change-Id: Ifa2934bf07cb39ab73c47a55ae469d89bc84a8f4
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:59 -05:00
Szymon Janc 51f8ca59cd Bluetooth: Add newline to log macros
Make newline part of log macros so that caller doesn't have to
append '\n' every time logs are used. This make sure that no
log will be missing new line which results in concatenated log
messages.

Change-Id: I3231ae747c790816dbc1608e0a3bd56467ba0a1b
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:59 -05:00
Arkadiusz Lichwa b71cde8cb3 Bluetooth: ATT: err_to_att() minor fix
Adds missing CR to BT_DBG() output.

Change-Id: Ice903d973fc77289c8ec65567c99b9f5449263d0
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
2016-02-05 20:24:59 -05:00
Szymon Janc b0349f4d3c Bluetooth: SMP: Fix IO capa selection for LE SC
Selection of local IO capabilities based on registered auth
callbacks is different in legacy and LE SC pairing. With LE SC
we are able to use DisplayYesNo capabilities.

Change-Id: I5bb69cb962fa4ca6a89eb707fda76d46b2c99b1c
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:59 -05:00
Arkadiusz Lichwa 7422e70c37 Bluetooth: BR/EDR: Introduce bt_conn_add_br() routine
Adds routine to allow early initialization of connection object.

Change-Id: Icfa4a00732e631571a42dfd50f87b0779ea7f9a9
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
2016-02-05 20:24:59 -05:00
Arkadiusz Lichwa f30f0702dc Bluetooth: Refactor bt_conn_add_le() routine
Adds helper routine to get connection object from available pool.

Change-Id: Ic6a7480bfbc35d297caceee3fd7eb53d6916b031
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
2016-02-05 20:24:59 -05:00
Arkadiusz Lichwa 96fc48edb3 Bluetooth: Refactor bt_conn_add() routine
Renames bt_conn_add() to bt_conn_add_le() to emphasize LE context.
Initializes link type to LE in early stage of setting LE connection.

Change-Id: Ica88764e1f3aba563ec7edc3b630e5e76ead249f
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
2016-02-05 20:24:59 -05:00
Szymon Janc 607f7c12cd Bluetooth: Disable SMP debugs in shell app
Those are debug feature and were enabled by mistake.

Change-Id: Id49078fd4b910578af35dbe8660d148a691a4f13
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:58 -05:00
Szymon Janc fc01e6622b Bluetooth: SMP: Add clarifying comment about rand and ediv
Both legacy STK and LE SC LTK have rand and ediv equal to zero.
Comment that in code to avoid confusion if correct key is being
requested.

Change-Id: I00cbf7264659470226b5ceb28f9cce4ca6b0e2e4
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-02-05 20:24:58 -05:00
Daniel Leung 6354e36be7 aio: dw: fix compilation errors
() Fix compilation errors due to variable ordering.
() Fix the default config for Quark/SE SS as
   the kconfig options were renamed in previous
   patches.

Change-Id: I1004ae332fb857b60ed90df59831e7bd9c490cb8
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:24:58 -05:00
Benjamin Walsh 0dbca43e6a benchmarks: disable CONFIG_ERRNO for minimal configurations
Change-Id: I41bc04abc517f90bf37781060407f8486267861a
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:24:58 -05:00
Benjamin Walsh 355a00e6f0 test: add nanokernel errno test
Tests errno is retrieved per-thread with fibers and one task.

Change-Id: I0b0890f250a80a30806dc1294944aa42f4209ace
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:24:58 -05:00
Benjamin Walsh fc1c0c3345 libc/minimal: use per-thread errno implementation
Provides proper access to the per-thread errno variable, by using the
_get_errno() call.

Users can now do:

  errno = EINVAL;
  printk("errno: %d\n", errno);

Change-Id: I0ef365199656d002623b39b7f45f14f561501375
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:24:58 -05:00
Benjamin Walsh 3181df6db4 kernel: add per-thread errno support
Saves an errno per-thread, retrieved via _get_errno(), instead of
changing the value of a global variable during context switches to avoid
a hit to the context switch performance.

Per-arch asm implementations are provided for maximum performance.

Enabled by default, but can be disabled via the CONFIG_ERRNO option.

Change-Id: I81d57a2e318c94c68eee913ae0d4ca3a3609c7a4
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:24:58 -05:00
Johan Hedberg 6eeec2137f drivers/console: Reduce scope of 'pos' variable
The 'pos' variable is only used within a very limited scope inside the
uart_console_isr() function. Move it's declaration there to avoid
having it exposed to the entire c-file.

Change-Id: I45ff0090ea4e0aabe77db2549d0194e26ebb63ef
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:58 -05:00
Johan Hedberg 5ad78034c9 drivers/console: Remove unnecessary indentation in uart_console_isr
Most of the uart_console_isr() function is heavily indented. We can
remove one level by converting:

	if (uart_irq_rx_ready(uart_console_dev)) {
		...
		...
	}

to:

	if (!uart_irq_rx_ready(uart_console_dev)) {
		continue;
	}

Change-Id: Ib2fe150490a8391de4001f29e4727431668853c4
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-02-05 20:24:58 -05:00