Hi Diego,
Here's some feedback.
- At PHY level in code, you can debug the actual frame to be sent OTA (Over The Air) in the "PhyPdDataRequest()" from the PhyPlmeData.c file. But it will probably be hard to analyze as it will be encrypted by the network layer from Thread.
I'd recommend you to look at a sniffer capture using Ubiqua Protocol Analyzer or Wireshark. You will also require an sniffer like the USB-KW41Z. You should be able to see something like this:

- You can verify the number of hops left from a packet in the 6LoWPAN header. See below an ICMPv6 echo request from a node that will require 2 hops to reach its destination:

- The path a packet takes to reach its destination is dynamic and will depend on Thread topology and link costs, you can also use the sniffer to trace the route taken by a packet to reach its destination. Just follow the IP address and MAC address to identify the hops that the packet will be taking. See image for reference.
- Thread uses a MESH topology.
- See the sniffer logs to analyze MLE advertisements or use the shell and type "thr get neighbors" and "thr get routes" to see the L2 links of the current device.

- The RSSI of a given packet can be seen in the sniffer capture from Ubiqua, see the Frame Information section (see first image). In code, you can obtain the RSSI of the last received packet with the PhyGetLastRxRssiValue() function.
Please refer to Thread 1.1 Specifications for details about Thread stack's expected behavior.
Hope this helps.
Regards,
JC