New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mesh: Fix GATT Proxy behavior to match Mesh Profile Spec 1.0.1 #724
mesh: Fix GATT Proxy behavior to match Mesh Profile Spec 1.0.1 #724
Conversation
According to Mesh Profile Spec 1.0.1, Section 4.2.11: "If the Proxy feature is disabled, a GATT client device can connect over GATT to that node for configuration and control. Messages from the GATT bearer are not relayed to the advertising bearer." Moreover some notes have been removed from the spec compared to version 1.0: Mesh Profile Spec 1.0, Section 4.2.11: "Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00 the GATT Bearer Server shall disconnect all GATT Bearer Clients." "The Configuration Client should turn off the Proxy state as the last step in the configuration process." Mesh Profile Spec 1.0, Section 4.2.11.1: "When the GATT Proxy state is set to 0x00, the Node Identity state for all subnets shall be set to 0x00 and shall not be changed."
|
||
rx.local_match = (bt_mesh_fixed_group_match(rx.ctx.recv_dst) || | ||
bt_mesh_elem_find(rx.ctx.recv_dst)); | ||
if (bt_mesh_gatt_proxy_get() == BT_MESH_GATT_PROXY_DISABLED && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"If the Proxy feature is disabled, a GATT client device can connect
over GATT to that node for configuration and control. Messages from
the GATT bearer are not relayed to the advertising bearer."
I'm not 100% sure if this means we should drop messages that are not directed at us or that we just shouldn't relay messages to ADV (see bt_mesh_net_relay()
call below).
@jhedberg FYI |
@trond-snekvik we'll need to check if these fixes are applicable to Zephyr |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Backport of apache/mynewt-nimble#724 Mesh spec 1.0.1 changes proxy disabling behavior to only affect the relaying from proxy nodes. Previously, disabling proxy would shut down all proxy and node activity. Tweaks from the original commit: - Removed redundant call to bt_mesh_adv_update() in gatt_proxy_set() - Removed invalid ref to 4.2.11.1 in node_identity_set() --- According to Mesh Profile Spec 1.0.1, Section 4.2.11: "If the Proxy feature is disabled, a GATT client device can connect over GATT to that node for configuration and control. Messages from the GATT bearer are not relayed to the advertising bearer." Moreover some notes have been removed from the spec compared to version 1.0: Mesh Profile Spec 1.0, Section 4.2.11: "Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00 the GATT Bearer Server shall disconnect all GATT Bearer Clients." "The Configuration Client should turn off the Proxy state as the last step in the configuration process." Mesh Profile Spec 1.0, Section 4.2.11.1: "When the GATT Proxy state is set to 0x00, the Node Identity state for all subnets shall be set to 0x00 and shall not be changed." Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
Backport of apache/mynewt-nimble#724 Mesh spec 1.0.1 changes proxy disabling behavior to only affect the relaying from proxy nodes. Previously, disabling proxy would shut down all proxy and node activity. Tweaks from the original commit: - Removed redundant call to bt_mesh_adv_update() in gatt_proxy_set() - Removed invalid ref to 4.2.11.1 in node_identity_set() --- According to Mesh Profile Spec 1.0.1, Section 4.2.11: "If the Proxy feature is disabled, a GATT client device can connect over GATT to that node for configuration and control. Messages from the GATT bearer are not relayed to the advertising bearer." Moreover some notes have been removed from the spec compared to version 1.0: Mesh Profile Spec 1.0, Section 4.2.11: "Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00 the GATT Bearer Server shall disconnect all GATT Bearer Clients." "The Configuration Client should turn off the Proxy state as the last step in the configuration process." Mesh Profile Spec 1.0, Section 4.2.11.1: "When the GATT Proxy state is set to 0x00, the Node Identity state for all subnets shall be set to 0x00 and shall not be changed." Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
Backport of apache/mynewt-nimble#724 Mesh spec 1.0.1 changes proxy disabling behavior to only affect the relaying from proxy nodes. Previously, disabling proxy would shut down all proxy and node activity. Tweaks from the original commit: - Removed redundant call to bt_mesh_adv_update() in gatt_proxy_set() - Removed invalid ref to 4.2.11.1 in node_identity_set() --- According to Mesh Profile Spec 1.0.1, Section 4.2.11: "If the Proxy feature is disabled, a GATT client device can connect over GATT to that node for configuration and control. Messages from the GATT bearer are not relayed to the advertising bearer." Moreover some notes have been removed from the spec compared to version 1.0: Mesh Profile Spec 1.0, Section 4.2.11: "Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00 the GATT Bearer Server shall disconnect all GATT Bearer Clients." "The Configuration Client should turn off the Proxy state as the last step in the configuration process." Mesh Profile Spec 1.0, Section 4.2.11.1: "When the GATT Proxy state is set to 0x00, the Node Identity state for all subnets shall be set to 0x00 and shall not be changed."
Backport of apache/mynewt-nimble#724 Mesh spec 1.0.1 changes proxy disabling behavior to only affect the relaying from proxy nodes. Previously, disabling proxy would shut down all proxy and node activity. Tweaks from the original commit: - Removed redundant call to bt_mesh_adv_update() in gatt_proxy_set() - Removed invalid ref to 4.2.11.1 in node_identity_set() --- According to Mesh Profile Spec 1.0.1, Section 4.2.11: "If the Proxy feature is disabled, a GATT client device can connect over GATT to that node for configuration and control. Messages from the GATT bearer are not relayed to the advertising bearer." Moreover some notes have been removed from the spec compared to version 1.0: Mesh Profile Spec 1.0, Section 4.2.11: "Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00 the GATT Bearer Server shall disconnect all GATT Bearer Clients." "The Configuration Client should turn off the Proxy state as the last step in the configuration process." Mesh Profile Spec 1.0, Section 4.2.11.1: "When the GATT Proxy state is set to 0x00, the Node Identity state for all subnets shall be set to 0x00 and shall not be changed."
Backport of apache/mynewt-nimble#724 Mesh spec 1.0.1 changes proxy disabling behavior to only affect the relaying from proxy nodes. Previously, disabling proxy would shut down all proxy and node activity. Tweaks from the original commit: - Removed redundant call to bt_mesh_adv_update() in gatt_proxy_set() - Removed invalid ref to 4.2.11.1 in node_identity_set() --- According to Mesh Profile Spec 1.0.1, Section 4.2.11: "If the Proxy feature is disabled, a GATT client device can connect over GATT to that node for configuration and control. Messages from the GATT bearer are not relayed to the advertising bearer." Moreover some notes have been removed from the spec compared to version 1.0: Mesh Profile Spec 1.0, Section 4.2.11: "Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00 the GATT Bearer Server shall disconnect all GATT Bearer Clients." "The Configuration Client should turn off the Proxy state as the last step in the configuration process." Mesh Profile Spec 1.0, Section 4.2.11.1: "When the GATT Proxy state is set to 0x00, the Node Identity state for all subnets shall be set to 0x00 and shall not be changed."
Backport of apache/mynewt-nimble#724 Mesh spec 1.0.1 changes proxy disabling behavior to only affect the relaying from proxy nodes. Previously, disabling proxy would shut down all proxy and node activity. Tweaks from the original commit: - Removed redundant call to bt_mesh_adv_update() in gatt_proxy_set() - Removed invalid ref to 4.2.11.1 in node_identity_set() --- According to Mesh Profile Spec 1.0.1, Section 4.2.11: "If the Proxy feature is disabled, a GATT client device can connect over GATT to that node for configuration and control. Messages from the GATT bearer are not relayed to the advertising bearer." Moreover some notes have been removed from the spec compared to version 1.0: Mesh Profile Spec 1.0, Section 4.2.11: "Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00 the GATT Bearer Server shall disconnect all GATT Bearer Clients." "The Configuration Client should turn off the Proxy state as the last step in the configuration process." Mesh Profile Spec 1.0, Section 4.2.11.1: "When the GATT Proxy state is set to 0x00, the Node Identity state for all subnets shall be set to 0x00 and shall not be changed."
Thanks, @LingaoM |
According to Mesh Profile Spec 1.0.1, Section 4.2.11:
"If the Proxy feature is disabled, a GATT client device can connect
over GATT to that node for configuration and control. Messages from
the GATT bearer are not relayed to the advertising bearer."
Moreover some notes have been removed from the spec compared to
version 1.0:
Mesh Profile Spec 1.0, Section 4.2.11:
"Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00
the GATT Bearer Server shall disconnect all GATT Bearer Clients."
"The Configuration Client should turn off the Proxy state as the last
step in the configuration process."
Mesh Profile Spec 1.0, Section 4.2.11.1:
"When the GATT Proxy state is set to 0x00, the Node Identity state
for all subnets shall be set to 0x00 and shall not be changed."