-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
current MRP IDLE retry interval default value (5000ms) does not meet the latest SPEC definition (300ms) #22167
Comments
CHIP_CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL is actually setting the value a node will advertise for itself. This, by design, can be a value appropriate for the node. Interestingly, this value varies widely by platform currently:
The default value a sender will use to communicate with a node when the parameters are omitted from dns-sd / case / pase discovery are set as follows:
Because a sender may choose a default timeout that exceeds the specification, we plan to NOT FIX this for v1.0.
|
@turon , I agree, the CHIP_CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL is the value that the device advertises for itself int he mDNS service as SII. This is the value that other devices will use prior to trigger a MRP retry. So consider the the following scenario:
We need MRP SII = 300 as default for matter 1.0 targeting all mains-powered (non-sleepy) devices. CC: @chrisdecenzo |
what would be the problem to use different default values for PASE, CASE and mDNS-SD ?
|
non-sleepy devices (e.g. light-bulb, smart-plugs,..) should advertise SII = 300 as described in the spec.
@turon , do you support this change? |
@AlanLCollins the |
@turon , sdk default matters because developers that are not using SED are not paying attention to changing the value. The SDK should either use low latency default value or force developers to change it. |
This was fixed in #23344 |
Problem
Accessory devices are sharing MRP configuration during mDNS query and PASE/CASE creation. Idle retry interval = 5000ms
Thread network heavily relies on Application retries for congestion environments, this creates a bad customer experience because any application retry would take >5s.
The default setting needs to be 300ms so all Thread REED, Leader, Routers, FTD CHILDs will use it.
Any change for sleepy devices should be extra modification product-specific.
Proposed Solution
Change the default to match spec default = 300ms.
src/messaging/ReliableMessageProtocolConfig.h
#ifndef CHIP_CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL
#define CHIP_CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL (300_ms32)
#endif // CHIP_CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL
The text was updated successfully, but these errors were encountered: