platform/upstream/bluez.git
3 years agomesh: Fix double-free 31/234231/1 accepted/tizen/unified/20200529.124353 submit/tizen/20200527.022320
Brian Gix [Wed, 20 May 2020 22:14:38 +0000 (15:14 -0700)]
mesh: Fix double-free

This fixes a double-free error when destroying the NVM storage of a mesh node.
Cleanly handle two distinct scenarios:

1. When the node is being deleted at runtime.  This causes release of
   both dynamic memory and NVM storage.

2. During shutdown, we release dynamic memory only.

Change-Id: Ib69263c627e08f396d2f5dacbc04b4cfe0aace35
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Fix segfault caused by re-enabling of HCI controller 30/234230/1
Inga Stotland [Fri, 15 May 2020 17:41:56 +0000 (10:41 -0700)]
mesh: Fix segfault caused by re-enabling of HCI controller

This fixes the crash that occurs when a controller used by bluetooth-meshd
is removed and then added back again.

Also, correctly restart scanning when the controller is re-enabled.

Backtrace:
0x00005618e754d040 in ?? ()
0x00005618e6e12d9a in io_ready_callback () at mesh/mesh.c:174
0x00005618e6e3d2c8 in l_queue_foreach () at ell/queue.c:441
0x00005618e6e37927 in request_complete () at src/shared/mgmt.c:261

Change-Id: I360e9b1e4c39898d8b3c695e58f03cb89cf8076e
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Fix valgrind memory leak warnings 29/234229/1
Brian Gix [Sat, 16 May 2020 01:22:03 +0000 (18:22 -0700)]
mesh: Fix valgrind memory leak warnings

These warnings are caused by not completely freeing memory allocations
at shutdown, and are not serious, but they make valgrind output cleaner.

Change-Id: Ib08bb727fee9ea6dccd5e484bcd5d2f969b80a19
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Fix valgrind memory leaks 28/234228/1
Brian Gix [Sat, 16 May 2020 01:22:02 +0000 (18:22 -0700)]
mesh: Fix valgrind memory leaks

These memory leaks are ones that will compound over time with node
creation and deletion.

Change-Id: I67f757af13ea4d90676756ee6e1b786cefddef46
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Remove redundant call to save node configuration 27/234227/1
Inga Stotland [Sat, 9 May 2020 00:00:24 +0000 (17:00 -0700)]
mesh: Remove redundant call to save node configuration

This removes a redundant call to save node configuration in
add_local_node(): there is a number of unconditional calls to
mesh_config_write_<some_node_Setting>() within this function
which would result in the node configuration being saved implicitly.

Change-Id: I6ffb8eea7f627c734c2728940f9a24223ad19e8c
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Allow updating CID, PID, VID & CRPL on node attach 26/234226/1
Inga Stotland [Sat, 9 May 2020 00:00:23 +0000 (17:00 -0700)]
mesh: Allow updating CID, PID, VID & CRPL on node attach

This allows to update settings of the following composition fields
when an existing node (application) attaches to the daemon:
Company ID (CID), Product ID (PID), Versioin ID (VID),
CRPL (replay protection depth)

Change-Id: I674c7f04f4d6c11c7b8feaca08fd6b1ccb9af9c6
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Avoid saving duplicate fields in node config 25/234225/1
Inga Stotland [Sat, 9 May 2020 00:00:22 +0000 (17:00 -0700)]
mesh: Avoid saving duplicate fields in node config

This modifies miscellaneous utility functions in mesh-config-json.c:
when writing a new value to a node configuration file, delete
the existing field containing an old value first.

Change-Id: Iaed77e58eb33bbb3193d366ee909c75306ab40fc
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: On node attach, verify element/model composition only 24/234224/1
Inga Stotland [Sat, 9 May 2020 00:00:21 +0000 (17:00 -0700)]
mesh: On node attach, verify element/model composition only

When attaching an existing node, verify only the "elements" part
of device composition, i.e., skip verification of CID/PID/VID, CRPL
and features.

Change-Id: I0cc22ce1fe0128bdbb93abe2811ef5558807b2c4
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agotools/mesh-cfgclient: Save node's composition in config 23/234223/1
Inga Stotland [Fri, 8 May 2020 02:45:48 +0000 (19:45 -0700)]
tools/mesh-cfgclient: Save node's composition in config

Store remote node's composition after successful completion
of "composition-get" command (config menu).
Show model IDs when printing node info for "list-nodes" command
(main menu).

Change-Id: I679efd9c7214f2dc1132988395b312178eddf6ea
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agotools/mesh-cfgclient: Fix model app list parsing 22/234222/1
Inga Stotland [Wed, 6 May 2020 21:44:49 +0000 (14:44 -0700)]
tools/mesh-cfgclient: Fix model app list parsing

This fixes parsing of Model AppKey List & Vendor Model Appkey List
messages: taking into account the packt that AppKey indices are parked
two in three octets.

Also, when printing key indices, print in both decimal and hexadecimal
formats.

Change-Id: Iad95817a4f2f0789838f6701045959d7597d00c4
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agotools/mesh-cfgclient: Fix saving KR phase to config file 21/234221/1
Inga Stotland [Tue, 5 May 2020 17:43:03 +0000 (10:43 -0700)]
tools/mesh-cfgclient: Fix saving KR phase to config file

This eliminates extra write of KR phase when loading keys
from the configuration file on initialization.

Change-Id: If49adbfa1373be304b2a2396d2736a2727d2e8ce
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Fix publication setup for vendor models 20/234220/1
Inga Stotland [Wed, 29 Apr 2020 20:20:54 +0000 (13:20 -0700)]
mesh: Fix publication setup for vendor models

This fixes model ID generation when processing Config Pub Set
message. Also, cleanup some debug prints.

Change-Id: Ie92943fdc7e33f55b271d56fc06dfcce30cf92ff
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Fix adding virtual subscription to a vendor model 19/234219/1
Inga Stotland [Wed, 29 Apr 2020 18:05:41 +0000 (11:05 -0700)]
mesh: Fix adding virtual subscription to a vendor model

This fixes a case when a configuration server receives a virtual
subscription add/overwrite command targeting a vendor model.
Correctly set "vendor" argument before trying to save the updated
subscrition to configuration file.

Change-Id: I7ff5ca02e20819b316ef2f3b62e7ff01092d3070
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agotest/mesh: Remove Provisioner interface 18/234218/1
Brian Gix [Tue, 21 Apr 2020 20:08:37 +0000 (13:08 -0700)]
test/mesh: Remove Provisioner interface

This change removes the Provisioner Initiator from the python test
script, along with the menu commands for create, scan and add. This
makes it a cleaner Python3 example of a simple On/Off node, and a
fuller featured Provisioner/Config Client still exists in the tools
subdirectory.

Change-Id: I020fd501df2342eac4f8f9bc46de49ec2497a172
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agotest/mesh: Fix token format to use all 16 digits 17/234217/1
Brian Gix [Tue, 21 Apr 2020 16:09:51 +0000 (09:09 -0700)]
test/mesh: Fix token format to use all 16 digits

Change-Id: I15c592d706056406645bfacc0be31b0b96c557d3
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Fix GCC 10.0 warnings 16/234216/1
Brian Gix [Fri, 17 Apr 2020 18:57:21 +0000 (11:57 -0700)]
mesh: Fix GCC 10.0 warnings

Change-Id: I4cb7bdc28d642357131dacff6457cd0aa752ecac
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Add Time-outs to critical dbus send-with-replies 15/234215/1
Brian Gix [Tue, 14 Apr 2020 08:55:57 +0000 (10:55 +0200)]
mesh: Add Time-outs to critical dbus send-with-replies

JoinComplete() dbus method calls are the only time that node tokens are
delivered to client Applications, so if the call fails for any reason
(including time-outs) the daemon has a way to clean-up the stale unused
node data.

Change-Id: I9a524fc93a2987ec4d3480c6caaa10726d9d77c6
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agotools/mesh-cfgclient: Add waiting for 'JoinComplete' 14/234214/1
Przemysław Fierek [Tue, 14 Apr 2020 08:55:56 +0000 (10:55 +0200)]
tools/mesh-cfgclient: Add waiting for 'JoinComplete'

Change-Id: I762a640cbb3ed8cb0834121bfb8b1ab3d73232c9
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Change API to deliver tokens via JoinComplete 13/234213/1
Przemysław Fierek [Tue, 14 Apr 2020 08:55:55 +0000 (10:55 +0200)]
mesh: Change API to deliver tokens via JoinComplete

This patch changes Import and CreateNetwork API to deliver tokens via
the JoinComplete method call.  When application doesn't raise any error
during handling JoinComplete then it is assumed that the token has been
saved, otherwise when application replies with an error message then the
node is removed.

Change-Id: I76b7e61ede93aac732bb24ff6948ff75108d939e
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agodoc/mesh: Change API to deliver tokens via JoinComplete 12/234212/1
Michał Lowas-Rzechonek [Tue, 14 Apr 2020 08:55:54 +0000 (10:55 +0200)]
doc/mesh: Change API to deliver tokens via JoinComplete

If Application is not be able to reliably store the token, the daemon
will end up with a uncontrollable node in its database.

Let's fix the issue by always delivering tokens using JoinComplete call,
and expecting a reply - if the application return an error, daemon will
get rid of the node.

Change-Id: I82ed48f64b9bd8d6b77c99eb28d470fd58f97148
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Fix invalid app_path on 'Join' 11/234211/1
Przemysław Fierek [Thu, 9 Apr 2020 19:47:30 +0000 (21:47 +0200)]
mesh: Fix invalid app_path on 'Join'

This patch fixes invalid app_path on 'Join' method call - the daemon
tried to use the value of app_root API argument, while it should use
path discovered by scanning result of GetManagedObjects() call.

Change-Id: I4a7c8587d06e16aca7a6a081a6711a9fec52e872
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Ignore beacons with IVU if IV already updated 10/234210/1
Rafał Gajda [Tue, 7 Apr 2020 09:32:51 +0000 (11:32 +0200)]
mesh: Ignore beacons with IVU if IV already updated

When daemon receives beacon with IV=n+1, IVU=False it will
start sending messages with new IV and set sequence to 0.
However if daemon receives another beacon with IV=n+1, IVU=True it
will go back to sending messages with old IV=n (IVU set to True).
Because sequence number has been reset those messages will be dropped
by replay protection and node will lose communication.

Once IV is updated daemon should not go back to using the old value.

This patch adds beacon rejection if IV has already been updated.

Change-Id: I32a19c26d3fbbd7b281fdc4a12fa0dd369173517
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agotools/mesh-cfgclient: Default to highest security 09/234209/1
Brian Gix [Tue, 7 Apr 2020 17:01:55 +0000 (10:01 -0700)]
tools/mesh-cfgclient: Default to highest security

To encourage best practices, we request the highest level of
security available in common between provision initiator and
acceptor.

Change-Id: Ibf539b8800d57fee9b851dbc22a367964e99f1bf
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agounit: Exit test-mesh-crypto on any detected fail 08/234208/1
Brian Gix [Tue, 7 Apr 2020 16:10:33 +0000 (09:10 -0700)]
unit: Exit test-mesh-crypto on any detected fail

Unit test would signal failures if run on commandline, but not if
run as part of a unit test sweep. This change forces an exit(1) on
any detected fail, and is caught by test suite runner.

Change-Id: Ice205022416bbcb91bd937a035e288bae1c2fc81
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Remove redundant code from mesh/crypto 07/234207/1
Michał Lowas-Rzechonek [Thu, 26 Mar 2020 21:17:05 +0000 (22:17 +0100)]
mesh: Remove redundant code from mesh/crypto

- Remove application_encrypt/application_decrypt
- Make mesh_crypto_privacy_counter private, add mesh_crypto_pecb
- Make *_nonce functions private and align their implementation to be
  more consistent
- Refactor network_encrypt/network_decrypt to use *_nonce functions and
  rename them to packet_encrypt/packet_decrypt
- Refactor packet_encode/packet_decode

Change-Id: If342e994774714a75bdd0ae90766d1ec7b750b79
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agotools/mesh-cfgclient: Store "index" as integer in config 06/234206/1
Inga Stotland [Fri, 3 Apr 2020 01:26:55 +0000 (18:26 -0700)]
tools/mesh-cfgclient: Store "index" as integer in config

Write "index", "elementIndex", "boundNetKey" as integers
rather than hex strings in configuration file.

Change-Id: I824e548dfc5742f839f5e64513d283f2e849205b
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agotools/mescfg-client: Use local routines for config write 05/234205/1
Inga Stotland [Fri, 3 Apr 2020 01:26:54 +0000 (18:26 -0700)]
tools/mescfg-client: Use local routines for config write

This removes dependencies on internal structures of
mesh/mesh-config-json.c.

Change-Id: Ibd8c2f2bf132d70faadd4591ff8fec755ab20096
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Fix segfault related to idle config write 04/234204/1
Inga Stotland [Thu, 2 Apr 2020 00:04:36 +0000 (17:04 -0700)]
mesh: Fix segfault related to idle config write

If node configuration is completely removed from the system,
remove all pending writes to the configuration file.

Fixes the segfault below:

mesh/cfgmod-server.c:node_reset() Node Reset
mesh/mesh-config-json.c:mesh_config_destroy() Delete node config /var/lib/bluetooth/mesh/02040d0a060e0a08090b0103070f050c
mesh/util.c:del_fobject() RM /var/lib/bluetooth/mesh/02040d0a060e0a08090b0103070f050c/rpl/00000000/0001
mesh/util.c:del_fobject() RMDIR /var/lib/bluetooth/mesh/02040d0a060e0a08090b0103070f050c/rpl/00000000
mesh/util.c:del_fobject() RMDIR /var/lib/bluetooth/mesh/02040d0a060e0a08090b0103070f050c/rpl
mesh/util.c:del_fobject() RM /var/lib/bluetooth/mesh/02040d0a060e0a08090b0103070f050c/node.json.bak
mesh/util.c:del_fobject() RM /var/lib/bluetooth/mesh/02040d0a060e0a08090b0103070f050c/node.json
mesh/util.c:del_fobject() RMDIR /var/lib/bluetooth/mesh/02040d0a060e0a08090b0103070f050c
Segmentation fault

Program terminated with signal SIGSEGV, Segmentation fault.

  0x0000563a35df2ed0 in ?? ()
  0x00007fd6b131689f in json_object_to_json_string_length (jso=jso@entry=0x563a35dd8d30, flags=flags@entry=2,

Change-Id: Id92320eb3f05f4bda52cff1b6e41c5345bf1df2f
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
3 years agomesh: Move SEQ_MASK define in mesh-defs.h 03/234203/1
Inga Stotland [Thu, 2 Apr 2020 00:04:35 +0000 (17:04 -0700)]
mesh: Move SEQ_MASK define in mesh-defs.h

Change-Id: I1ec86a2033ab3e864ac5c4132afa4f0802305579
Signed-off-by: Abhay Agarwal <ay.agarwal@samsung.com>
4 years agoFix typo of variable in set_le_batching_param_complete 62/233662/1
Deokhyun Kim [Mon, 18 May 2020 04:29:51 +0000 (13:29 +0900)]
Fix typo of variable in set_le_batching_param_complete

Change-Id: Ia5b041d9d0c00e08d4a3310297205b1a71e5289a
Signed-off-by: Deokhyun Kim <dukan.kim@samsung.com>
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
4 years agoHandle not_supported case of BLE batching 25/233625/1
Deokhyun Kim [Thu, 14 May 2020 05:30:29 +0000 (14:30 +0900)]
Handle not_supported case of BLE batching

Change-Id: I0b08db175fda9a662ee532067ebf5f537cca8aff
Signed-off-by: Deokhyun Kim <dukan.kim@samsung.com>
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
4 years agoFix : Handle service changed indication properly 46/233446/2
injun.yang [Thu, 14 May 2020 02:28:40 +0000 (11:28 +0900)]
Fix : Handle service changed indication properly

[Model] All
[BinType] AP
[Customer] OPEN

[Issue#] P200504-04947
[Request] Internal
[Occurrence Version] N/A

[Problem] GATT service browsing failed.
[Cause & Measure] Ignore service indication during browsing.
 Some characteristics what is not included form the primary service is found.
 So unable to insert characteristic to GATT DB.
 Handle the indication before starting svc browsing.
[Checking Method] n/a

[Team] Convergence BT
[Developer] Injun Yang
[Solution company] Samsung
[Change Type] Specification change

Change-Id: I809beeb51a7d88dfc0cc15b062ab8f7e372b7ccc
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
4 years agogatt: Fix AcquireWrite and AcquireNotify server support 64/230964/1 accepted/tizen/unified/20200427.125827 submit/tizen/20200423.001024
Szymon Janc [Tue, 7 Apr 2020 01:29:06 +0000 (03:29 +0200)]
gatt: Fix AcquireWrite and AcquireNotify server support

Register read handler only for notify IO and handle socket
disconnection in sock_io_read.

Change-Id: I69349f7570aea4370bfb85809a3078886b7560e3
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
4 years agoSet the permission of CCC descriptior properly 48/230748/1
injun.yang [Mon, 13 Apr 2020 03:07:23 +0000 (12:07 +0900)]
Set the permission of CCC descriptior properly

[Model] All
[BinType] AP
[Customer] OPEN

[Issue#] N/A
[Request] Internal
[Occurrence Version] N/A

[Problem] Non bonded device can access to CCCD which have
 encrypted_authenticated permission
[Cause & Measure] Even though application set encrypted_authenticated
 permission to CCCD, bluez set it as read & write permission
[Checking Method] Register gatt server app which have
 encrypted_authenticated permiion on descriptor

[Team] Convergence BT
[Developer] Injun Yang
[Solution company] Samsung
[Change Type] Specification change

Change-Id: If6e718946a1e14297f6bd8c7af232d7425947746

4 years agoMerge "tools/mesh-cfgclient: Add commands for Key Refresh Phase" into tizen accepted/tizen/unified/20200408.131524 submit/tizen/20200407.043845
Anupam Roy [Thu, 2 Apr 2020 14:36:29 +0000 (14:36 +0000)]
Merge "tools/mesh-cfgclient: Add commands for Key Refresh Phase" into tizen

4 years agoMerge "tools/mesh-cfgclient: Save subnet key refresh phase" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:36:24 +0000 (14:36 +0000)]
Merge "tools/mesh-cfgclient: Save subnet key refresh phase" into tizen

4 years agoMerge "mesh: Clear prov capabilities structure before reading" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:35:10 +0000 (14:35 +0000)]
Merge "mesh: Clear prov capabilities structure before reading" into tizen

4 years agoMerge "doc/mesh-api: OOB Information field is 16 bit, not 32" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:35:02 +0000 (14:35 +0000)]
Merge "doc/mesh-api: OOB Information field is 16 bit, not 32" into tizen

4 years agoMerge "mesh: Honor provisioner's capabilities" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:34:47 +0000 (14:34 +0000)]
Merge "mesh: Honor provisioner's capabilities" into tizen

4 years agoMerge "mesh: Refresh provisioner's capabilities" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:34:38 +0000 (14:34 +0000)]
Merge "mesh: Refresh provisioner's capabilities" into tizen

4 years agoMerge "mesh: Clean up naming of provisioning callbacks" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:34:29 +0000 (14:34 +0000)]
Merge "mesh: Clean up naming of provisioning callbacks" into tizen

4 years agoMerge "mesh: Remove unused 'server' argument" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:34:20 +0000 (14:34 +0000)]
Merge "mesh: Remove unused 'server' argument" into tizen

4 years agoMerge "tools/mesh-cfgclient: Display unprovisioned OOB data" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:33:43 +0000 (14:33 +0000)]
Merge "tools/mesh-cfgclient: Display unprovisioned OOB data" into tizen

4 years agoMerge "tools/mesh-cfgclient: Fix SIGSEGV" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:33:34 +0000 (14:33 +0000)]
Merge "tools/mesh-cfgclient: Fix SIGSEGV" into tizen

4 years agoMerge "mesh: Add net key index to sar structure" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:33:05 +0000 (14:33 +0000)]
Merge "mesh: Add net key index to sar structure" into tizen

4 years agoMerge "mesh: Remove unused functions: 'mesh_net_sub_list_add' and 'mesh_net_sub_list_...
Anupam Roy [Thu, 2 Apr 2020 14:32:54 +0000 (14:32 +0000)]
Merge "mesh: Remove unused functions: 'mesh_net_sub_list_add' and 'mesh_net_sub_list_del'" into tizen

4 years agoMerge "mesh: Remove unused argument from 'mesh_net_transport_send' function" into...
Anupam Roy [Thu, 2 Apr 2020 14:32:43 +0000 (14:32 +0000)]
Merge "mesh: Remove unused argument from 'mesh_net_transport_send' function" into tizen

4 years agoMerge "tools/mesh-cfgclient: Update to match modified APIs" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:32:35 +0000 (14:32 +0000)]
Merge "tools/mesh-cfgclient: Update to match modified APIs" into tizen

4 years agoMerge "test/test-mesh: Update to match modified APIs" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:32:25 +0000 (14:32 +0000)]
Merge "test/test-mesh: Update to match modified APIs" into tizen

4 years agoMerge "mesh: Update UnprovisionedScan, AddNode & ScanResult" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:32:15 +0000 (14:32 +0000)]
Merge "mesh: Update UnprovisionedScan, AddNode & ScanResult" into tizen

4 years agoMerge "doc/mesh-api: Forward compatibility modifications" into tizen
Anupam Roy [Thu, 2 Apr 2020 14:31:50 +0000 (14:31 +0000)]
Merge "doc/mesh-api: Forward compatibility modifications" into tizen

4 years agotools/mesh-cfgclient: Add commands for Key Refresh Phase 79/229679/1
Inga Stotland [Sun, 29 Mar 2020 20:56:15 +0000 (13:56 -0700)]
tools/mesh-cfgclient: Add commands for Key Refresh Phase

This adds two new menu commands:
"kr-phase-get" - sends Config Key Refresh Phase Get message
"kr-phase-set" - sends Config Key Refresh Phase Set message

Change-Id: I81e84e1640d10e854933d12af519e64e482a79fa
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agoMerge "Use the external ell package" into tizen
Pyun DoHyun [Thu, 2 Apr 2020 02:25:49 +0000 (02:25 +0000)]
Merge "Use the external ell package" into tizen

4 years agotools/mesh-cfgclient: Save subnet key refresh phase 78/229678/1
Inga Stotland [Sun, 29 Mar 2020 20:56:14 +0000 (13:56 -0700)]
tools/mesh-cfgclient: Save subnet key refresh phase

This records Key Refresh phase of a subnet either as a consequence
of successful execution of subnet-update or subnet-set-phase commands.

Change-Id: I71ad1078a915986dd788f695cdd8e25db3e29d92
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Clear prov capabilities structure before reading 77/229677/1
Brian Gix [Wed, 1 Apr 2020 18:02:57 +0000 (11:02 -0700)]
mesh: Clear prov capabilities structure before reading

Capabilities need to be zero'd before realtime reading fresh values,
because they are mostly bitmasks, which are set when capabilities are
detected, and never otherwise cleared.

Change-Id: Ie01556568ca1601685445391b4e7c80a23c7983e
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agodoc/mesh-api: OOB Information field is 16 bit, not 32 76/229676/1
Michał Lowas-Rzechonek [Wed, 1 Apr 2020 10:25:02 +0000 (12:25 +0200)]
doc/mesh-api: OOB Information field is 16 bit, not 32

Change-Id: I7c1cee1b6fc0230a2eb860c3b1ab32e3dddaff9b
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Honor provisioner's capabilities 75/229675/1
Michał Lowas-Rzechonek [Wed, 1 Apr 2020 10:25:01 +0000 (12:25 +0200)]
mesh: Honor provisioner's capabilities

This patch makes the daemon select authentication method based from
capabilities supported by both provisioned node and provisioner
application.

Change-Id: I36f85087e4b903f7a4472572e96b3a4c75cb96c4
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Refresh provisioner's capabilities 74/229674/1
Michał Lowas-Rzechonek [Wed, 1 Apr 2020 10:25:00 +0000 (12:25 +0200)]
mesh: Refresh provisioner's capabilities

As provisioner's capabilities might change during application lifetime
(e.g. no network link to download OOB key), let's query the agent again
after application calls AddNode().

Change-Id: I29cbff53383fec85bc9eba00e6729defcd423ce4
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Clean up naming of provisioning callbacks 73/229673/1
Michał Lowas-Rzechonek [Wed, 1 Apr 2020 10:24:59 +0000 (12:24 +0200)]
mesh: Clean up naming of provisioning callbacks

Change-Id: I06a052241958d54371270c1ff15117160d27c5e8
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Remove unused 'server' argument 72/229672/1
Michał Lowas-Rzechonek [Wed, 1 Apr 2020 10:24:58 +0000 (12:24 +0200)]
mesh: Remove unused 'server' argument

Change-Id: If1a5c46c2cd30a73d89cc101a696c3330e825579
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Display unprovisioned OOB data 71/229671/1
Michał Lowas-Rzechonek [Wed, 1 Apr 2020 10:24:57 +0000 (12:24 +0200)]
tools/mesh-cfgclient: Display unprovisioned OOB data

Change-Id: I9257279860ca2e7fb537d9de9b02d4ecb3ab737f
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Fix SIGSEGV 70/229670/1
Anupam Roy [Wed, 1 Apr 2020 10:37:36 +0000 (16:07 +0530)]
tools/mesh-cfgclient: Fix SIGSEGV

This patch addresses the following crash:

[mesh-cfgclient]#
Program received signal SIGSEGV, Segmentation fault.
strlen () at ../sysdeps/x86_64/strlen.S:106
106     ../sysdeps/x86_64/strlen.S: No such file or directory.
(gdb) bt
0  strlen () at ../sysdeps/x86_64/strlen.S:106
1  0x00000000004235d6 in l_dbus_interface_method (interface=interface@entry=0x66d900, name=name@entry=0x42bbad "ScanResult", flags=flags@entry=0,
    cb=cb@entry=0x404940 <scan_result_call>, return_sig=return_sig@entry=0x42f7ca "", param_sig=param_sig@entry=0x42bba4 "naya{sv}") at ell/dbus-service.c:320
2  0x000000000040433d in setup_prov_iface (iface=0x66d900) at tools/mesh-cfgclient.c:1695
3  0x00000000004249b1 in _dbus_object_tree_register_interface (tree=0x65b770, interface=interface@entry=0x42baa8 "org.bluez.mesh.Provisioner1",
    setup_func=setup_func@entry=0x404310 <setup_prov_iface>, destroy=destroy@entry=0x0, old_style_properties=old_style_properties@entry=false)
    at ell/dbus-service.c:1385
4  0x000000000041cffa in l_dbus_register_interface (dbus=<optimized out>, interface=interface@entry=0x42baa8 "org.bluez.mesh.Provisioner1",
    setup_func=setup_func@entry=0x404310 <setup_prov_iface>, destroy=destroy@entry=0x0, handle_old_style_properties=handle_old_style_properties@entry=false)
    at ell/dbus.c:1455
5  0x0000000000403f4e in register_app () at tools/mesh-cfgclient.c:1770
6  client_ready (client=<optimized out>, user_data=<optimized out>) at tools/mesh-cfgclient.c:1815
7  0x0000000000425ed2 in get_managed_objects_reply (message=<optimized out>, user_data=0x66ab50) at ell/dbus-client.c:572
8  0x000000000041bc25 in handle_error (message=0x66c0c0, dbus=<optimized out>) at ell/dbus.c:236
9  0x000000000041cdcc in message_read_handler (io=<optimized out>, user_data=0x6653f0) at ell/dbus.c:276
10 0x0000000000418763 in io_callback (fd=<optimized out>, events=1, user_data=0x6664e0) at ell/io.c:126
11 0x000000000041957a in l_main_iterate (timeout=<optimized out>) at ell/main.c:473
12 0x000000000041964c in l_main_run () at ell/main.c:520
13 0x000000000041986b in l_main_run_with_signal (callback=callback@entry=0x4153a0 <l_sig_func>, user_data=user_data@entry=0x0) at ell/main.c:642
14 0x0000000000415471 in mainloop_run_with_signal (func=func@entry=0x4139a0 <signal_callback>, user_data=user_data@entry=0x0) at src/shared/mainloop-ell.c:87
15 0x0000000000414b6f in bt_shell_run () at src/shared/shell.c:1177
16 0x00000000004039ed in main (argc=<optimized out>, argv=<optimized out>) at tools/mesh-cfgclient.c:1999

Change-Id: If3906df5485d4f2276a51db1c283b5865d626139
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Add net key index to sar structure 69/229669/1
Przemysław Fierek [Tue, 31 Mar 2020 12:09:08 +0000 (14:09 +0200)]
mesh: Add net key index to sar structure

This patch adds net key index to struct mesh_sar. This fixes problem with
using invalid network key to encrypt application messages.

Change-Id: I5dfb8a2cd8cdc496e70ef1fafee60998a05bc698
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Remove unused functions: 'mesh_net_sub_list_add' and 'mesh_net_sub_list_del' 68/229668/1
Przemysław Fierek [Tue, 31 Mar 2020 12:09:07 +0000 (14:09 +0200)]
mesh: Remove unused functions: 'mesh_net_sub_list_add' and 'mesh_net_sub_list_del'

Change-Id: If62f3b67b94785f14de862f2936aaff2bca573ec
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Remove unused argument from 'mesh_net_transport_send' function 67/229667/1
Przemysław Fierek [Tue, 31 Mar 2020 12:09:06 +0000 (14:09 +0200)]
mesh: Remove unused argument from 'mesh_net_transport_send' function

Change-Id: Iceae64fcd23c8891a1e5955e58f824aac1279742
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Update to match modified APIs 66/229666/1
Inga Stotland [Fri, 27 Mar 2020 18:42:57 +0000 (11:42 -0700)]
tools/mesh-cfgclient: Update to match modified APIs

This handles updated parameter list in UnprovisionedScan(),
AddNode() and ScanResult() D-Bus methods

Change-Id: Id98ff232310576ab2c518081fa438f6643bf2734
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotest/test-mesh: Update to match modified APIs 65/229665/1
Inga Stotland [Fri, 27 Mar 2020 18:42:56 +0000 (11:42 -0700)]
test/test-mesh: Update to match modified APIs

This handles updated parameter list in UnprovisionedScan(),
AddNode() and ScanResult() D-Bus methods

Change-Id: I9022a1aaf46f8609cc21f20864d5adbf223a32a2
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Update UnprovisionedScan, AddNode & ScanResult 64/229664/1
Inga Stotland [Fri, 27 Mar 2020 18:42:55 +0000 (11:42 -0700)]
mesh: Update UnprovisionedScan, AddNode & ScanResult

The following methods are modified to allow for future development:

Interface org.bluez.mesh.Management1:

Old: void UnprovisionedScan(uint16 seconds)
New: void UnprovisionedScan(dict options)

    The options parameter is a dictionary with the following keys defined:
    uint16 Seconds
                Specifies number of seconds for scanning to be active.
                If set to 0 or if this key is not present, then the
                scanning will continue until UnprovisionedScanCancel()
                or AddNode() methods are called.
    other keys TBD

Old: void AddNode(array{byte}[16] uuid)
New: void AddNode(array{byte}[16] uuid, dict options)

    The options parameter is currently an empty dictionary

Interface org.bluez.mesh.Provisioner1

Old: void ScanResult(int16 rssi, array{byte} data)
New: void ScanResult(int16 rssi, array{byte} data, dict options)

    The options parameter is currently an empty dictionary

Change-Id: Ia4b95ea2850c39406859e861b41f79f88a18910a
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agodoc/mesh-api: Forward compatibility modifications 63/229663/1
Inga Stotland [Fri, 27 Mar 2020 18:42:54 +0000 (11:42 -0700)]
doc/mesh-api: Forward compatibility modifications

The following methods are modified to allow for future development:

Interface org.bluez.mesh.Management1:

Old: void UnprovisionedScan(uint16 seconds)
New: void UnprovisionedScan(dict options)

    The options parameter is a dictionary with the following keys defined:
    uint16 Seconds
                Specifies number of seconds for scanning to be active.
                If set to 0 or if this key is not present, then the
                scanning will continue until UnprovisionedScanCancel()
                or AddNode() methods are called.
    other keys TBD

Old: void AddNode(array{byte}[16] uuid)
New: void AddNode(array{byte}[16] uuid, dict options)

    The options parameter is currently an empty dictionary

Interface org.bluez.mesh.Provisioner1

Old: void ScanResult(int16 rssi, array{byte} data)
New: void ScanResult(int16 rssi, array{byte} data, dict options)

    The options parameter is currently an empty dictionary

Change-Id: I6e9922a4f0ade412980693e463f024d363899530
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agoAdd GATT data batching 61/229261/1 accepted/tizen/unified/20200402.155610 submit/tizen/20200401.080249
Deokhyun Kim [Tue, 25 Feb 2020 02:26:54 +0000 (11:26 +0900)]
Add GATT data batching

Change-Id: I68a2b1047e43bc074df64edc018ab885a1a7ac1e

4 years agoMerge "Add GetEnergyInfo method for the power management" into tizen
Pyun DoHyun [Fri, 27 Mar 2020 03:37:47 +0000 (03:37 +0000)]
Merge "Add GetEnergyInfo method for the power management" into tizen

4 years agomesh: Whitespace correction 60/228960/1
Brian Gix [Wed, 25 Mar 2020 16:55:49 +0000 (09:55 -0700)]
mesh: Whitespace correction

Change-Id: I186cd70cfdb80d842d6ddb944682a93ef146e83f
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Send input complete for input OOB Authentication 59/228959/1
Prathyusha N [Tue, 24 Mar 2020 19:27:23 +0000 (00:57 +0530)]
mesh: Send input complete for input OOB Authentication

Send input complete when user completes input operation.

Change-Id: Iff9e863e2392992aa838884c56b05bbdfd35c641
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Handle invalid public keys 58/228958/1
Prathyusha N [Tue, 24 Mar 2020 19:27:18 +0000 (00:57 +0530)]
mesh: Handle invalid public keys

Check for invalid public keys received and send provision failed.

Change-Id: Ie1a62b525560b367729c8f96b95669ffb34b70b1
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Handle netkey delete when netkey is not in netkeylist 57/228957/1
Prathyusha N [Tue, 24 Mar 2020 19:27:21 +0000 (00:57 +0530)]
mesh: Handle netkey delete when netkey is not in netkeylist

4.4.1.2.9 of Mesh Profile Bluetooth specification:
When an element receives a Config NetKey Delete message that
identifies a NetKey that is not in the NetKey List, it
responds with Success, because the result of deleting the
key that does not exist in the NetKey List will be the same
as if the key was deleted from the NetKey List.

Change-Id: Ibbf51b1e2cb53480cc77cd44f79ce123241adef3
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Fix Replay Protection Cache 56/228956/1
Brian Gix [Mon, 23 Mar 2020 21:37:04 +0000 (14:37 -0700)]
mesh: Fix Replay Protection Cache

There was a bug identified in the RPL storage, such that the real-time
queue was being filled by incorrect unicast addresses. (Thx ccsanden).

Change-Id: I4460f9506242208571a1ff6c1377e5ec2bb28c40
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Allow short messages to be segmented 55/228955/1
Brian Gix [Wed, 18 Mar 2020 17:00:20 +0000 (10:00 -0700)]
mesh: Allow short messages to be segmented

For added reliability, it is legal to send short messages as "single
segment" segmented messages, which require transport layer
acknowledgement. This feature is intended for heavy usage in the future
so I am adding it now.

Further, to support this functionality, an additional queue has been
added to allow multiple SAR messages to the same DST to be queued and
sent serially.

Change-Id: I6dfa9543ab9a9a49438e46f38fa25659f50db82d
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Increase app's CRPL size 54/228954/1
Inga Stotland [Wed, 18 Mar 2020 17:48:59 +0000 (10:48 -0700)]
tools/mesh-cfgclient: Increase app's CRPL size

This increases the value of the CRPL supplied by the applicaiton
to 0x7fff: since the tool is intended to be a provisioner and config
client, it may have to keep track of communications with a significant
number of unique mesh nodes, each with its corresponding CRPL entry in
config client node storage. Therefore, a large CRPL size is necessary.

Change-Id: Ibe00615cc57e161d107f36c6b1086a495dc9aa5e
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Fix processing of Config Node Reset message 53/228953/1
Inga Stotland [Tue, 17 Mar 2020 22:15:46 +0000 (15:15 -0700)]
mesh: Fix processing of Config Node Reset message

This fixes a condition when a node continues processing messages
after it has been reset by a remote configuration client.
Upon receiving Config Node Reset message, node removal happens after
a grace interval to allow sending of Config Node Reset Status reply.

Change-Id: I7bb87d65c141a479325fc5436921e62aab0eef95
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Implement node-reset command 52/228952/1
Inga Stotland [Tue, 17 Mar 2020 22:15:45 +0000 (15:15 -0700)]
tools/mesh-cfgclient: Implement node-reset command

This implements one-pass removal oa a remote node from a mesh network
by issuing a node-reset command from config menu. The following actions
are performed:
- Config Node Reset message is sent to a remote node
- Upon either receiving Config Node Reset Status or response timeout,
  node record is removed from configuration client's database and,
  by calling DeleteRemoteNode() method on mesh.Management interface

node-delete command from the main menu is removed.

Change-Id: I52fb6c640b6001373ff9650b3440f518ad5d5d85
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotest/test-mesh: Add support for static OOB in the agent 51/228951/1
Inga Stotland [Wed, 11 Mar 2020 22:37:12 +0000 (15:37 -0700)]
test/test-mesh: Add support for static OOB in the agent

This allows to display a 16-octet key to be entered on the remote
device during provisioning.

Change-Id: If00c3e86c419733a348f412ec350a88d4127f85f
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Add support for Static OOB key 50/228950/1
Brian Gix [Wed, 11 Mar 2020 22:59:40 +0000 (15:59 -0700)]
tools/mesh-cfgclient: Add support for Static OOB key

This fixes a bug that didn't allow 16 octet Static OOB strings during
provisioning.

Change-Id: I08c04784d920b4cf4dcff0e172e9095d00be7bc7
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agoREADME: Add Mesh required Kernel Configuration section 49/228949/1
Brian Gix [Wed, 11 Mar 2020 22:15:18 +0000 (15:15 -0700)]
README: Add Mesh required Kernel Configuration section

Not all distributions include all required mesh crypto support.  This
adds a section with known kernel required options.

Change-Id: I8b62d79ffb4688426f1b37a27be494abcd1eb00a
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Record remote node's default TTL 48/228948/1
Inga Stotland [Wed, 4 Mar 2020 07:39:15 +0000 (23:39 -0800)]
tools/mesh-cfgclient: Record remote node's default TTL

This adds code to save the value of a remote node's default TTL
upon receiving Config Default TTL Status message.

Also, cleanup leftover "#if 0" clause

Change-Id: Ie1bb672b4b3b617017e08b68c73c2c8c361fa00a
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Add address checks for pub/sub commands 47/228947/1
Inga Stotland [Mon, 2 Mar 2020 20:40:29 +0000 (12:40 -0800)]
tools/mesh-cfgclient: Add address checks for pub/sub commands

This addrs verification of subscriptpion address value entered on
the command line: unassigned address, unicast address, and
all-nodes address are not allowed. Publication address check verifies
that the entered value falls into mesh address space.

Also, change the type of parameter count in comaand processing routines
from int to uint32_t to match the retrun type of the parameter parsing
routine.

Change-Id: Ib5747a132e59e4af5f21dbad5319167234230548
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Remove unused parameters from internal rx functions 46/228946/1
Inga Stotland [Thu, 27 Feb 2020 06:56:07 +0000 (22:56 -0800)]
mesh: Remove unused parameters from internal rx functions

This removes unused ttl parameter from mesh_model_rx(). The TTL value
is not processed at the access layer, so there is no need to pass it
to a model.
Also, remove "uint32_t dst" parameter from the typedef of
mesh_model_recv_cb: providing a just destination address is sufficient
for internally implemented models (currently, it's only Config Server)

Change-Id: I603aa23a495a40bb804e0a370331d1efd8508270
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotest/test-mesh: Fix output of UpdateModelConfig method 45/228945/1
Inga Stotland [Tue, 25 Feb 2020 18:44:18 +0000 (10:44 -0800)]
test/test-mesh: Fix output of UpdateModelConfig method

This correctly unpacks configuration dictionary received
in the UpdateModelConfig() method

Change-Id: If7ca5d0b2249508bb0df4a0cc7f78d74da8e30bc
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Clean up handling config model publication message 44/228944/1
Inga Stotland [Tue, 25 Feb 2020 18:44:17 +0000 (10:44 -0800)]
mesh: Clean up handling config model publication message

This tightens up the Config Server code that handles the processing of
Config Model Publication Set and Config Model Publication Get messages.

Change-Id: I3ce67395f0a092e37f0e8f2396092b13ff53ac20
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Simplify model virtual pub/sub logic 43/228943/1
Inga Stotland [Tue, 25 Feb 2020 18:44:16 +0000 (10:44 -0800)]
mesh: Simplify model virtual pub/sub logic

This reorganizes the part of the code that handles model publishing
and subscribitng to virtual labels.

Change-Id: I4780c38113b64967ed555ef8172b15e98cab3ed3
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Save and restore group addresses 42/228942/1
Inga Stotland [Tue, 25 Feb 2020 18:44:15 +0000 (10:44 -0800)]
tools/mesh-cfgclient: Save and restore group addresses

This allows to save created virtual labels and group addresses
in configuration file. The stored values can be restored upon
the tool start up.

Change-Id: Idd28a88e47f1401f488bd770ce6c9940fdb39bd0
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Clean up subscription list output 41/228941/1
Inga Stotland [Tue, 25 Feb 2020 18:44:14 +0000 (10:44 -0800)]
tools/mesh-cfgclient: Clean up subscription list output

This tightens up the subscritpiton list status print out:
use the same function for vendor and SIG models.

Change-Id: Ifc6dac0152c6b62cbcaf6b0648c42bb822274401
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotools/mesh-cfgclient: Add support for virtual labels 40/228940/1
Inga Stotland [Tue, 25 Feb 2020 18:44:13 +0000 (10:44 -0800)]
tools/mesh-cfgclient: Add support for virtual labels

This adds commands to generate and use virtual addresses for
configuring remote node's publication and subscription.

New commands:
virt-add - generate a new label and calculate virtual address
group-list - displays group addresses that are in use and available
             virtual labels with corresponding virtual addresses

Change-Id: I823786d050673491739d895461d8b564c757ee6b
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: rework incoming advertisement filtering 39/228939/1
Brian Gix [Sun, 23 Feb 2020 18:47:37 +0000 (10:47 -0800)]
mesh: rework incoming advertisement filtering

Future versions of Mesh will introduce new advertising packets, which
do not fit in the limited and rigid filtering currently used. This minor
rewrite allows registering and receiving of *any* AD types, including
the filtering on multiple octets of the incoming AD parts.

Change-Id: I36c8f673100afbfd3738d9e243020f13064c7262
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Fix app payload decryption for virtual labels 38/228938/1
Inga Stotland [Tue, 18 Feb 2020 19:30:10 +0000 (11:30 -0800)]
mesh: Fix app payload decryption for virtual labels

This fixes a bug when a virtual label and its size hasn't been passed
to a decryption function: instead of always using NULL pointer for
label and 0 for lable size, use actual virtual label info if decrypting
a payload addressed to a virtual destination.

Change-Id: Ica8abfd453aa4085998c00725f4bf23146d9a5dd
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agounit: Add Mesh test 8.3.22 - Virtual Addressing 37/228937/1
Brian Gix [Tue, 18 Feb 2020 18:34:36 +0000 (10:34 -0800)]
unit: Add Mesh test 8.3.22 - Virtual Addressing

Change-Id: I7a4bfaed4f961466c3eb81b0f46cc8643169c495
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agotest/test-mesh: Fix output of MessageReceived method 36/228936/1
Inga Stotland [Tue, 18 Feb 2020 07:52:08 +0000 (23:52 -0800)]
test/test-mesh: Fix output of MessageReceived method

This fixes formatted output of recieved message parameters.

Change-Id: I3df227d548ed9f99c806c6b5fec264555fee5d2f
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Fix keyring app keys directory iteration 35/228935/1
Inga Stotland [Fri, 7 Feb 2020 06:39:45 +0000 (22:39 -0800)]
mesh: Fix keyring app keys directory iteration

This fixes how app key files are accessed when finalizing
Key Refresh procedure. Instead of using open(entry->d_name, ...)
to get file descriptor, use openat(dir_fd, entry->d_name, ...)
since entry->d_name contains a relative app key filename, not an
absolute path.

Change-Id: I943a3b180ed8425d3437a659c50461e167353bfd
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agomesh: Allow to finish key refresh when no AppKeys are stored 34/228934/1
Inga Stotland [Wed, 5 Feb 2020 22:53:43 +0000 (14:53 -0800)]
mesh: Allow to finish key refresh when no AppKeys are stored

This handles a case when a Key Refresh procedure is in place with
no application keys stored in the keyring. When KR procedure is
finalized, the check for the presence of AppKeys storage directory
does not return failure if the directory does not exist.

Also, remove duplicate include.

Change-Id: I1ca58e5b4f06acf8ef17e8eb0ac0afa3f7decd70
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
4 years agoUse the external ell package 48/228748/1
DoHyun Pyun [Wed, 25 Mar 2020 06:57:14 +0000 (15:57 +0900)]
Use the external ell package

Change-Id: Ibbc87d87131a5b4abcb6dc48eb8232df43566218
Signed-off-by: DoHyun Pyun <dh79.pyun@samsung.com>
4 years agoAdd GetEnergyInfo method for the power management 98/228598/1
DoHyun Pyun [Tue, 24 Mar 2020 05:46:40 +0000 (14:46 +0900)]
Add GetEnergyInfo method for the power management

Change-Id: I46afc2c2575f996723b175a6febbeff0ff5938f1
Signed-off-by: DoHyun Pyun <dh79.pyun@samsung.com>