Removes CONFIG_BLUETOOTH_GATT_DYNAMIC_DB in preparation to the
introduction of bt_gatt_unregister.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This enabled testing CONFIG_BLUETOOTH_SHELL with configuration other
than btshell and enables ipsp sample to use bt shell module which
allows to disconnect, print metrics, etc.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Since more and more code is going to be reused by both the Host and the
Controller, this commit introduces a common/ folder that will contain
everything that is not tied to one of the two components but shared by
them.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Passkeys are always 6 digits in length and should therefore be
zero-padded if necessary.
Jira: ZEP-2113
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
In order to achieve proper sharing of configuration options, everything
that is common to both the Host and the Controller should now be placed
in the top-level Kconfig file, and Controller-only options are in the
controller/ Kconfig one.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Since most of nRF5x-based boards can be used either as a standalone
development kit or as a BLE controller to connect to an external host,
add DT overlays so that the baud rate is correctly set to 1Mbit/s
whenever building the hci_uart sample application.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Convert code to use u{8,16,32,64}_t and s{8,16,32,64}_t instead of C99
integer types.
Jira: ZEP-2051
Change-Id: I08c682bfc0b80dfa88de859e90a011bcd2db2762
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Some incompatible changes were introduced when net and bluetooth
branches were changed at the same time.
Change-Id: Ifa03f85d26a63ade0fcc029377d54850c0e92451
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Most of these macros are not exactly exposing a buffer, but a specific
header pointer (ipv6, ivp4, ethernet and so on), so it relevant to
rename them accordingly.
Change-Id: I66e32f7c3f2bc75994befb28d823e24299a53f5c
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
- net_pkt becomes a stand-alone structure with network packet meta
information.
- network packet data is still managed through net_buf, mostly named
'frag'.
- net_pkt memory management is done through k_mem_slab
- function got introduced or relevantly renamed to target eithe net_pkt
or net_buf fragments.
- net_buf's sent_list ends up in net_pkt now, and thus helps to save
memory when TCP is enabled.
Change-Id: Ibd5c17df4f75891dec79db723a4c9fc704eb843d
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
There have been long lasting confusion between net_buf and net_nbuf.
While the first is actually a buffer, the second one is not. It's a
network buffer descriptor. More precisely it provides meta data about a
network packet, and holds the chain of buffer fragments made of net_buf.
Thus renaming net_nbuf to net_pkt and all names around it as well
(function, Kconfig option, ..).
Though net_pkt if the new name, it still inherit its logic from net_buf.
'
This patch is the first of a serie that will separate completely net_pkt
from net_buf.
Change-Id: Iecb32d2a0d8f4647692e5328e54b5c35454194cd
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This is a start to move away from the C99 {u}int{8,16,32,64}_t types to
Zephyr defined u{8,16,32,64}_t and s{8,16,32,64}_t. This allows Zephyr
to define the sized types in a consistent manor across all the
architectures we support and not conflict with what various compilers
and libc might do with regards to the C99 types.
We introduce <zephyr/types.h> as part of this and have it include
<stdint.h> for now until we transition all the code away from the C99
types.
We go with u{8,16,32,64}_t and s{8,16,32,64}_t as there are some
existing variables defined u8 & u16 as well as to be consistent with
Zephyr naming conventions.
Jira: ZEP-2051
Change-Id: I451fed0623b029d65866622e478225dfab2c0ca8
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
TCP requires buffers to be acked thus it retain a reference, but L2
driver actually consumes the buffer so it needs a context pool to store
to original ones.
Change-Id: Ie9083ab361d3674c33080f9e7e6c7248aaf7abc3
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Docs need a label at the top so we can use :ref:`labelname`
to create a link to that doc from other docs.
Change-Id: Ide66f75ca8fac0d5f65fbfc50dc9d130cf45b392
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
s/SAMPLES/APP for name shortening. Applying the change where relevant.
Not only IP addresse will be available as samples settings there but
also IEEE 802.15.4 channel, pan_id, and more for instance.
Change-Id: I05dd24989bd0c804d9588092d67044a3e063bc88
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This may cause static analyser error such as the following:
Null-checking "tmp" suggests that it may be null, but it has already
been dereferenced on all paths leading to the check.
if (tmp) {
Change-Id: Id04f8d052d8128003d5b91f7a8303940529ef261
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
If we receive lot of packets, it might happen that we exhaust
all the DATA buffers in the system. This would prevent from
us sending anything to the network.
Change this by splitting the DATA buffer pool into RX and TX
parts. This way RX flooding cannot consume all DATA buffers
that needs to be sent.
Change-Id: I8e8934c6d5fdd47b579ffa6268721b5eb3d64b6d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Add a sample application demonstrating doing continuous scanning and
sending out advertising packets periodically.
Change-Id: I0ce88afd73bed4928ba65472051c0f83ff27a632
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
The introduction of device tree broke bluetooth sample builds for the
hexiwear_k64 and frdm_k64f boards. Add these boards to the peripheral_hr
test so this doesn't happen again.
Jira: ZEP-1745
Change-Id: I3e61a83db09cbb5834bd510bff851611e43844a8
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
Makes configuration for tinyTile board.
Change-Id: I823e299dad905387de85fd6d74159c7540bc7edd
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Fixes following warning:
...
warning: format '%u' expects argument of type 'unsigned int', but
argument 6 has type 'int32_t * {aka int *}' [-Wformat=]
...
Change-Id: I3ac523b7c8daf08b0c8e7b43aad270306fe5d744
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
This commit changes the net_buf getter functions in nbuf.h
by adding a timeout parameter. These function prototypes
are changed to accept a timeout parameter.
net_nbuf_get_rx()
net_nbuf_get_tx()
net_nbuf_get_data()
net_nbuf_get_reserve_rx()
net_nbuf_get_reserve_tx()
net_nbuf_get_reserve_data()
net_nbuf_copy()
net_nbuf_copy_all()
net_nbuf_push()
net_nbuf_append()
net_nbuf_write()
net_nbuf_insert()
Following convinience functions have not been changed
net_nbuf_append_u8
net_nbuf_append_be16
net_nbuf_append_be32
net_nbuf_insert_u8
net_nbuf_insert_be16
net_nbuf_insert_be32
net_nbuf_write_u8
net_nbuf_write_be16
net_nbuf_write_be32
so they call the base function using K_FOREVER. Use the
base function if you want to have a timeout when net_buf
is allocated.
Change-Id: I20bb602ffb73069e5a02668fce60575141586c0f
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Add missing README.rst files to the last two samples.
Jira: ZEP-1540
Change-Id: I8dfa6489c6c65872594d4416870e2a41e701595d
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Reduce the pressure on the common RX buffer pool by reusing HCI
command buffers also for the Command Status or Command Complete
response to them. This also implies removing the existing Kconfig
variable for the command buffer sizes since the size is also dependent
on maximum Command Complete event sizes. Instead, reuse the RX buffer
size also for HCI Command buffers.
Change-Id: I006b287d64a0c9ca40de741aa9a424a49a927385
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
A subsequent patch will start reusing HCI command buffers for
receiving the response, so the distinction of received vs sent data
headroom would just make the code unnecessarily complex. Instead, just
merge these two variable into a single one.
Change-Id: I31d846331939f1a2270df7ed0c75112825e16493
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This enables these samples to interoperate with Linux 6LoWPAN over
Bluetooth implementation while that is being fixed, in the long term
we might remove it from the samples once Linux is fixed.
Jira: ZEP-1656
Change-Id: I8ca9fe5a27f43cebc75b6fe5a436a5e8fcee26d5
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Currently, the function accepts a struct sockaddr * but the code
immediately type casts this to either in_addr or in6_addr. This is
incorrect behavior as the first field in a sockaddr is sa_family_t
and not address data.
So without special knowledge, a developer will use a sockaddr structure
as the parameter and then wonder why the address information isn't being
set correctly.
Let's change this parameter to void * which makes this function similar
to inet_pton().
Jira: ZEP-1616
Change-Id: I1fc9368da999d90feb07c03fac55dcc749d4eba6
Signed-off-by: Michael Scott <michael.scott@linaro.org>
Instead of using a hard-coded string, make the sample use the Kconfig
variable for the device name.
Change-Id: Ib09f594e1cba221f9064318572bd90d38bd2733a
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Change BREDR_NAME to DEVICE_NAME so it can also be used as the LE
device name.
Change-Id: I9ef55d9dff098372d47d9d5754ad7a7163a65bc0
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Replace the existing Apache 2.0 boilerplate header with an SPDX tag
throughout the zephyr code tree. This patch was generated via a
script run over the master branch.
Also updated doc/porting/application.rst that had a dependency on
line numbers in a literal include.
Manually updated subsys/logging/sys_log.c that had a malformed
header in the original file. Also cleanup several cases that already
had a SPDX tag and we either got a duplicate or missed updating.
Jira: ZEP-1457
Change-Id: I6131a1d4ee0e58f5b938300c2d2fc77d2e69572c
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This is very handy for debug purposes. It provides us with a reassurance
that at least something is happening, even if initialisation does not
complete (hangs forever).
Change-Id: I6ac1bfec84f8a6694f82d14fdc5d2a27aa1fc634
Signed-off-by: Lee Jones <lee.jones@linaro.org>
The original buffer fragments can be used to send back a reply directly
since Bluetooth doesn't add anything to then.
Change-Id: Ifeac0e6c3abbd527c79912abc5f5b833b0b52171
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
The idle stack already defaults to 256. The ISR stack size of 640 was
intended to make the app fit on 16k nRF51 variants and is now the
default, i.e. it doesn't need to be explicitly set anymore.
Change-Id: I8db3c080e1f84c65b27f931fa48c75bd90a2d3cd
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This will replace the current goal of 'make qemu' with 'make run' and
moves Qemu handling into its own file and into the boards instead of
being architecture specific.
We should be able to add new boards that support some other type of
emulation (by adding scripts/Makefile.<emu type>) and allow the board to
define their own options for the use type of emulation.
'make qemu' will still work, however it will be deprecated, starting
with this commit it is recommended to use 'make run'.
Jira: ZEP-359
Change-Id: I1cacd56b4ec09421a58cf5d010e22e9035214df6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Remove legacy option and use SYS_CLOCK_EXISTS where appropriate.
Change-Id: I3d524ea2776e638683f0196c0cc342359d5d810f
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
With LE Secure Connections the longest packet we require is 65 bytes
long: 64 bytes of Public Key data + 1 byte SMP opcode.
Extend the size of the L2CAP pool blocks so that they can fit such
packets and therefore one can use 70-byte
CONFIG_BLUETOOTH_CONTROLLER_TX_BUFFER_SIZE to achieve LE Secure
Connections pairing without HCI fragmentation.
Change-id: I2f11b4277ec5a24ceba79bccc7d84c64065b6e84
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Signed-off-by: Vinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no>
Displays the present value of the indicators in the Handsfree
application.
Change-Id: I666ff2b15e70de8c1a26b902077d79c5c1a9d5fe
Signed-off-by: Sathish Narasimman <sathish.narasimman@intel.com>
The following readings were obtained after running the peripheral and
central_hr apps in qemu combined with the controller (hci_uart) on nRF51
and nRF52:
Main Stack 380
Idle Stack: 68
ISR stack: 532
Controller RX Stack: 388
HCI TX Stack: 516
The numbers set in this change provide a safety margin from the ones
measured empirically.
Change-id: Ice7ad7f081502e0ea1accf856a7937c0bf0783b2
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This port ipsp sample to use the native stack so it can be used once
again.
Change-Id: I7975b017b0aa5bd81a1701692ec81527e39d4701
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
HCI ECC commands are causing freezes in the controller build. Until
further investigation is done disable them to avoid issues when running
the controller standalone.
Change-id: Ifab0fa362348b72e88adaa5250c914770e4a70ba
Signed-off-by: Vinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no>
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
For consistency with RX_STACK_SIZE and the rest of stack sizes, rename
to use the normal naming scheme.
Change-id: Ib8d484482466fa8d629e6329e07b927abdd6f598
Signed-off-by: Vinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no>
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This helps simplify code that was previously combining net_buf_add()
with memcpy().
Change-Id: If44cf9cd651aba5e544e36567869f147468663eb
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Move logging out of misc/ to its own subsystem. Anything related to
logging and any new logging features or backends could be added here
instead of the generic location in misc/ which is overcrowded with
options that are not related to eachother.
Jira: ZEP-1467
Change-Id: If6a3ea625c3a3562a7a61a0ba5fd7e6ca75518ba
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Adds extern "C" { } blocks to header files so that they can be
safely used by C++ applications.
Change-Id: I767a04635b38d8ef7a02e8c7da3a5c99b0bc7709
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
There are static initializer macros available for most kernel objects
which we should use whenever possible.
Change-Id: I496f4d05d26801eddd21fae53bdd4fcdc3246fe3
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Moved all libc Kconfigs to where the code is and remove the default
Kconfig for selecting the minimal libc. Minimal libc is now the default
if nothing else is configured in.
Removed the options for extended libc, this obviously was restricting
features in the minimal libc without a good reason, most of the
functions are available directly when using newlib, so there is no
reason why we need to restrict those in minimal libc.
Jira: ZEP-1440
Change-Id: If0a3adf4314e2ebdf0e139dee3eb4f47ce07aa89
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
In order to keep the initialization process light-weight, remove
net_buf_pool_init() and instead perform the initialization of the pool
and buffers in a "lazy" manner. This means storing more information
in the pool, and removing any 'const' members from net_buf. Since
there are no more const members in net_buf the buffer array can be
declared with __noinit, which further reduces initialization overhead.
Change-Id: Ia126af101c2727c130651b697dcba99d159a1c76
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Restructure the RANDOM Kconfig to match the structure used in other
drivers with a single top level menu. Move the true random number
generators to appear first in the menu, with pseudo generators at the
bottom. Do not present pseudo generators if a true random generator
is presented.
This change implies that tests, samples and applications that require
the random driver interface must now select CONFIG_RANDOM_GENERATOR.
In order for tests and samples to build (and run) on platforms that
have no random driver it remains necessary to select
the CONFIG_TEST_RANDOM_GENERATOR.
Note that CONFIG_TEST_RANDOM_GENERATOR retains its original purpose of
enabling a random driver that delivers non random numbers for the
purpose of testing only.
Change-Id: I2e28e44b4adf800e64a885aefe36a52da8aa455a
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
Remove CONFIG_TEST_RANDOM_GENERATOR from each test and sample where it
is not required.
Change-Id: I949f8e93c2cb1881622a5e48efeb87c43122a170
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
Until now it has been necessary to separately define a k_fifo and
an array of buffers when creating net_buf pools. This has been a bit
of an inconvenience as well as blurred the line of what exactly
constitutes the "pool".
This patch removes the NET_BUF_POOL() macro and replaces it with a
NET_BUF_POOL_DEFINE() macro that internally expands into the buffer
array and new net_buf_pool struct with a given name:
NET_BUF_POOL_DEFINE(pool_name, ...);
Having a dedicated context struct for the pool has the added benefit
that we can start moving there net_buf members that have the same
value for all buffers from the same pool. The first such member that
gets moved is the destroy callback, thus shrinking net_buf by four
bytes. Another potential candidate is the user_data_size, however
right not that's left out since it would just leave 2 bytes of padding
in net_buf (i.e. not influence its size). Another common value is
buf->size, however that one is also used by net_buf_simple and can
therefore not be moved.
This patch also splits getting buffers from a FIFO and allocating a
new buffer from a pool into two separate APIs: net_buf_get and
net_buf_alloc, thus simplifying the APIs and their usage. There is no
separate 'reserve_head' parameter anymore when allocating, rather the
user is expected to call net_buf_reserve() afterwards if something
else than 0 headroom is desired.
Change-Id: Id91b1e5c2be2deb1274dde47f5edebfe29af383a
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This allows to fine tune TX stacks size depending on selected HCI
driver. If needed it can be used to tune for monitor too or other
logging mechanism used.
Change-Id: Ib501921da0b786e151083760d85ec58fe3c08b60
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Use BT_STACK_NOINIT for tx stack declaration. This makes sure stack
it properly alligned and account for k_thread overhead.
Change-Id: I704958fcc3ce02aba913f6eaee13ae50d2a81591
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
bt_enable_raw() needs to be called before spawning the tx thread,
otherwise there might be an HCI command processed from the UART
before the HCI driver has been opened and therefore initialized.
Change-Id: I050158bd48bebaf8fa2cf6b11efb54b531f70079
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
From stack_analyze function, used isr stack is 368 bytes
with the controller build, main stack is 288 bytes and idle
stack is 56 bytes. Hence, configuring sizes of 512, 512,
and 256 bytes for isr, main and idle stacks respectively.
Increased max connections from 16 to 20 utilizing the RAM
free from the reduced stack sizes.
Change-id: I67d073fd1893cafc53d36e89035a6fd931488a46
Signed-off-by: Vinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no>
Implement the 2 HCI commands that provide ECC public key
and shared secret generation:
- LE Read Local P-256 Public Key
- LE Generate DHKey
Jira: ZEP-1246
Change-Id: I79388bfdb9f2e28b9377b4bb6ee2caca25f33f3e
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This commit removes the legacy Contiki based uIP stack.
The new native IP stack must be used after this commit.
The commit also removes following things:
- legacy cc2520 driver
- legacy ethernet drivers
- legacy IP stack samples
and changes these things:
- disabled tests that only work for legacy IP stack
- select new IP stack by default
- enable random number generator by default as it is needed
by the new IP stack
Change-Id: I1229f9960a4c6654e9ccc6dac14a7efb9394e45d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Using the K_* macros makes it easier to read what exactly the various
timeouts are.
Change-Id: Ia405d3760b8e600af7e33a7221ef6ec717708973
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Switch left-over usage of TICKS_NONE and TICKS_UNLIMITED to the new
unified kernel counterparts K_NO_WAIT and K_FOREVER.
Change-Id: I2f2a16360e816f9f8791eb216deb3c70b8cc87df
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Switch from fiber_start() to k_thread_spawn(). Also switch to
k_yield() from fiber_yield() in the same go.
Change-Id: I2dc480310f981112063651b61b0ceedf38601bee
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Use defines from k_fifo intead of legacy API.
Change-Id: Ib8cf0d88240ef145da550b8cf83d2580e7140521
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Use new sleep API or remove sleeps where not needed.
Change-Id: I88c0973e57eb4970b68b3f4fa428683191b1a7f0
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This fixes warnings related to the use of nano_delayed_work.
Change-Id: Ie20fb47fc6d5c486ff885ad583354eb715d12c1b
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Currently the ideal buffer counts for a controller-only build are 6 RX
buffers and 7 TX buffers: ATT_MTU of 158 bytes can be sent in one
connection interval of 6 tx/rx -es wherein connection interval is
7.5ms
Change-Id: I64b4620c5e8e7db8d7ed72fa1db82e266e121f27
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Remove redundant semicolon from the end of a while loop.
Change-Id: I02cef7879efe0d6eeae59595e14fb1d9b00a6d52
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
If support for the controller assert handler isn't enabled the
function shouldn't exist.
Change-Id: I72076eb1001980f102a0404c91d22e41582ced25
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Don't use a controller define if controller support is not enabled.
Change-Id: I837b3b66f010dfbdf2d9099acd85fa29fce954b7
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Restructure the Bluetooth options more logically.
- Both host and controller are now behind the same high level
CONFIG_BLUETOOTH.
- Selecting controller support disables other HCI driver selection, so
the controller isn't in the same list as HCI drivers any more.
- Under the top-level there's a "Custom stack" option, which when
enabled opens up the option of choosing CONFIG_NBLE.
There are various other cleanups and simplifications in this patch as
well, since splitting these up would have been fairly tricky while
making sure all test cases still build.
Change-Id: I5bb715cb9d20201cb8b72fbd149c8a09a4b2d7d2
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
When building Zephyr in the controller-only configuration,
assertions that happen in the Link Layer code are not visible
to the Host which is running on another HCI and connected via
UART or USB to it. This patch allows the Controller code
to output the assertion line number when in such a configuration,
allowing the Host to view the event to help debugging.
The event format used is temporary and will be replaced by a
standardized Vendor Specific specification to come at a later
time.
Change-Id: I013ca6783a3fdedc47b171132919dd4798c66285
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
The BBC micro:bit doesn't have UART HW flow control, so it needs to be
disabled to build for the board. The baudrate is also lowered to
115200 since 1Mbps is likely to be unreliable without flow control.
Change-Id: I1725a2a1e46cfbc0f57b4f5c4ee57ff52d9670e9
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
The convention for Zephyr sample names is to use _ instead of - for
delimiting words.
Change-Id: I08a63e9f600deb38183f81ddb8f8bf407b6eec2e
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
The README files provided with the samples contain references to NBLE,
which is not a publicly supported solution for Bluetooth. Simply
remove these files. If the need arises to provide application-specific
information in the future we can add back per-application README
files.
Jira: ZEP-1183
Change-Id: I81b3ea5491d50fb16062ccd5a421ddc8fcb7ea42
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Remove those from Makefiles and testcase.ini, we now support unified kernel
only and sanitycheck script now knows how to deal with this.
Change-Id: I853ebcadfa7b56a4de5737d95f2ba096babb2e13
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Fix minor style issues with excessive whitespace for alignment and
lack of 'static' for the tx_fiber_stack.
Change-Id: I0c761e94e6a6789a3772b08b0774cd1a5e73c2ef
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Right now the hci-uart samples doesn't really work anywhere else than
nRF5x, so make that the default configuration. Also rename the old
prj.conf to generic.conf to give a generic starting point for creating
configurations for other targets.
Change-Id: I1c940339b457d0e77c8ddad4b2474fc7e5b12a51
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
In 3 of our UART driver implementations the ISR is exclusively
used and enabled for the RX path. The existing logic was
susceptible to a stall situation where a polled out transmission
would be interrupted by a reception and then the ISR code
would loop forever due to the TX event being signalled (although
the interrupt itself was disabled) causing the ISR to keep
looping for an RX interrupt.
Change-Id: Ic379e58b1c974aca3cee37d2d81f12c3726fb160
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
There's no need for this app to use the HCI driver API directly.
Change-Id: Ie5acfbfb09fc3f86c3f29f22fbf7da7db1ff2127
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
It's important that this configuration stays within the limits of the
Arduino 101 nRF51 (which has only 16kB of RAM, unlike most others that
have 32kB).
Change-Id: I359061f8a41f1373f254c49bff00f551f915bd70
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
For the current purposes it's enough to build these tests only for the
ARM and x86 qemu targets. This also avoids false-positive failures on
platforms that don't have enough memory.
Change-Id: Icbbfc0603feba6bb1ec8a3054f8cdf0800f49ca1
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Since net_buf_get() for the avail_acl_tx FIFO is called in
interrupt context (ISR) it cannot wait, and it will fail
immediately returning NULL if it fails to acquire a buffer.
During LE Secure Connections pairing, when there is a fair
amount of packets coming from the host, the FIFO was running
out of buffers causing the packet to be dropped instead of
forwarding it to the controller.
The number allocated now matches the amount of TX buffers
in the controller, so that normal HCI flow control (from
the Host to the Controller) will kick-in preventing any
buffers from being dropped.
Change-Id: Ifad4fbac84ae938eb0e68b73a80a02ba79b6ff6e
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This makes all Bluetooth samples and tests being build with unified
kernel. main() is now executed from init thread and specifying task
for it in mdef file is no longer needed. By default main stack is
1024 bytes and this should be enough for BT samples.
Change-Id: I6674eea2c028b78ada5190acef72937186738af2
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Whenever the writer of a FIFO is an ISR and the reader a fiber it's
important to make sure that we give the chance for other fibers to run
in case the FIFO keeps getting new data from the ISR without ever
running empty.
Change-Id: I6b40461713d4acfdc6fcec13ff90c9697ff01935
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
The bt_driver API was created when Zephyr only had a Bluetooth host
stack, but no controller-side functionality. The only "driver" that
was needed for the host was the HCI driver, and hence "HCI" was
omitted from the name.
With support both for host and controller Zephyr will be getting more
Bluetooth driver types, in particular radio drivers. To prepare for
this, move all HCI drivers to drivers/bluetooth/hci/ and rename the
bt_driver API bt_hci_driver.
Change-Id: I82829da80aa61f26c2bb2005380f1e88d069ac7d
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
CONFIG_ARC_INIT defaults to 'n' now days so there's no reason to try
to explicitly disable it in the sample config files.
Change-Id: I88df06ba23bdac697f0767384f7b88e3bd9fced9
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Add a config file for boards using the Nordic Semiconductor nRF5x
ICs with reasonable defaults in terms of UART configuration and
controller settings.
Change-Id: Iaa5904c96c0f40a2749b7dda0398dd35fa809f24
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Include zephyr.h instead which properly includes nano or unified kernel
headers.
Change-Id: I41c848092d022e2b0737ae6b2b53084eaf9bc6a7
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Due to the fact that ISRs run at priority 1, the LE_Rand
command was not being rescheduled after CPU sleep to be
able to fill its buffers. By performing all TX (to controller)
work on a fiber, the RNG ISR is able to run and the command
can be executed synchronously in the fiber context.
Change-Id: I3b658e1cab3f80ae655cc88566639a122a361a08
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Add short descriptions for what the hci-usb and hci-uart applications.
Change-Id: Ie06cfa1678243e97b49e5594a00086cbf3c343be
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Add a new sample application in sample/bluetooth/hci-uart
that acts as a bridge between a UART and the BLE Controller.
It receives commands and ACL data in H4 format over the UART
and passes them on to the BLE Controller to be processed.
It also conversely forwards all events and incoming ACL data
generated by the BLE Controller to the UART.
The application uses the hci_raw interface to pipe the data
to and from the BLE Controller and UART.
Change-Id: Iff7696166a82fe363b2ad4e1abea40103899f927
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This way the application can reuse the same callback for multiple CCC
since it can track what CCC is affect by checking the attribute pointer.
Change-Id: I608da643aea07de26b65d67e6db3268d717d0f53
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This removes ipss_listen since it does depend on the old network stack it
cause build problems with yaip and anyway its code is only used by ipsp
sample while the net samples does not use ipss_listen at all.
Change-Id: I23987670548741bde8800115d473a3bab242153b
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This prepares the way for more controller-side HCI implementations
which can be named hci-<transport>.
Change-Id: I6f82db4b7b7096a122f32def9fe9025a7b811244
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This fixes the UUID 128 bits to use the right byte order so it can be
decoded properly:
< HCI Command: LE Set Advertising Data (0x08|0x0008) plen 32
Length: 21
Flags: 0x06
LE General Discoverable Mode
BR/EDR Not Supported
128-bit Service UUIDs (complete): 1 entry
Eddystone Configuration Service (a3c87500-8ed3-4bdf-8a39-a01bebede295)
Change-Id: Ia4aacaf3557d74a248f63cbffb2adb73b076d38c
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
HID over GATT Profile Specification states:
'The HID Device shall use LE Security Mode 1 and either Security Level
2 or 3.'
Change-Id: I2cfc1d9df76b4e8a8b2be7e87d18a7a5f3a19ea8
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a sample that implements HID Service peripheral, the current
descriptor map is for a generic mouse so when connecting to a Linux box
it will create a input device like in the following output:
input: Test HoG mouse as /devices/virtual/misc/uhid/0005:1D6B:0246.0035/input/input98
hid-generic 0005:1D6B:0246.0035: input,hidraw2: BLUETOOTH HID v5.29 Mouse [Test HoG mouse] on XX:XX:XX:XX:XX:XX
Change-Id: Iccf07926ecc7363f4f47e1aa9df506a722e7e2d3
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a HoG service sample which can be shared with application
samples.
Change-Id: I6893ff409b254d0a616b2ba558fd629ce9edf1d4
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a timeout to switch from configuration mode to beacon mode
following the recommended behavior from the spec:
The connectable timeout should be at the very least 30 seconds to let
enough time to user to start a configuration application.
Change-Id: I8f262c447ed1622e377fd7a05dde78c7b6b0560d
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This lets the callback take advantage of the powerful net_buf API for
parsing the advertising data content.
Change-Id: Id65e6e83efd60c0f36c47bc5446a2e8ec2833d7c
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This adds a sample which implement Eddystone Configuration Service
following the spefication bellow:
https://github.com/google/eddystone/tree/master/configuration-service
Change-Id: Ia3e74d068de03ae20191534e61b2752dd2d70211
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Add short description of each sample app to the README.
Change-Id: I830e48aad226b5bf08985fbb6c218e3b5fe72b15
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Tags should be separated with spaces no with comma.
Change-Id: I5381200bcd0caf59f3601ec849d698966c734a28
Signed-off-by: Javier B Perez <javier.b.perez.hernandez@intel.com>
$srctree for the application might not be set to be $ZEPHYR_BASE, use
$ZEPHYR_BASE instead to be more explicit in the build.
Change-Id: Iefa5ff59f246b584949329044f7a6531adc6ed62
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This adds flags parameter to write callback which can be used to indicate
that data only need to be prepared with use of BT_GATT_WRITE_FLAG_PREPARE
fixing qualification tests that needs to check authorization or other
errors that cannot be verified with just the permissions.
Change-Id: I3d662b2027718ffb52a280e3bbc9750be14f89ae
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Setting CONFIG_ARC_INIT=n in prj.conf make it possible to use same
config for both QEMU and Arduino 101 targets.
Change-Id: Ie4f549d5721f2b87077fba8787f5b1e2a8f07680
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This removes the section explaining how to test the IPSP from the general
README moving it ipsp specific README which can be expanded to include
other specific details related to 6LoWPAN, etc.
Change-Id: I80210cacb6b0042b3b0dc570dbdf7d38f92b3031
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
It is no longer necessary to implement flush callback for long
descriptors since the stack can queue prepare writes this callback
will never be called which makes BT_GATT_LONG_DESCRIPTOR obsolete
as well.
Change-Id: Idca31ba8e4404d2acba760c420394d5adee0a508
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This is similar to previous patch which makes the API much more simple
when handling long writes.
Change-Id: Ibd3856863a43927195e23936872a160d5ff94648
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a buffer for incoming prepare writes which can be
tunned using BLUETOOTH_ATT_PREPARE_COUNT, these buffers are then used in
execute write to commit the data thus making flush callback obsolete:
[bt] [DBG] bt_att_recv: (0x001159c0)Received ATT code 0x16 len 50
[bt] [DBG] att_prepare_write_req: (0x001159c0)handle 0x0022 offset 0
[bt] [DBG] prep_write_cb: (0x001159c0)handle 0x0022 offset 0
[bt] [DBG] bt_att_recv: (0x001159c0)Received ATT code 0x16 len 34
[bt] [DBG] att_prepare_write_req: (0x001159c0)handle 0x0022 offset 45
[bt] [DBG] prep_write_cb: (0x001159c0)handle 0x0022 offset 45
[bt] [DBG] bt_att_recv: (0x001159c0)Received ATT code 0x18 len 2
[bt] [DBG] att_exec_write_req: (0x001159c0)flags 0x01
[bt] [DBG] write_cb: (0x001159c0)handle 0x0022 offset 0
[bt] [DBG] write_cb: (0x001159c0)handle 0x0022 offset 45
Change-Id: Iae071d7b4b5b042285952da57e3f7a853cf58afb
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This add CONFIG_BLUETOOTH_DEBUG_LOG which depends on SYS_LOG since the
later can actually use either CONFIG_PRINTK or CONFIG_STDOUT_CONSOLE.
Change-Id: Ib2974d1331f6c91d119a218ec95e8bf01069377b
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This patch fixes long writes handling. Attribute length error and
invalid offset error for prepare write should be sent in a response
to execute write request.
Change-Id: I9b4cbe0df198df9d685dbd2b328009290ebdc567
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
The flag BT_LE_AD_NO_BREDR shall be set which makes BT_DATA_FLAGS
mandatory.
Change-Id: Id933a4d73bc9fdcdc53c197041bb488d45ba149a
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This removes optional write permission to the ES Trigger Setting
Descriptor. These setting can be set by application.
Change-Id: Ic62ebd909c10601955e67b38303b8c852971203e
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
By calling the microkernel entry point 'main' there's no need to have
extra hacks to share the same c-file with both nano and micro
configurations.
Change-Id: I6623855a87ef8624b2bddb75b95079521e0eab8b
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This is no longer needed since commit:
7834061d12
Change-Id: If6436204b886d31be20c27e4f3d74a5c5a979e8c
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This makes sure LE SC are always enabled regardles of controller used.
Change-Id: I015213eb95f97793d1a1962a1cb392c652489568
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
The old 'config_whitelist' directive in testcase.ini has been removed.
We use the new expr_parser module to parse a 'filter' directive which
is a boolean expression. This gives a great deal more flexibility
in how tests can be filtered.
To keep the tree bisectable, use of config_whitelist in testcase.ini
converted to the new expression language.
Change-Id: I0617319818c5559c0f0569d2fa73d09b681cac51
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Instead of requiring application to provide both advertising type
and address type used just require app to provide info if advertising
is connectable or not. Advertising type is set based on provided
SCAN_RSP and local privacy support.
When local privacy is enabled it is no longer possible to advertise
using identity address. If such feature is to be required later on
advertising options can be extended.
This gives BT stack full control over what type of address is used
for advertising and is a preparation for random address rotation
and OOB support.
Change-Id: I90e9a683ef3794f155707343c874f75585439325
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Callback errors should contain ATT error code not posix errors.
Change-Id: I698fac086ab8b2dca3487ab99ee974b4318d16f7
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This prepares for adding other debug types besides the printf-style
logging to the console.
Change-Id: Ic2ed305192491734da991c4f61fdaace03fd60f2
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Add config files to be used on Arduino 101 (or any Curie-based) board
with the MyNewt nimble stack running on the nRF51 and exposing HCI
over UART. These configs contain a stripped-down set of features so
that the resulting image fits e.g. on the Arduino 101.
Change-Id: I7300e9ca4205de6f52aa6ca1bfe4e0b011b6dcbe
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Add initial support for the Privacy Feature, including the ability to
manage a local IRK and to use Resolvable Random Addresses.
Change-Id: I1c70aea67078dd2a5d07f3b797c37746ebe9ab61
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
CONFIG_BLUETOOTH_DEBUG_DRIVER provides too low level information to be
useful for samples. Remove it from default settings.
Change-Id: I9d99f9953d4e6b839eeb51ed393e4aed1eeeb01b
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Exclude STM32F103RB based platforms from the test. The SRAM is overflown
by 14kB.
Change-Id: I37c2905ed2706a89d9a199bc49518937659ac997
Signed-off-by: Maciej Borzecki <maciek.borzecki@gmail.com>
This adds a CTS service sample which can be shared with application
samples.
Change-Id: I38889f71f6ce8fc7b784d0d04af6c97408e2d662
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a BAS service sample which can be shared with application
samples.
Change-Id: I1f484dadf63b41632992454a40edd91077bb78fa
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a DIS service sample which can be shared with application
samples.
Change-Id: I66f7a725139c8fa381275c3bda5e7c79fa3f09c8
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a HRS service sample which can be shared with application
samples.
Change-Id: I1d2022ee7a6dfa46e2cae2d7c9d7924140d4fe37
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This reduces the amount of duplicated code across sample applications.
Change-Id: I20cf2e9f948f1420f234a58beb7f72ad74696cf8
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Move re-enabling logic to the NBLE stack.
Change-Id: I1b895aa952a241dc41e2fc9faa2794a8c2c2d2db
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
This moves both the Bluetooth HCI and NBLE drivers under
"Bluetooth Drivers" category. This also adds a selection for
choosing Bluetooth stacks as the bulk of both HCI and NBLE stacks
cannot be compiled together.
Note that this does not move the source files. That should be
done in a separate change.
Change-Id: I32fa7097ada0fdc52bcc745adb78c7273f4023c6
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds support for building and testing peripheral_esp using NBLE
driver.
Change-Id: I962238d526101f8f423491d3023079684ec7d59f
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a GAP service sample and make use of it in shell test which had
a copy of this code.
Change-Id: I5f03fb7db5349236e41bc30eb884c134136439e3
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
If CONFIG_BLUETOOTH_GATT_DYNAMIC_DB is defined it shall be possible for
the application to register any extra service it needs.
Change-Id: I7186f3faf45e9295e0c8b32dce030099a142c500
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This moves IPSS sample code to samples/bluetooth/gatt which shall become
the default place for GATT related samples that can be reused.
Change-Id: I04089f6e43bfcc30ee1c7cc766620f19e3dad08e
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Accourding to the spec the IP Support Service shall be instantiated as
a «Primary Service».
Change-Id: Ief0a2729c2752a33c8e7d4d9fae017c22e969e61
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds indication support for one characterist of the vendor service
so it can be used to test bt_gatt_indicate API.
Change-Id: Ief058c93caf3e30972eca920c050451f6120543b
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This makes sure NETWORKING_WITH_6LOWPAN and 6LOWPAN_COMPRESSION_IPHC are
selected properly and update IPSP sample to only include the minimal
config options so it can test if this is working properly.
Change-Id: I2565cbd4f79d91eaba348d43933aa893c6dc6ace
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Since the return value of these callbacks is a number of bytes ssize_t
is more appropriate than int.
Change-Id: I3406fb382975d62f51e7a195666d0ae88364fd2c
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Instead of manually creating bit shifts for individual bits use the
BIT() macro that exists for this purpose.
Change-Id: I599ecc16b3a2cffe8a355e19816c405e51937e91
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Introduce BT_GATT_ERR macro to make it possible for application
callbacks to return exact ATT error codes.
Change-Id: I971536508e75036fbddc40b3f33e5201e11940bc
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This make it possible to include IPSP services in other samples.
Change-Id: If6eaecd8bab85a382b2da623b06603f6c98aef59
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Update the advertising data to advertise the Zephyr project web site.
Also provide references to the Eddystone specification.
Change-Id: Id9cfdf4d9be95bccab4152031479ab45f5b8a035
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This removes HR Control Point from Heart Rate Service Declaration.
This characterisitc is mandatory if the Energy Expended feature is
supported, otherwise excluded. Since we don't simulate Energy Expended
we shouldn't have this characterisitc in our service declaration.
Change-Id: Ibdfdb2dd48f28bd01763ee0a038faed08e30f84c
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
To exclude platform platform_exclude=foo should be used and not
platform_whitelist=!foo.
Change-Id: I4cddcd3b73e0bd8c42a0726776f8237ebd79a6ae
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
The init, init_h5 and shell are not really samples but fit better in
the test category.
Change-Id: Id1a7ff31ad8767f858705bd952311cf64ff1f3f2
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
TinyCrypt provides implementation of AES CMAC so there is not need
for internal implementation in SMP code.
Change-Id: I15fe0daf8fca8c44b002636983b46502419c57a5
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Move all bluetooth testcases to tests/ and change Makefiles
accordingly where applicable.
Also fix Makefile to make some variables overridable and reduce
level of whitelisting in testcase.ini.
Change-Id: Ia71ee1fbbb238c45280b1e3c4747ca2f748f5263
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This allows to decrease number debug messages using config option.
Change-Id: I987d25c6d4b18503d6beb7feab97e9207100323d
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
This enables use of ECC from TinyCrypt. Since ECC is heavy this option
is separated from general use of TinyCrypt in SMP code.
Change-Id: Ia550e4a5f89240c8e15d2b5acccc21993b44b471
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This option is not needed as none of sample uses sys_rand32_get.
Change-Id: I00620a2fa7ea926d09e4e8f86cbf8ca7080478b3
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
sys_rand32_get appears to get stuck with same number for a while so
instead just increment the heart rate by 1 until 160 and then return it
back to 90.
Change-Id: I2aea870c68539271a1bb6190a958a7e2d1914dc3
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Force restarting advertising until nble is able to handle this by
itself.
Change-Id: Ife811eb69a63b98b3b0380b80e403d5d9dc10f22
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Add a single option for enabling use of TinyCrypt library for
crypto. This option selects all required TinyCrypt options
depending on BT features enabled. Thanks to this applications
only need to select single option instead of set of required
TinyCrypt features.
Change-Id: I2862e9ad3e204635f2ed3199433982bcfb7112f6
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This allows to use pseudo random numbers generator provided by
tinycrypt instead of constant using of HCI LE Rand command.
HCI LE Rand commands are used only to initialize and re-seed PRNG.
Using tinycrypt for NRPA increase size of sample shell application
from 86852 to 89700 bytes.
Change-Id: I06e7392d087908caf37cd3ae648ea0bd5cc4ce61
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
The handle shall be the characteristic value handle not the CCC.
Change-Id: I677ca12fdd59023f2498f712b060197a59baee64
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This can be used to focus on demonstrating a simple heartrate service.
Change-Id: Ib59c653ebe356784592c8468767b45c5240ec67a
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Add read parameters to read callabck
Merge bt_gatt_read_multiple functionality into bt_gatt_read.
This makes it easier for application to handle all types of reads
as same sematics is kept for them.
Instead of destroy callback, call read_func with NULL data to
indicated that read has completed. This makes it clear when
read is completed and parameters used for it are no longer needed.
Thanks to this application doesn't need to abuse user data destroy
callback for detecting if read has completed. Since destroy callback
is no longer needed it is removed.
Also note that bt_gatt_read doesn't take any user data parameter
and that destroy callback was acctually called with read parameters.
If application would require to pass user data along with parameters
it may use CONTAINER_OF macro along with bt_gatt_read_params.
Change-Id: I8d6ea136b1e61c1dae73cca868b53c48c45a5492
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
With NBLE driver it is not possible to register services before
bt_enable completes.
Change-Id: I71194150b807e183b0016accb600ae9538ba9b01
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This removes destroy callback for userdata as bt_gatt_subscribe
doesn't take any user data parameters and that destroy callback
was acctually called with subscribe parameters.
We assume subscription is active if bt_gatt_subscribe returned 0
(ie write command was sent). This is due to remote might be sending
notifications before reply to write.
Also note that bt_gatt_subscribe doesn't take any user data parameters
and that destroy callback was acctually called with subscribe
parameters.
If application would require to pass user data along with parameters
it may use CONTAINER_OF macro along with bt_gatt_subscribe_params.
Change-Id: I58ac9cd481ffa08ccc2d7a0464ca75f61fb280c5
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This enables sanitycheck to build for Arduino Due.
Note that there is no on-board bluetooth so bluetooth tests
are skipped.
Change-Id: I4f564e68ec65f01b7b33a32f6d0d7749290c0e5b
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Instead of destroy callback, call discovery_func with NULL attribute to
indicated that discovery has completed. This makes it clear when
discovery is completed and parameters used for it are no longer used.
Thanks to this application doesn't need to abuse user data destroy
callback for detecting if discovery has completed.
Also note that bt_gatt_discover doesn't take any user data parameter
and that destroy callback was acctually called with discovery
parameters.
If application would require to pass user data along with parameters
it may use CONTAINER_OF macro along with bt_gatt_discover_params.
Change-Id: Iec4eb9795975ef2555502e13a682e13ff37742e0
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
struct bt_uuid is a 'tentative' UUID type and shouldn't be used for
UUID storage. Since tester application doens't know type of UUID
on compile time we need to have a common extra type that would
allow to store both 16 and 128 UUIDs.
Change-Id: Ia2775a457a732cf03ba7e4a59e6d654fcd1ab05d
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
In anticipation of supporting a local static random address in the
future it makes more sense to call BT_LE_ADV_ADDR_PUBLIC
BT_LE_ADV_ADDR_IDENTITY.
Change-Id: I4826f1dfb50b54e13a35cbe7ee74e28641c81ad1
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Enable CONFIG_CONSOLE_HANDLER and disable CONFIG_UART_CONSOLE since
tester reuses that UART.
Change-Id: Ia440d75f66d01f29d10b5d6a68fc052fd8b57fa7
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Enabling BLUETOOTH_DEBUG enables also serial console conflicting with
tester reusing the same UART.
Change-Id: I8058a019e61146ff05cc44ab543cf6ec9ff418ef
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
This way we avoid bugs coming from wrongly (human) counted length.
Change-Id: I95eb87a78fc12d4c5e083ce1c65d8b690ad8db78
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This way we don't need a special BT_BYTES macro and avoid bugs coming
from wrongly counted number of bytes (which is now evaluated at
build-time).
Change-Id: Ic6319234a816fe2fab6229b3bb980d0e3503e241
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Introduce new UUID API with bt_uuid, bt_uuid_16 and bt_uuid_32
structs. The specific size structs are derived from the common bt_uuid
struct to make it possible to use CONTAINER_OF().
Change-Id: I9cb03c73406acb7768d410fdf29eae75d252163c
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
bt_l2cap_chan_send does actually return the number of bytes sent.
Change-Id: I862a8519c752c6b26250a21be02a927a9326617c
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Now that nble driver is supported bt_enable cannot be called blocking
since it is not supported, futhermore the call to bt_gatt_register
should be done after bt_enable is complete.
Change-Id: I404f8cd8b8339dba0fd26d24edeb718eba4bf225
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This enables this test case for arduino_101 platform.
Change-Id: I2a94fb90f4c57022ddf1ec11ab06bb5e59de9b6e
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Board already defined in platform_whitelist
Change-Id: I2fed4b3c0663fd15d43ee697837a89439f7bd07a
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Don't use NULL pointer if aquiring net buffer failed.
Change-Id: I11a22b832d1da9559b90abe0cb83eed56d14722f
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This adds conversion of advertising data (adv_data) to be used by
bt_le_adv_start function.
Change-Id: I403ff7ebed89dbf763d258b5dcdabfbb2cb68260
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
Test can be verified with
$ sanitycheck -s bluetooth/shell/test_nble -v
arduino_101 bluetooth/shell/test_nble PASSED
Change-Id: Icfc5892524041d169973bd6eb7d23b6ecffb98fc
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Fix compiler errors when CONFIG_BLUETOOTH_BREDR is not enabled.
Change-Id: I003985a9769120b3314eaf1b9563a3bf9712e32a
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Move buf_data to the place it is used reducing errors when dynamic
channels are disabled.
Change-Id: I82f640ffa8046e1c9b5805658e69cb722856d445
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
This reuses the existing code since that is not driver specific, with
this samples such as tester can be build using nble driver.
Change-Id: I6d9f3edf8deb2e84fce233ef02d1cd0ad6f52526
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Putting right target allows to build for arduino_101.
Change-Id: Ib11244c7f024c72f0ab0b15549be57c576bdef3c
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Currently it is not possible to build for Arduino since wrong platform
was specified.
Change-Id: I85ff6f5adb003db9a0905d6afa04bb5dfbd55d53
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
In addition to having a different CONF_FILE bt_enable needs to be given
a callback since nble driver cannot block while initializing.
Change-Id: I8bd2c79d0620e93dbecfef25c49c5529ff1ee954
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Applies '__stack' tag where necessary to ensure that stacks are
properly aligned.
All stacks must be properly aligned via the '__stack' macro tag.
Change-Id: Icfb04e246bd97b2185bb05e63647c7ab01993e36
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
nble sample is a copy of peripheral sample which now has support for
testing nble driver so a dedicated application just for that is no
longer needed.
Change-Id: Ia8ea2262fc2472a54c81b90eb86d9c0d4b12f42d
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds a test case that passes prj_nble.conf as CONF_FILE so that
the same code tested using HCI Bluetooth driver is also tested using
NBLE driver.
Change-Id: Ia4ad59d74b82c02007c55ea4fa8f53833d7a7fe5
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This makes it easier to port samples which may use
CONFIG_BLUETOOTH_MAX_PAIRED.
Change-Id: I3e37df7cae63a4ac2219ce26408ae4d4f987645d
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This make more sense since the handles are normally self allocated by
the stack.
Change-Id: I198dd9c3ef6259cff8a0e528514918ec18990dea
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
There is no need to keep arch specific prj.conf for these samples are
they are always the same.
Change-Id: I0f93b5a47458f9800a6654cc45914b911b42b3e3
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
These commmands don't have to return ATT error code, because
status BTP status is sufficient.
Change-Id: I5405bfbc0ad6fbac46eb3dab1ee63d3e18bf38fc
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds implementation of handlers for Configure Notifications
and Configure Notifications BTP commands.
Change-Id: I92c40836c09e145ea405226f321dd752ac16fc9f
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds noifications and indications commands and event
related structure defines to the tester application.
Change-Id: I532ab6471d2e7671213bfa526e7261308dd4b2f6
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
Enable seems to be more appropriate than Toggle.
Change-Id: I69ef509c47ddd7b76bc16684af60821328a7c647
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
Adjust printing bluetooth address in auth_cancel() user callback.
Change-Id: Ic39eeac36394d73eaee27c04bcad17e32704bbe7
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
_next member, as the name suggest, is internal and shall not be used by
application directly instead application must use bt_gatt_attr_next.
Change-Id: I7c137eae555475d024098cd14a54d965cb397eae
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Let us know that bt_enable() is successful.
Change-Id: I70581d950a9a922e809804bacfbfa039b2fec2fe
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
This makes sure the code behind CONFIG_BLUETOOTH_GATT_DYNAMIC_DB builds
properly and sanity_check is able to detect problems whenever there is
a change affecting it.
Change-Id: If46d1d9723f9daa494611e5a1799afd943e6519c
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This enable applications to build with a single table representing the
database where attributes don't have to store a pointer to the next
attribute thus reducing its size.
Change-Id: I4c84e2d50f9088a2f9879068890f0646e586e007
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Disabling ARC core allows to flash only lakemont and decrease unneeded
debug output.
Change-Id: Ifb913274302d7c69f1fb9c2e1747742d7a810627
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Test Nordic BLE on platforms which has support for it, at least we
need a UART configured to be connected to the chip.
Change-Id: I040fbb33436ae6bf973b521d52bf7b971993559a
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
All of the authentication APIs deal with bt_conn objects. For
consistency it makes therefore sense to use the proper bt_conn name
space with them.
Change-Id: I47912d542373df511524cc6ad2532d6c9a76ca68
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This is needed for GATT Server tests to implement larger attribute
databases.
Change-Id: Id160ac81b3e393697bdacd3e19033e9ff7c10fde
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This is essential so that the application can be notified of
connection failures and also be able to know the reason for the
disconnection.
Change-Id: I30108958963f6aeac690612bb26738dc4c67ca80
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Update the advertising API according to what has recently been
discussed and agreed upon.
Naming-wise the most important change is the removal of "EIR" which
was confusing since this is mainly used with LE at the moment. The
Core Specification Supplement consistently uses the generic terms data
and data type to describe what we're dealing with here, so the new
names are bt_data and BT_DATA.
Another change is to detach the actual data from the struct by
converting it from an array to a pointer. This is not only essential
for supporting BR/EDR (which has a different length) but to also
minimize memory usage.
Another change is to require the caller of bt_le_adv_start() to
provide the array lengths of the ad and sd paramters. This way we
don't have to have the empty (8-byte) element at the end of each
array.
Lastly, the bt_le_adv_start() logic is slightly modified so that it
will always clear the respective data if necessary. Previously the
user might have been left with a previous callers data if it passed
NULL to the API.
Change-Id: I318026ceb1b52bb688edf4dcfed82613bd15c3e1
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Uses proper bluetooth address during printing to standard output
when monitors connected, disconnected and security changed states
based on established connection transport type.
Change-Id: I87b54ee619c329ffa645bfbb5e453cf673b93181
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
Change default board for nble app to arduino_101
Change-Id: I5f8cd57c9834e38125d9e17cd4c3a96427db702a
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
If device is operating in security mode 3 PIN request callback
is called before connected.
Change-Id: Ie36363ae7af2398276f9cc4d07126344588b9ae6
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This is almost exactly the same as the peripheral app, except that it
uses CONFIG_NBLE.
Change-Id: Ia6854bce2a0babd03a3ce3251a173ce7ddbfe374
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Unified bluetooth address types will simplify tester code.
Change-Id: I6d973ff05a8a8dcabb12c9543cd4d747db3e6680
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
Intentionally only one CCC descriptor will be added to the database.
It's because this meets the conditions to pass PTS tests.
Change-Id: Ic29608e5a9fb4cee0c576d149e5dd26498b365ed
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
Changes the nanokernel FIFO API so that the timeout parameter must be
specified when invoking nano_isr_fifo_get(), nano_fiber_fifo_get(),
nano_task_fifo_get() and nano_fifo_get().
This obsoletes the following APIs:
nano_fiber_fifo_get_wait()
nano_fiber_fifo_get_wait_timeout()
nano_task_fifo_get_wait()
nano_task_fifo_get_wait_timeout()
nano_fifo_get_wait()
nano_fifo_get_wait_timeout()
Change-Id: Icbd2909292f1ced0bad8a70a075478536a141ef2
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Change terminology and use SoC instead of platform. An SoC provides
features and default configurations available with an SoC. A board
implements the SoC and adds more features and IP block specific to the
board to extend the SoC functionality such as sensors and debugging
features.
Change-Id: I15e8d78a6d4ecd5cfb3bc25ced9ba77e5ea1122f
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Use a real board name that can run this kernel instead of a generic
name. Basic functionality exits on this board with Zephyr.
Setup of the board is mostly similar to what we have in galileo (EFI
based)
Change-Id: Ic8554f26dcac0dbbbb6d35d863482f6207dc63c5
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
bt_gatt_discover function doesn't take user data and therefore
bt_gatt_discover_func_t is not providing any user data. It was
always providing discovery parameterts used so just match that
in function definition.
Change-Id: I90086285d02e2ef50be1d5d25299bb1c6819fdd7
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This adds peripheral sample application that is configured
in LE SC Only Mode. It tries to set security level to FIPS right
after connection is created. Two paired devices are supported.
Change-Id: I78f3e3eeaf552c52f982035168e967016858a00b
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
We can calculate the length with strlen() and there should be no need
to consider anything else except nul-terminated C strings.
Change-Id: I02ec4b1dddbb1bd457f035926c86b27f4c2ab050
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Instead of a switch statement use an if statement which is more
compact and readable.
Change-Id: Ie2cd703eef582b129d81331b4bbcee5e0eba2479
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Those applications don't require active scan to be performed.
Change-Id: I7c4b52ab8aaa700ab4fea4e2b19a66d182f799b6
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Included Services Found can be of type either Primary or Secondary.
Tester shall know the type of service discovered.
Change-Id: Ia78e0c76236bb0ce295a91c6617aa9eafdfcf60b
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds missing Type parameter in the Notification/Indication
Received event. This parameter specifies if the IUT received Notification
or Indication.
Change-Id: Ia9f4fbf6ede99c72d6c7bddb87f1aeb3b8b97600
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds extends BTP with commands to register for characteristic
value indications and notifications. These commands require CCC handle
parameter taken from PTS in the MMI.
Change-Id: Ie97c85c47590c0e29c5d8cb65cefe5f022f79f47
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
There is no point in trying to connect non connectable device.
Change-Id: I1e3d8486db7cd7ca80f226ec3f4c36ab43f14a1a
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This application only connects and disconnects to found devices.
Change-Id: Ic4d5cde52da37a369aa0583ec774c4dd116c6c6e
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This makes sure discovery UUID is a static variable so that it remain
valid once the scope changes.
Change-Id: Iaca9ab5d71f51e526dcd8439795e962bb359f9b2
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
The main purpose of sample app is testing H5 driver and catching
checkpatch build issues with H5 enabled.
Change-Id: Ia02cdcb38fc8f836de0e5f87b1afe428f7021673
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
This adds very simple peripheral application that supports
Device Information Service only and doesn't support pairing.
Change-Id: Iaec1317a8894db11388408d3f65af8a38d1618c3
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This patch replaces bt_gatt_attr_func_t with bt_gatt_discover_func_t
to be used as a type of discovery callback. The reason is
bt_gatt_attr_func_t don't return bt_conn which could be used
later on to issue other commands and to application to know
from which connection this results come.
Change-Id: I1f26c72ad5c8a0b97485a337c7005d34281586d7
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Read Multiple Characteristic Values command handler
to the tester. It allows to test if GATT Client can read multiple
values from a GATT Server.
Change-Id: I994ffac73eb8e6c0a7696dc41304efd9f01c35a4
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Long Write Characteristic Value/Descriptor command handler
to the tester. It allows to test if GATT Client writes long values properly.
Change-Id: I788707b0a043ecad6be32d9e1f8d536765ebf41a
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Write Characteristic Value/Descriptor command handler
to the tester. It allows to test if GATT Client performs write
operation properly.
Change-Id: I3afe167c7ca2789df7d288bbc06ffc8479240da8
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Read Long Characteristic Value/Descriptor command handler
to the tester. It allows to test if GATT Client can read long value from
a GATT Server.
Change-Id: I1c2060f7ecd45ca18ed5f9e0747121236b283631
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Read Characteristic Value/Descriptor command handler
to the tester. It allows to test if GATT Client can perform read
attribute value from a GATT Server.
Change-Id: If95b8d2d3a5a62048bb6371ae80b2834c20d88e1
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Signed Write Without Response command handler to the tester.
It allows to test if GATT Client can perform signed write operation without
acknowledgement form Server.
Change-Id: I14757e6a52abf87bed68103b2e6fbff200fb6bb8
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Write Without Response command handler to the tester.
It allows to test if GATT Client can perform write operation without
acknowledgement form Server.
Change-Id: I3663e2e01c0fabfd75e4bedab0955700e3003522
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Discover All Characteristic Descriptors command handler
to the tester. It allows to test if GATT Client can perform discovery of
characteristic descriptors within specified range.
Change-Id: Ieb04b47168249d8d76eab840b4f54b8b6b450792
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Discover Characteristics by UUID command handler
to the tester. It allows to test if GATT Client can perform discovery
of characteristics based on known UUID.
Change-Id: Iab78ea7e5bc85e1fadc46b7e8f5b28ee4b9db16d
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Discover All Characteristics command handler to the tester.
It allows to test if GATT Client can perform discovery of all
characteristics contained within specified range.
Change-Id: Ib70abaf1365fe4a73757507148723e66881b01de
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Find Included Services command handler to the tester.
It allows to test if GATT Client can perform relationship discovery.
Change-Id: I76c12fcd5e79d906b4e29b926a82a2022e505c40
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds Discover Primary Services by UUID command handler
to the tester. It allows to test if GATT Client can perform discovery
of primary services based on known service UUID.
Change-Id: If5788c6f23481c7b4af85834bf8b113a97a4b66d
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This adds implementation of passkey entry command in tester
application.
Change-Id: I0624ee9f899102284490a82f5bb0a68bb342640a
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
This adds implementation of pair command in tester application.
Change-Id: I55545bdf99e2828c17ec716069e925940f15d019
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
This adds implementation of setting io capabilities command in tester
application.
Change-Id: I21ae68633fb74d78db6e5622e1ee518ef0eed632
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
This patch adds stubs for SM commands defined in GAP.
Change-Id: I5aef256ade5a100eb0a582c5d9bd5eb8d01611f2
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
This patch separates helper for converting address type to btp
specific.
Change-Id: Ied723e01f5548b10e063a6771f8824c0c35b4682
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
This patch removes redundant tester_rsp_full public function with
wrapped tester_send function.
Change-Id: Iba517ed194e02045ca952b00b952c7608592fbbd
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
BTP Client received success response from the tester application too early,
so that next command was blocked due to pending ATT Request
Change-Id: I598c0e9e90984cac07f8b4ea265b0d6d69d3d18d
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This makes it simpler to add the services directly into GATT services
table.
Change-Id: I090c7f9396329cf524947dd6647230c663a55f60
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
PROJECTINCLUDE is not required in app makefiles.
Change-Id: I3751b7c51c453dfe47d207bb11d171138668c4e7
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Now that the H:4 driver is the default it doesn't have to be
explicitly enabled anymore. The only exception is the "no default
driver" option that's needed by the test_bluetooth unit test.
Change-Id: Ie582d51202714e314b76ffa9659c7a232a18fc1a
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Applications may want fine-grained control of connection parameters.
The two APIs to provide this through are bt_le_set_auto_conn() as well
as bt_conn_create_le().
Change-Id: If5cddbbf017b868d768d18d2a09daf4af8aa00d8
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Add command for choosing the default connection.
Change-Id: Id100320f31cb0e99ab48b162b466f52f6273018a
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
All current user just want basic active scanning so a corresponding
macro makes more sense than something based on duplicate filtering.
Change-Id: I97787be24b89fad66f2a952c5d53ab76f4e062fb
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Current MTU size was not sufficient to test GATT Client, where lower
tester requires to send data of length 512 +opcode +BT address.
This exceeds current BTP_MTU size.
Change-Id: I090c47975ecfe9a657d6ff1158b5dc764c8a78a1
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
Both places in the central app that enable scanning should do
duplicate filtering.
Change-Id: If7086667c78878355dc246aa3d0b5ebcbdd0ac7b
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
We'll need to have a much more flexible LE advertising API. This is a
first step in that direction. A convenience BT_LE_ADV() macro is
provided to ease converting application code.
Change-Id: I74854487bbdfb4b1cf1bee0b6351d1750a56ff86
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
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>
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>
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>
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>
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>
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>
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>
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>
Those are debug feature and were enabled by mistake.
Change-Id: Id49078fd4b910578af35dbe8660d148a691a4f13
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Setting up new platforms to handle emulation, and make them the only
ones able to run on QEMU from the Makefile "qemu" target to avoid
confusion with other platforms. We have now platform qemu_x86 and
platform qemu_cortex_m3, also modification to the sanity checks to have
qemu support only on those platforms
Signed-off-by: Sergio Rodriguez <sergio.sf.rodriguez@intel.com>
Change-Id: I9291918a1d58fea4f37750ada78234628f9a5d98
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Move btshell.h out of samples into include/misc and rename to shell.h
Move btshell.c into driver/console and rename to console_handler_shell.c
as an shell implementation based on new config
CONFIG_CONSOLE_HANDLER_SHELL.
Add shell_register_app_cmd_handler for an to app to optionally call so
that it can receive cmdlines not handled by the cmds registered with
shell_init
Change-Id: I5c1585e62ff7a0ee923c6c92833cc762cf912bad
Signed-off-by: Thomas Heeley <thomas.heeley@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Original name was too generic and confusing. This patch renames
driver to pipe UART and moves it to console drivers folder. Kconfig
destription is also improved.
Change-Id: I716fdbf7d636bbdc03b0fce27a59fd866f473246
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This refactor the way stored keys are handled to avoid overwriting
existing keys with new keys in case of pairing failed. Main goal is
to delay update of keys (including type and encryption size) until
link is succesfully encrypted with new key (legacy STK or LE SC LTK).
To fix this properly, TK is used to store STK or LE SC LTK and updates
of keys properties are done only on successfull encryption. This makes
code less error prone since update is done only in one place in code.
Also quering SMP code for current key makes sure that correct keys is
used in case of re-pairing.
Change-Id: I6b9e3d8229de522143e0d1fbfe0bd8223dad2a56
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This patch adds Exchange MTU command handler to the tester.
It allows to test if GATT Client can initiate MTU Exchange Procedure.
Change-Id: I2e50cec27fb7b944f57a4a6487138adbf126bad4
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This adds protocol specification for SM.
Change-Id: I9c6ef377d0e4ad261e466dfed3a35713cf79de12
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
If the SDU length is bigger than the amount data received in the first
packet it means it will be segmented in 2 or more packet until the SDU
is completed.
Since the MTU required by the upper layer could be much bigger than the
ACL buffer the code now request a buffer to reassemble the SDU.
Change-Id: I286d16e185f59a8128c4357dddebdc13145dfe31
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Add characterictic command requires to provide service ID to which this
characteristic shall be added. With this patch initialization will
succeed only if service with given ID exists.
Change-Id: Ie6223f293b4cac06f211556d29896b2e1ccd96ac
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch adds support for handling connect command in tester
application.
Change-Id: Ia35bcb33caf59b8df4a3cdc01c12d58fdeeecfe9
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
This allows to display passkey and confirm if it matches remote
device.
Change-Id: I22f706b6441210ef426702ec290a05112e06a4e2
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This patch adds missing connection unref in disconnect command. Also
lightly status setting was refactored.
Change-Id: Ic2502d8df15e45c4aea25632642af3d8a4fb23cc
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
This patch adds missing packed attribute to structures.
Change-Id: I9bcc8a677ae296e41eebb530584977660df52ebf
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
This patch extends Bluetooth Testing Protocol with commands used
while testing IUT as GATT client.
Commands are mapped to the procedures from Core Specification to make
use of Read Supported Commands command. Based on the response to this
command tester can determine which PTS test cases should be enabled.
If the IUT don't support eg. Reliable Writes, this command won't be
set in Read Supported Commands response, so that test cases that
test this functionality won't be executed.
Change-Id: I204a295698d4b69f73d0556b172770c4fd018009
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
Buffer size is 512, so uint16 type shall be used to store it's length.
Change-Id: I5abaf7d783032ff41819f7b838d4016932dece20
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch separates helper for converting uuid received from btp
command to bt_uuid.
Change-Id: If7f5423a839379763928ba5e87678697b1721d83
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
IUT shall response with Invalid Offset ATT error code, if it exceeds
value length.
Change-Id: I5c7148c96324482f198332d475742bfb44274957
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
The least significant bit of opcode is not used to distinguish between
command/response or events.
Change-Id: Icaa1b6d87968e095a7f231d43e74257f5acca379
Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>
There's no reason to depend on this config option, in fact it looks
like it doesn't even exist.
Change-Id: I3e072466700ca7115dfde5af09b08f98707062bb
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Refactors existing menu by putting as topmost selectable option
general bluetooth subsystem support instead so far Low Energy (LE).
Implication of the change is introduction of new BLUETOOTH_LE config
flag. The flag needs to be propagated to all existing bluetooth
related apps to make them buildable.
Change-Id: I608c1baad038e0ee4cccf44a3e597e16ae1f7f54
Signed-off-by: Arkadiusz Lichwa <arkadiusz.lichwa@tieto.com>
With this patch application can unsubscribe notifications
from Subscribe value callback directly, if BT_GATT_ITER_STOP
is returned.
Change-Id: I7873594f5dbe6e8c5bef11bf397a74cdc870a464
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch refactor reading of attribute values as a client.
Current MTU size is taken into account to determine if read
procedure has been completed or not.
For now, read procedure will be continued until whole is read,
or stopped by client.
Core Specification says that "The Read Blob Request is repeated
until the Read Blob Response’s Part Attribute Value parameter is
shorter than (ATT_MTU – 1)." (Vol 3, Part G 4.8.3)
Because application didn't know the current MTU value,
there was no way to determine if data received is complete.
Change-Id: I9d0e3f8638b58c3a4e39060333aedc133b775e3d
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This command will be used to add a descriptor to attributes database.
>> send 2 4 0 02000302cccc
Received: hdr: header(svc_id='\x02', op='\x04', ctrl_index='\x00',
data_len=2)
Received data (hex): 04 00
Received data (ascii): ('\x04\x00',)
> ACL Data RX: Handle 64 flags 0x02 dlen 9
ATT: Find Information Request (0x04) len 4
Handle range: 0x0004-0x0004
< ACL Data TX: Handle 64 flags 0x00 dlen 10
ATT: Find Information Response (0x05) len 5
Format: UUID-16 (0x01)
Handle: 0x0004
UUID: Unknown (0xcccc)
Change-Id: I64b77ce735e2dff10ae15290fb174b7f99876014
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This command is used by the tester to include service.
Service that is going to be included has to be already present
in the gatt database.
> ACL Data RX: Handle 64 flags 0x02 dlen 11
ATT: Read By Type Request (0x08) len 6
Handle range: 0x0001-0xffff
Attribute type: Include (0x2802)
< ACL Data TX: Handle 64 flags 0x00 dlen 14
ATT: Read By Type Response (0x09) len 9
Attribute data length: 8
Attribute data list: 1 entry
Handle: 0x0007
Value: 01000500aaaa
Change-Id: I12e1790be946c3cf10105c66a852da1cb23cf4bd
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch changes the way the attributes are added to the database.
From now, attributes will be registered one by one in gatt_db_add function.
This change is needed, because the handle of the attribute is assigned
in bt_gatt_register, and the tester application has to respond to the
command with valid attribute handles.
Moreover, Set Value command rely on the attribute handle, based on which
it looks for an attribute with handle spacified by tester to set it's
value.
Change-Id: I1f251f9bd5579bde2a52ebe3f1997da49c1b1721
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This will be needed to pass tests that require Insufficient Encryption
Key Size error response.
Change-Id: Ie358686d3a9843527e0c3dbd3918daed4e4d2f4c
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
The same opcode was used to Device Connected event.
Change-Id: I51640ed81822311817e82e43998c476795a28d49
Signed-off-by: Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>
We know the needed values at build-time, so there's no point in having
a runtime mechanism of accessing them in the code. Having the values
as defines makes it e.g. possible to use them as input for defining
the size of buffer pools.
Change-Id: Ib7556644719bfb631e638fa5bf29f3d1747a5072
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Disconnect command is special since it is also used for cancelling
outgoing connection. Due to this is might be called with default_conn
set to NULL. To avoid conditional unref always pick extra reference
from default_conn for local use.
Change-Id: I59ad583becbf39a71366069d0307aa44f2c64174
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This simplify the handling quite a bit while the application can still
prevent the buffer to be freed by referencing it if necessary.
Change-Id: I5ed0e96e8d9e349b79ba31ba9568af61181e1065
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Buffer received over L2CAP dynamic channels needs to be unref by the
application once they are done with it.
Change-Id: If210be1c538cf0b550dd03094d007b6851cdfbf4
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
The space that the HCI driver needs to reserve for its own use is not
necessarily symmetrical. E.g. even with the current H4 driver we only
need to reserve space for sending data but not for receiving it.
Keeping track of these values independently enables more efficient use
of the buffers.
Change-Id: I64917b545c5cd77356ed038d09afe76422334661
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Now that we have the buffer type enum as part of the HCI driver API we
can take advantage of it to pass the buffer type information and not
have to have two separate callbacks.
Change-Id: Ib2ee5b1540e532c9b27903e97660a276c1293fbc
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This is a necessary step in preparation for removing the buffer type
information from the buffers.
Change-Id: I29d8fae32aa660416a1c12e87840499c711e659f
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This allows to build sanity for both ARM and x86 archs.
Only supported platforms are enabled.
Change-Id: I499dbdee7b9df265affb2bba98b5bb100339fe18
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Tester application requires 3 UARTs and currently no x86 based
platform supports it. For convenience default to arch that allows
to run, not only build tester.
Change-Id: I086e72a580f56d94181a6d6eada7693ddd24dec1
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
Convert the code to use the net_buf API instead of the soon to be
removed bt_buf API.
Change-Id: I98a0720483d3f364b77fe6dc030c9169aa4ade67
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Convert the code to use the net_buf API instead of the soon to be
removed bt_buf API.
Change-Id: I4eb6cea592cce99dcc9e4c1b1219ebbf89eddd04
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Currently it is only possible to build the tester for arm.
Change-Id: I7fd530ca09bfa41072420da774fba3b48a5d5a90
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This makes BT_GATT_CHARACTERISTIC declare a local bt_gatt_chrc so the
applications don't need to declare themselves.
Change-Id: Icf3fad7dffea5667c6f13aa022a5722900da51e8
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
The spec says it should always be the very first descriptor after the
characteristic:
"BLUETOOTH SPECIFICATION Version 4.2 [Vol 3, Part G] page 534:
3.3.2 Characteristic Value Declaration
The Characteristic Value declaration contains the value of the
characteristic. It is the first Attribute after the characteristic
declaration. All characteristic definitions shall have a
Characteristic Value declaration."
Change-Id: I6c38dea9cc4c1a05997edbd348e2759680472725
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
value_handle is not used for anything.
Change-Id: I3885d221b162eb3bd44956af64280baf61dc001b
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
bt_gatt_register will assign a handle if not initialized and removing
the handle makes it simpler to change the attributes since it is no
longer possible to have conflicting handles.
Change-Id: I787f7325cc990c360056b1aefd07bb7d7876b445
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This allow calling bt_gatt_register multiple times so different tasks
can add their own services separately.
Change-Id: I8143ddedfa1079087d608013d1a97b552a3007dc
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
We want to make the naming convention ref/unref rather than get/put.
So far the only reference counted objects are the buffers and the
connections. For the buffers the new generic buffer API will also use
ref/unref.
Change-Id: I9fe8b8a6a50a8baf06ba231e8f6717a5a47dd292
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
If the attribute value is going to be changed by the upper tester,
(eg. to issue notification) for simplicity it can be stored in the
place of old one.
Change-Id: I03a6ebbda5d75e6ffa9c2fd6b3c0eab495623a11
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This allow sending direct notification to a specific peer without
using CCC which is allowed by the spec:
BLUETOOTH SPECIFICATION Version 4.2 [Vol 3, Part F page 507
3.4.7.1 Handle Value Notification
A server can send a notification of an attribute’s value at any time.
Change-Id: Ieff29216cb9ba197c0da92d7b22b26e63101cfa8
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Set discoverable command is used to set the discoverable flags
in advertisement data.
Change-Id: If46a5e05379c5f589afb1658a7b275a82c52e4e1
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This adds an option to enable L2CAP dynamic channel support, fixed
channels are not affected by it.
Change-Id: If36bece46b7b94142ea1ac976b878d1b5ae6a578
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
l2cap-register can be used to register a server:
btshell> l2cap-register 0x0080
bt: bt_l2cap_server_register (0x0011110c): PSM 0x0080
Change-Id: I2c2d9a4cba70b0cddaf352830659d206b609ee63
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Cleanup header inclusion and only include zephyr.h in samples
and applications.
Change-Id: If7460f4c6305a1c1cfcfdcf6a9bb7423f410c5c6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
With this patch device name obtained from advertising packets
will be printed out.
[DEVICE]: D0:03:4B:DA:10:46 (public), AD evt type 0,
RSSI -83 AppleLETester
[DEVICE]: D0:03:4B:DA:10:46 (public), AD evt type 4,
RSSI -82
[DEVICE]: 00:A0:50:00:00:08 (public), AD evt type 0,
RSSI -80 BLE Keyboard
Change-Id: Ic5116bce958d5b4479d481c40b2658ab56ecb819
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch makes attributes discovery more easier from the point
of shell application user.
UUIDs of discovered attribute declarations are now printed.
For services handle range is shown.
btshell> gatt-discover-primary 1800
btshell> Service 1800 found: start handle 00000001, end_handle 0000000b
Characteristic properties are parsed to string and printed
with characteristic value handle.
Characteristic f000ffc1-0451-4000-b000-000000000000 found: handle 0000006a,
value_handle 0000006b
Properties: [write][write w/w rsp][notify]
Change-Id: I6823fa562206ccf336dc301ee71bc4a02cecc14f
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
Advertising type is already configured based on current settings.
Change-Id: I4b47237c9ea7c48eab05786f01b38ebe3250141a
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
To allow the remote central to pair and encrypt the link.
IO capabilities are set to DisplayOnly.
Change-Id: I46459539f1b882952d29ee5eb8d17766715de4b8
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
We had two attributes stored with the same handle.
Change-Id: Ib24912578b958d428d6b3da3c2f73994691622bb
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
BTP protocol specifies value length to be 2 octets value,
so uint16_t has to be used to store this length.
Change-Id: I2a911910475db305a0ff1f9ab70866d24aa47158
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
Change all the Intel and Wind River code license from BSD-3 to Apache 2.
Change-Id: Id8be2c1c161a06ea8a0b9f38e17660e11dbb384b
Signed-off-by: Javier B Perez Hernandez <javier.b.perez.hernandez@linux.intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
This allows for compile test if analysis code builds.
Change-Id: I500d727a06ef065fc65465140062ec47d31e79fa
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This will be used to poll Zephyr to send it's supported commmands.
Change-Id: I12cb93a238cd14589123d88e9d9ba4d580dd6d71
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This is used to respond to the read request of characteristic
value.
Change-Id: Ia0518fae0d70e712621578a7938009345dbfaab4
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This adds support to handle set attribute value.
Change-Id: I2631cc8744210cfd76add1be3d30e5a0f54b3a7e
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This adds support for adding characteristic declaration and characteristic
value to the tester defined database of GATT attributes.
Change-Id: I108fc5a9bc5c7491fc354c71457d452baaedd868
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This adds support for tester application to cover GATT Server
automated tests. BTP ptotocol commands are used do drive stack to
build attributes database specified by the external tester.
Two commands: to add a service and to start the GATT server are
implemented.
Change-Id: I236c3e4d8636e97926514b2099779cb4334e95cd
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This patch is needed to be able to test zephyr against tests
which require Zephyr to be non-connectable.
This adds handler for the opcode 0x06 - Set Connectable command.
Based on connectable flag in current settings, the corresponding
advertising type is set after issuing Start Advertising command.
If connectable, Connectable undirected advertising type is set,
if non-connectable Non connectable undirected advertising type
is set.
Change-Id: I77865b67c4b717548095ac5e398a873d1b739d6a
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This feature is needed to pass some tests which require termination
of ACL link.
Change-Id: Idab03c569172ea6deb3bc5cf6744e5e73bd5de3e
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
According to new tester API in case of success Current_settings
shall be returned.
Change-Id: I1caf05180bff4756b8e7271098611d23200af8ee
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
These commands are necessary to pass some of the GAP tests.
Change-Id: Ia599e7dc3dd06aa5ac4130e0d878fcddad7b37dd
Signed-off-by: Mariusz Skamra <mariusz.skamra@tieto.com>
This allows to not compile SMP support for devices that don't
require pairing. It is required to support SMP channel and reply
with error for any command received even if pairing is not supported.
To handle this cleanly a null smp implementation is used that case.
Change-Id: I656a52dac882839db904eee65f25a4e29ea2d8c2
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This allows to not compile data signing support if it is not
required. Reduces image size of peripheral sample app from
45772 to 44436 bytes.
Change-Id: I2cd3515973d1a70f478cbd68426ec84fd1645d19
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>