RIOT icon indicating copy to clipboard operation
RIOT copied to clipboard

socket_zep: properly implement the radio HAL

Open benpicco opened this issue 2 years ago • 2 comments

Contribution description

The radio HAL implementation of socket_zep was a bit off.

  • IEEE802154_RADIO_INDICATION_RX_DONE must only be sent after the ACK was sent (if the frame contained an ACK request)
  • there is now a 192µs delay between receiving a frame and sending the ACK. During this period received frames are discarded.
  • read the frame into the RX buffer directly in _socket_isr() instead of fumbling around with MSG_PEEK | MSG_TRUNC
  • delay sending frames for how long it would take to send the frame on 2.4 GHz O-QPSK

Testing procedure

Build and run examples/gnrc_networking with USE_ZEP=1

Start the ZEP dispatcher with 80% transmission success probability:

 echo "A B 0.8" | dist/tools/zep_dispatch/bin/zep_dispatch -t - :: 17754

socket_zep should now behave more like a real radio.

ping ff02::1
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=0 ttl=64 rssi=0 dBm time=5.077 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=1 ttl=64 rssi=0 dBm time=5.945 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=2 ttl=64 rssi=0 dBm time=8.654 ms

--- ff02::1 PING statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
100 unicast pings, 20% packet loss
> ping -c 100 -i 100 fe80::6cfa:3703:993e:cc20%7
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=0 ttl=64 rssi=0 dBm time=5.585 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=1 ttl=64 rssi=0 dBm time=5.370 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=2 ttl=64 rssi=0 dBm time=6.639 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=3 ttl=64 rssi=0 dBm time=6.121 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=4 ttl=64 rssi=0 dBm time=6.612 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=5 ttl=64 rssi=0 dBm time=6.856 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=7 ttl=64 rssi=0 dBm time=6.583 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=7 ttl=64 rssi=0 dBm time=10.067 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=8 ttl=64 rssi=0 dBm time=9.286 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=9 ttl=64 rssi=0 dBm time=6.087 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=10 ttl=64 rssi=0 dBm time=13.455 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=11 ttl=64 rssi=0 dBm time=9.326 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=12 ttl=64 rssi=0 dBm time=9.284 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=13 ttl=64 rssi=0 dBm time=5.972 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=14 ttl=64 rssi=0 dBm time=6.115 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=15 ttl=64 rssi=0 dBm time=15.131 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=16 ttl=64 rssi=0 dBm time=20.441 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=17 ttl=64 rssi=0 dBm time=10.167 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=18 ttl=64 rssi=0 dBm time=6.039 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=19 ttl=64 rssi=0 dBm time=9.714 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=19 ttl=64 rssi=0 dBm time=13.240 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=20 ttl=64 rssi=0 dBm time=19.218 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=20 ttl=64 rssi=0 dBm time=22.486 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=21 ttl=64 rssi=0 dBm time=9.448 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=22 ttl=64 rssi=0 dBm time=9.527 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=23 ttl=64 rssi=0 dBm time=6.076 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=23 ttl=64 rssi=0 dBm time=12.798 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=24 ttl=64 rssi=0 dBm time=19.263 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=25 ttl=64 rssi=0 dBm time=6.230 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=26 ttl=64 rssi=0 dBm time=9.456 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=26 ttl=64 rssi=0 dBm time=12.786 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=27 ttl=64 rssi=0 dBm time=12.824 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=27 ttl=64 rssi=0 dBm time=19.412 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=28 ttl=64 rssi=0 dBm time=6.147 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=29 ttl=64 rssi=0 dBm time=19.262 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=30 ttl=64 rssi=0 dBm time=6.326 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=31 ttl=64 rssi=0 dBm time=5.346 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=32 ttl=64 rssi=0 dBm time=9.361 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=34 ttl=64 rssi=0 dBm time=6.155 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=35 ttl=64 rssi=0 dBm time=5.942 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=36 ttl=64 rssi=0 dBm time=9.308 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=37 ttl=64 rssi=0 dBm time=6.122 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=37 ttl=64 rssi=0 dBm time=9.361 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=38 ttl=64 rssi=0 dBm time=6.030 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=39 ttl=64 rssi=0 dBm time=6.155 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=40 ttl=64 rssi=0 dBm time=6.076 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=43 ttl=64 rssi=0 dBm time=13.682 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=45 ttl=64 rssi=0 dBm time=20.032 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=46 ttl=64 rssi=0 dBm time=13.616 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=46 ttl=64 rssi=0 dBm time=17.042 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=47 ttl=64 rssi=0 dBm time=5.539 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=48 ttl=64 rssi=0 dBm time=15.759 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=48 ttl=64 rssi=0 dBm time=19.073 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=49 ttl=64 rssi=0 dBm time=9.807 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=50 ttl=64 rssi=0 dBm time=19.230 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=52 ttl=64 rssi=0 dBm time=13.739 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=52 ttl=64 rssi=0 dBm time=17.176 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=53 ttl=64 rssi=0 dBm time=6.068 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=53 ttl=64 rssi=0 dBm time=9.322 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=54 ttl=64 rssi=0 dBm time=6.076 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=55 ttl=64 rssi=0 dBm time=19.726 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=56 ttl=64 rssi=0 dBm time=6.899 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=56 ttl=64 rssi=0 dBm time=10.417 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=56 ttl=64 rssi=0 dBm time=13.790 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=57 ttl=64 rssi=0 dBm time=6.144 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=58 ttl=64 rssi=0 dBm time=6.191 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=58 ttl=64 rssi=0 dBm time=9.458 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=59 ttl=64 rssi=0 dBm time=6.244 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=60 ttl=64 rssi=0 dBm time=6.076 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=60 ttl=64 rssi=0 dBm time=12.601 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=61 ttl=64 rssi=0 dBm time=6.160 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=62 ttl=64 rssi=0 dBm time=19.331 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=63 ttl=64 rssi=0 dBm time=5.420 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=63 ttl=64 rssi=0 dBm time=8.570 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=63 ttl=64 rssi=0 dBm time=11.742 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=63 ttl=64 rssi=0 dBm time=14.920 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=63 ttl=64 rssi=0 dBm time=18.136 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=64 ttl=64 rssi=0 dBm time=6.000 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=65 ttl=64 rssi=0 dBm time=20.389 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=66 ttl=64 rssi=0 dBm time=19.670 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=66 ttl=64 rssi=0 dBm time=22.898 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=67 ttl=64 rssi=0 dBm time=6.588 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=68 ttl=64 rssi=0 dBm time=6.052 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=69 ttl=64 rssi=0 dBm time=9.345 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=69 ttl=64 rssi=0 dBm time=12.698 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=70 ttl=64 rssi=0 dBm time=6.084 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=71 ttl=64 rssi=0 dBm time=6.082 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=72 ttl=64 rssi=0 dBm time=12.555 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=72 ttl=64 rssi=0 dBm time=15.816 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=72 ttl=64 rssi=0 dBm time=19.333 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=73 ttl=64 rssi=0 dBm time=19.359 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=74 ttl=64 rssi=0 dBm time=20.546 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=75 ttl=64 rssi=0 dBm time=13.303 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=76 ttl=64 rssi=0 dBm time=6.016 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=77 ttl=64 rssi=0 dBm time=6.071 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=78 ttl=64 rssi=0 dBm time=9.291 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=79 ttl=64 rssi=0 dBm time=5.422 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=79 ttl=64 rssi=0 dBm time=8.578 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=79 ttl=64 rssi=0 dBm time=11.740 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=80 ttl=64 rssi=0 dBm time=22.561 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=81 ttl=64 rssi=0 dBm time=20.455 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=82 ttl=64 rssi=0 dBm time=6.828 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=83 ttl=64 rssi=0 dBm time=19.352 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=84 ttl=64 rssi=0 dBm time=6.288 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=85 ttl=64 rssi=0 dBm time=9.451 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=85 ttl=64 rssi=0 dBm time=12.814 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=86 ttl=64 rssi=0 dBm time=6.058 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=87 ttl=64 rssi=0 dBm time=12.668 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=88 ttl=64 rssi=0 dBm time=9.258 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=89 ttl=64 rssi=0 dBm time=9.388 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=89 ttl=64 rssi=0 dBm time=12.668 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=90 ttl=64 rssi=0 dBm time=9.408 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=91 ttl=64 rssi=0 dBm time=6.038 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=92 ttl=64 rssi=0 dBm time=12.652 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=93 ttl=64 rssi=0 dBm time=9.349 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=94 ttl=64 rssi=0 dBm time=6.429 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=95 ttl=64 rssi=0 dBm time=8.569 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=96 ttl=64 rssi=0 dBm time=9.193 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=97 ttl=64 rssi=0 dBm time=6.661 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=98 ttl=64 rssi=0 dBm time=19.391 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=99 ttl=64 rssi=0 dBm time=10.250 ms

--- fe80::6cfa:3703:993e:cc20%7 PING statistics ---
100 packets transmitted, 94 packets received, 27 duplicates, 6% packet loss
round-trip min/avg/max = 5.346/10.964/22.898 ms

-> retransmissions reduce loss, introduce duplicates

100 multicast pings, 20% packet loss
> ping -c 100 -i 100 ff02::1
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=1 ttl=64 rssi=0 dBm time=4.958 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=2 ttl=64 rssi=0 dBm time=9.558 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=3 ttl=64 rssi=0 dBm time=5.651 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=4 ttl=64 rssi=0 dBm time=5.706 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=6 ttl=64 rssi=0 dBm time=5.533 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=7 ttl=64 rssi=0 dBm time=12.273 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=8 ttl=64 rssi=0 dBm time=5.635 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=9 ttl=64 rssi=0 dBm time=12.254 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=10 ttl=64 rssi=0 dBm time=5.619 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=11 ttl=64 rssi=0 dBm time=9.029 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=12 ttl=64 rssi=0 dBm time=5.622 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=14 ttl=64 rssi=0 dBm time=6.254 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=14 ttl=64 rssi=0 dBm time=16.462 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=14 ttl=64 rssi=0 dBm time=19.641 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=17 ttl=64 rssi=0 dBm time=4.939 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=18 ttl=64 rssi=0 dBm time=5.710 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=19 ttl=64 rssi=0 dBm time=6.458 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=19 ttl=64 rssi=0 dBm time=9.576 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=20 ttl=64 rssi=0 dBm time=5.593 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=20 ttl=64 rssi=0 dBm time=8.861 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=21 ttl=64 rssi=0 dBm time=5.683 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=22 ttl=64 rssi=0 dBm time=5.597 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=23 ttl=64 rssi=0 dBm time=5.795 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=24 ttl=64 rssi=0 dBm time=5.724 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=24 ttl=64 rssi=0 dBm time=12.240 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=25 ttl=64 rssi=0 dBm time=9.012 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=25 ttl=64 rssi=0 dBm time=12.436 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=26 ttl=64 rssi=0 dBm time=5.643 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=27 ttl=64 rssi=0 dBm time=5.788 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=29 ttl=64 rssi=0 dBm time=5.650 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=30 ttl=64 rssi=0 dBm time=12.228 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=31 ttl=64 rssi=0 dBm time=5.627 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=32 ttl=64 rssi=0 dBm time=5.732 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=33 ttl=64 rssi=0 dBm time=5.154 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=35 ttl=64 rssi=0 dBm time=5.727 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=36 ttl=64 rssi=0 dBm time=5.674 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=37 ttl=64 rssi=0 dBm time=5.669 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=39 ttl=64 rssi=0 dBm time=5.642 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=39 ttl=64 rssi=0 dBm time=12.616 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=40 ttl=64 rssi=0 dBm time=5.678 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=41 ttl=64 rssi=0 dBm time=5.729 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=42 ttl=64 rssi=0 dBm time=5.671 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=43 ttl=64 rssi=0 dBm time=5.722 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=44 ttl=64 rssi=0 dBm time=5.780 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=45 ttl=64 rssi=0 dBm time=9.293 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=46 ttl=64 rssi=0 dBm time=5.749 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=48 ttl=64 rssi=0 dBm time=5.724 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=49 ttl=64 rssi=0 dBm time=5.080 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=50 ttl=64 rssi=0 dBm time=8.947 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=51 ttl=64 rssi=0 dBm time=5.899 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=52 ttl=64 rssi=0 dBm time=5.650 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=53 ttl=64 rssi=0 dBm time=5.919 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=54 ttl=64 rssi=0 dBm time=5.708 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=55 ttl=64 rssi=0 dBm time=5.592 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=57 ttl=64 rssi=0 dBm time=5.842 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=57 ttl=64 rssi=0 dBm time=9.396 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=58 ttl=64 rssi=0 dBm time=6.015 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=59 ttl=64 rssi=0 dBm time=5.598 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=59 ttl=64 rssi=0 dBm time=8.868 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=60 ttl=64 rssi=0 dBm time=5.796 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=62 ttl=64 rssi=0 dBm time=6.114 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=62 ttl=64 rssi=0 dBm time=9.609 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=63 ttl=64 rssi=0 dBm time=6.143 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=65 ttl=64 rssi=0 dBm time=5.056 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=66 ttl=64 rssi=0 dBm time=5.612 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=69 ttl=64 rssi=0 dBm time=6.365 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=70 ttl=64 rssi=0 dBm time=5.809 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=71 ttl=64 rssi=0 dBm time=5.734 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=73 ttl=64 rssi=0 dBm time=6.083 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=74 ttl=64 rssi=0 dBm time=8.948 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=75 ttl=64 rssi=0 dBm time=5.619 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=75 ttl=64 rssi=0 dBm time=8.895 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=77 ttl=64 rssi=0 dBm time=6.047 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=78 ttl=64 rssi=0 dBm time=5.504 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=79 ttl=64 rssi=0 dBm time=5.616 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=80 ttl=64 rssi=0 dBm time=5.619 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=83 ttl=64 rssi=0 dBm time=5.970 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=84 ttl=64 rssi=0 dBm time=12.235 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=85 ttl=64 rssi=0 dBm time=5.616 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=87 ttl=64 rssi=0 dBm time=6.134 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=89 ttl=64 rssi=0 dBm time=6.055 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=90 ttl=64 rssi=0 dBm time=5.820 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=91 ttl=64 rssi=0 dBm time=5.792 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=92 ttl=64 rssi=0 dBm time=5.688 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=93 ttl=64 rssi=0 dBm time=6.124 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=93 ttl=64 rssi=0 dBm time=13.129 ms (DUP!)
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=94 ttl=64 rssi=0 dBm time=5.459 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=95 ttl=64 rssi=0 dBm time=5.476 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=97 ttl=64 rssi=0 dBm time=5.001 ms
12 bytes from fe80::6cfa:3703:993e:cc20%7: icmp_seq=99 ttl=64 rssi=0 dBm time=6.111 ms

--- ff02::1 PING statistics ---
100 packets transmitted, 78 packets received, 12 duplicates, 22% packet loss
round-trip min/avg/max = 4.939/7.044/19.641 ms

-> broadcast frames are not re-transmitted, giving us expected 20% loss, unicast replies are

  • tests/gnrc_rpl still works
  • tests/gcoap_fileserver still works

Issues/PRs references

follow-up to #16932

benpicco avatar Jan 30 '23 01:01 benpicco

Murdock results

:heavy_check_mark: PASSED

45c6d786f6a2964e782e5a676409868f24bb4e79 socket_zep: simulate RSSI

Success Failures Total Runtime
10268 0 10269 10m:19s

Artifacts

riot-ci avatar Jan 30 '23 17:01 riot-ci

I tested your change locally. I even did an interop test between your PR and the (more or less) current master. Everything worked as expected.

You could be more generous with your comments / debug messages, especially here on native, where we don't need to worry about every byte ;)

Beside the open comments above, I have nothing to add to this review. I am not super confident in my review here, e.g. ZEP is poorly documented (not in RIOT but in general), limiting my understanding here. Given that it is "just" native and very unlikely to be security relevant, I would still approve, once all comments are resolved.

Teufelchen1 avatar Dec 16 '24 13:12 Teufelchen1

Is there anything I can do to move this forward? socket_zep in master will produce a lot of duplicate packets because of the wrong radio HAL integration.

benpicco avatar Mar 19 '25 09:03 benpicco

Squashy squash squash please

Teufelchen1 avatar Mar 19 '25 12:03 Teufelchen1

Thank you :smiley:

benpicco avatar Mar 20 '25 12:03 benpicco