I'm working on LE privacy modes.  I reviewed The soft device from nordic and 
also zephyr and have the following proposal

Privacy API proposal

  1.  a config for address mode
     *   Identity.
     *   NRPA
     *   RPA
  2.  A address timeout to rotate NRPA/RPA

Initialization -
The default mode will be Identity addressing:

  *   If you are configured for identity address mode, the host code will try 
to get the identity address from the controller.  If it gets the identity 
address it will use it
  *   If that is unavailable it will checks its NV storage for a static private 
address.  If it gets one, it will use it.
  *   If that is not found, it will generate a static private address and store 
it in the NVRAM.

If you are configured for NRPA or RPA, they are used for all scans, advertising 
and connections.     The host stack will use the controller for RPA generation 
and decoding.

The host will keep a non volatile key-cache for IRK that has a configurable 
size.  At boot, these will be loaded into the controller.  Whenever a new key 
is retrieved in bonding, it will be added to the NVM and to the controller.

Comments please. I don't have a lot of experience here and any advice would be 
appreciated.

One observation.  The Zephyr stack seems to always use random addresses for 
active scans.  Do we want to do the same?






Reply via email to