Commits

Commit Message Author Age Changes
06cf0fd1 unit: Add Mesh Crypto tests from Mesh Profile Spec This unit test will be grown over time to include tests formed from the sample data in the Bluetooth Mesh Profile specification (Currently at version v1.0.1). Currently it includes test cases for the following sets of sample data: Sections 8.1.1-6 Sections 8.2.1-6 Sections 8.3.1-11 Section 8.4.3 Section 8.6.2 Brian Gix 6 years ago 2 files, +2010, -0
d6a0539d mesh: Fix segmentation fault on Join() call This fixes the following segfault: node_init_cb (node=0x0, agent=0x0) at mesh/mesh.c:359 reply = dbus_error(join_pending->msg, MESH_ERROR_FAILED, user_data=0x5555555be170) at mesh/node.c:1760 dbus=<optimized out>) at ell/dbus.c:216 user_data=0x5555555a6e00) at ell/dbus.c:279 user_data=0x5555555a7ef0) at ell/io.c:126 at ell/main.c:642 at mesh/main.c:205 The fault was caused by the premature deletion of preserved state. This moves setup of disconnect watch for the application calling the Join() method into the node_init_cb(), after a temporary node has been successfully created. Inga Stotland 6 years ago 1 file, +5, -2
37bbe30c mesh: Align appkey_packet_decrypt with dev and virt variants. Move appkey_packet_decrypt to mesh/model, rename it to app_packet_decrypt, make it private and change arguments to be aligned with other decryption functions. Also, simplify the implementation using an inline loop, removing the need of mod_decrypt struct. Michał Lowas-Rzechonek 6 years ago 3 files, +89, -105
45beec16 mesh: Normalize Access Key AID and Index naming in models After 8f0839a1c46300ceb1b129d17a3bff446ff79d08, mesh/crypto uses _aid suffix for keys' AID property, so let's change the wording in mesh/model as well. Michał Lowas-Rzechonek 6 years ago 1 file, +8, -7
79fd24af mesh: Remove unused defines Michał Lowas-Rzechonek 6 years ago 1 file, +0, -10
c7560572 mesh: Fix Key Ring permissions for local nodes We do *not* automatically create populated key rings for imported or joined nodes, but we also do not *forbid* any node from adding a key in it's possesion to the local key ring. There are two (known) use cases for Import() 1. Node previously existed on a different physical piece of hardware, and is being migrated to this daemon. 2. Node was newly provisioned Out-Of-Band, and this is the net result of the provisioning. In *neither* case is it a given that the Node should be able to provision another node (the effect of adding the Net Key to the key ring). In neither case is it a given that the Node should be able to modify it's own Config Server states (the effect of adding it's Device Key to the key ring). Brian Gix 6 years ago 2 files, +0, -20
0cdcff2f mesh: Explicit Remote/Local Device key usage When sending or receiving Device Key (privileged) mesh messages, the remote vs local device key must be specified. This allows Apps to specify Key Ring stored device keys, and sanity checks that the correct key exists before allowing the transmission. Loopback messages to local servers *must* use keys from the Key Ring to indicate privilege has been granted. Brian Gix 6 years ago 2 files, +22, -14
c8cd5b04 mesh: Add remote boolean to DevKey transactions DevKey operations require authorization on the part of the applications making the requests. Messages to state changing Servers should use device keys from the remote (destination) to demonstrate authorization. Brian Gix 6 years ago 1 file, +14, -3
550dc90d mesh: Make mesh-config API more consistent This changes the prototypes for mesh_config_model_binding_add() and mesh_config_model_binding_del() to take the element's address as input parameter instead of the element's index. The change aligns the API with other functions that handle storage of model states. Inga Stotland 6 years ago 3 files, +30, -22
f8225620 shared/mainloop: Add ell-based mainloop implementation This adds implementation of wrapper mainloop functions to interact with ell main APIs, enabling support for the applications that link with ell library and use mainloop functionality. Inga Stotland 6 years ago 3 files, +206, -3
6de4bdb9 Release 5.51 Marcel Holtmann 6 years ago 2 files, +16, -1
8ab0f188 build: Update library version Marcel Holtmann 6 years ago 1 file, +1, -1
1955e725 build: All EXTRA_DIST need to be unconditional Marcel Holtmann 6 years ago 1 file, +3, -3
2de05555 monitor: Decode L2CAP channel mode This decodes the L2CAP channel mode of each frame: > ACL Data RX: Handle 3585 flags 0x02 dlen 12 Channel: 64 len 8 [PSM 127 mode Basic (0x00)] {chan 0} < ACL Data TX: Handle 3585 flags 0x00 dlen 9 Channel: 65 len 5 sdu 3 [PSM 127 mode LE Flow Control (0x80)] {chan 1} Luiz Augusto von Dentz 6 years ago 1 file, +35, -10
1d55ac9e monitor: Add proper decoding of LE flowctl mode This enables decoding LE flowctl mode properly and print out the SDU. Luiz Augusto von Dentz 6 years ago 1 file, +63, -51
e60a6b7d gatt: Fix assuming writes to CCC will always contain 2 bytes The spec actually allows writing just 1 byte: BLUETOOTH CORE SPECIFICATION Version 5.1 | Vol 3, Part F page 2320: 'If the attribute value has a fixed length and the Attribute Value parameter length is less than or equal to the length of the attribute value, the octets of the attribute value parameter length shall be written; all other octets in this attribute value shall be unchanged.' Luiz Augusto von Dentz 6 years ago 1 file, +18, -15
afe19681 mesh: Automate AppKey update on KR phase 2-->3-->0 Designed so that if an unexpcted abort() occurs, the bound NetKey remains in state 2 or 3. If successful, the NetKey is set to Phase 0, and all bound AppKeys are in their correct state. Brian Gix 6 years ago 3 files, +79, -33
1368a609 doc: Remove uneeded dbus API for App Key Refresh Brian Gix 6 years ago 1 file, +0, -19
7a5bccba mesh: Handle messages sent to a fixed group address This handles the case when an inbound message is addressed to a fixed group, i.e., all-proxies, all-friends, all-relays and all-nodes. The message is delivered to a primary element only, and, with the exception of all-nodes case, if the corresponding feature is enabled on the node. Inga Stotland 6 years ago 2 files, +33, -1
f3cbe660 shared/shell: fix help message typo Ronan Pigott 6 years ago 1 file, +1, -1
3825bc7f build: install zsh completions Ronan Pigott 6 years ago 2 files, +17, -0
760640a0 completion: add bluetoothctl zsh completions This zsh compdef provides completions for the bluetoothctl command. It has been modified from version 1 of this patch to get the command names and descriptions from the newly introduced --zsh-complete. It utilizes the output of `bluetoothctl devices` or `bluetoothctl controllers` to provide a descriptive completion menu in those contexts. e.g. $ bluetoothctl connect <TAB> 04:52:C7:0C:D4:A7 -- Bose QuietComfort 35 40:4E:36:D9:8F:28 -- Pixel 2 A4:38:CC:20:5D:E0 -- Pro Controller Ronan Pigott 6 years ago 1 file, +98, -0
cb0215dd shared/shell: add --zsh-complete option This adds a new long form option --zsh-complete to provide all available commands in an output format suitable for parsing by zsh or other shell completion scripts. Invoke like: `bluetoothctl --zsh-complete help` There is no corresponding short form option. Ronan Pigott 6 years ago 1 file, +26, -0
d45b4ac3 client/main: add help option for available args This option exists to facilitate external completion of commands that have specially defined arguments. It effectively adds two new commands to bluetoothctl with the following output: $ bluetoothctl agent help on off DisplayOnly DisplayYesNo KeyboardDisplay KeyboardOnly NoInputNoOutput $ bluetoothctl advertise help on off peripheral broadcast Shell completion scripts can then parse this output to provide completions for those commands. Ronan Pigott 6 years ago 1 file, +7, -0
e8b9e6e3 shared/gatt-client: Automatically add CCC when discovering The spec mandates that a CCC exists if either notify or indicate property is marked: BLUETOOTH CORE SPECIFICATION Version 5.1 | Vol 3, Part G page 2357 "If set, the Client Characteristic Configuration Descriptor shall exist." Luiz Augusto von Dentz 6 years ago 1 file, +25, -0
f62350b7 mesh: test AEAD at startup to check kernel support One time test at startup to ensure either kernel version v4.9 or later, *or* that required AES-CCM support has been back-ported. If support not there, daemon will run without providing D-Bus service or attaching to controllers (prevents systemd thrashing). Brian Gix 6 years ago 3 files, +62, -0
354d75d0 mesh: Add closedir() of config directory after opendir() This adds missing closedir() call to accompany opendir() in mesh_config_load_nodes(). Also, fixes confusing mix of variable names. Inga Stotland 6 years ago 2 files, +28, -22
50f58275 mesh: Show error message when io initialization fails Michał Lowas-Rzechonek 6 years ago 1 file, +4, -1
3d7d12ee mesh: Add org.bluez.mesh.Node1.Addresses property To enable applications to talk to the local node's internal models, it's useful to know its unicast addresses. They are known after CreateNetwork and Import, but after Join, the allocated address is only known to the provisioner. This patch enables read only access to list of allocated unicast addresses. Michał Lowas-Rzechonek 6 years ago 2 files, +28, -0
f370e729 mesh: Implement properties on org.bluez.mesh.Node1 interface Michał Lowas-Rzechonek 6 years ago 3 files, +109, -1
2978d083 tools: Tweak script to get Company IDS from SIG The Bluetooth SIG website requires a trailing "/" on the web page for the curl command to work. Brian Gix 6 years ago 1 file, +1, -1
19329b3f client: Fix not able to select attributes if parent exists When selecting attributes by UUID the code was not checking attributes that are not a children of the current selected attribute. Luiz Augusto von Dentz 6 years ago 1 file, +1, -1
31d74307 client: Allow UUID 16 bits on select-attribute This allow passing UUIDs on 16 bits format. Luiz Augusto von Dentz 6 years ago 1 file, +3, -0
a29d610d mesh: Fix handling of Config Relay Set message Michał Lowas-Rzechonek 6 years ago 1 file, +1, -2
3658332b gitignore: Ignore mesh service file Michał Lowas-Rzechonek 6 years ago 1 file, +1, -0
fb5c57bc mesh: Move commonly used constants into mesh-defs.h This consolidates definitions of commonly used constant values into a single header file. The constant values are based on mesh specification, plus a few internal utility constants (masks, etc.) Also, removes redundant redefinition maximum message length. Inga Stotland 6 years ago 5 files, +39, -43
b94453eb mesh: Remove double initialisation and fix typo in log Rafał Gajda 6 years ago 1 file, +1, -2
e71112ad mesh: Fix model publication get Rafał Gajda 6 years ago 1 file, +1, -1
f7ca9fef test: Add example-player This adds an example of registering a player with use of RegisterApplication. Luiz Augusto von Dentz 6 years ago 1 file, +203, -0
9d54c293 test: Add example-endpoint This adds an example of registering an endpoint with use of RegisterApplication. Luiz Augusto von Dentz 6 years ago 1 file, +186, -0
01f8fc29 media: Add implementation of RegisterApplication This implements RegisterApplication registering any proxy which does implement either MediaEndpoint or MediaPlayer. Luiz Augusto von Dentz 6 years ago 1 file, +482, -3
65bd68b9 doc/media-api: Add RegisterApplication method This uses application ObjectManager to discover the MediaEndpoint and MediaPlayer object of an application and deprecates the use of RegisterEndpoint and RegisterPlayer. Luiz Augusto von Dentz 6 years ago 1 file, +20, -0
bdd0e6c5 mesh: Move sequence number overcommit to mesh-config-json This confines sequence overcommit logic in mesh-config-json, as other storages might use a different mechanism to ensure reliability. Also, refactored logic to calculate overcommit value to avoid division by zero when messages are sent too fast. Michał Lowas-Rzechonek 6 years ago 5 files, +78, -75
7de0eb56 mesh: Fix double free of a pointer in mesh-io-generic This fixes a crash in bluetooth-meshd due to freeing the same pointer twice. The fix is to initialize the address of freed TX buffer to NULL. Inga Stotland 6 years ago 1 file, +9, -1
e4cec5a9 mesh: Fix storing network retransmission in config Michał Lowas-Rzechonek 6 years ago 1 file, +1, -1
37cf5ad5 mesh: Implement Import() D-Bus API of org.bluez.mesh.Network1 interface This method allows local nodes to be imported from an external provisioning database, enabling applications to create mesh nodes without using provisioning procedure. The procedure is similar to provisioning procedure, but all data exchange happens over D-Bus. Michał Lowas-Rzechonek 6 years ago 3 files, +204, -3
ee566c20 mesh: Add documentation for Import() D-Bus API This replaces previously specified ImportLocalNode() call Michał Lowas-Rzechonek 6 years ago 1 file, +42, -15
d68a2253 mesh: Extract read_* functions in mesh-config-json This is a small improvement of read_node function readability. Jakub Witowski 6 years ago 1 file, +68, -15
b53bca54 mesh: Check that config server is present in primary element This verifies that Config Server model is supported by element #0, and is not supported by any other element. Michał Lowas-Rzechonek 6 years ago 1 file, +8, -0
38608db6 mesh: Check that element indexes are consecutive Michał Lowas-Rzechonek 6 years ago 1 file, +9, -0
Previous Next