jonas-schievink / rubble

(going to be a) BLE stack for embedded Rust
BSD Zero Clause License
397 stars 56 forks source link

Only reply to LL_VERSION_IND once #49

Open jonas-schievink opened 5 years ago

jonas-schievink commented 5 years ago

Either master or slave may send the LL_VERSION_IND LL Control PDU, and both will respond to it. According to the spec, you're supposed to keep track of whether you've already sent this and ignore the PDU in that case. We currently rely on the master to implement this correctly, since we'd otherwise end up in an endless loop.

To fix this, we need to add another bool to the real-time LinkLayer state to track whether we've sent this already. Eventually we should collapse all the bool flags into a single byte storing them as bitflags.