What is the recv_rssi and recv_ttl in bt_mesh_msg_ctx?

I’m using an nRF54L15 evaluation board obtained from a distributor and currently testing transmission and reception of large data chunks. I built a vender model and a custom function that print out the RSSI and TTL of the message received using recv_rssi and recv_ttl from ctx. 

From what I understand, Bluetooth Mesh messages longer than 8–11 bytes are segmented, and the resulting segments may reach the destination via different paths—for example, one segment might be relayed while another might arrive without going through a relay.

So what do recv_rssi and recv_ttl from bt_mesh_msg_ctx show? Which segment are they from? Can I view TTL of each segment individually?

Right now, I use bt_mesh_msg_ctx from handler function registered to bt_mesh_model_op.

Parents
  • Hi

    The TTL value tells you how many more times the data packet can be relayed before it "dies".

    When a packet first is created and published the access layer fetches the TTL value along other publish parameters and passes that down the line. So the final TTL on the unit you read it from is how much "time it had to live" when it got there. It will decrement between every link it is sent to. This is mainly to avoid control flooding and traffic on the network.

    Best regards,

    Simon

  • Let say I want to send a 15-byte message with TTL = 7. It breaks down into 2 segments. 

    • Segment 0 might go: Source -> Relay A -> Destination (2 hops, arriving with TTL 5)

    • Segment 1 might go: Source -> Relay B -> Relay C -> Destination (3 hops, arriving with TTL 4)

    Which value would I see in recv_ttl at the destination? 4 or 5?

Reply Children
No Data
Related