TSCH: filter out frames from ourselves
This commit is contained in:
parent
e3f1b67096
commit
4cc64ea942
@ -849,8 +849,12 @@ PT_THREAD(tsch_rx_slot(struct pt *pt, struct rtimer *t))
|
|||||||
#endif /* LLSEC802154_ENABLED */
|
#endif /* LLSEC802154_ENABLED */
|
||||||
|
|
||||||
if(frame_valid) {
|
if(frame_valid) {
|
||||||
if(linkaddr_cmp(&destination_address, &linkaddr_node_addr)
|
/* Check that frome is for us or broadcast, AND that it is not from
|
||||||
|| linkaddr_cmp(&destination_address, &linkaddr_null)) {
|
* ourselves. This is for consistency with CSMA and to avoid adding
|
||||||
|
* ourselves to neighbor tables in case frames are being replayed. */
|
||||||
|
if((linkaddr_cmp(&destination_address, &linkaddr_node_addr)
|
||||||
|
|| linkaddr_cmp(&destination_address, &linkaddr_null))
|
||||||
|
&& !linkaddr_cmp(&source_address, &linkaddr_node_addr)) {
|
||||||
int do_nack = 0;
|
int do_nack = 0;
|
||||||
rx_count++;
|
rx_count++;
|
||||||
estimated_drift = RTIMER_CLOCK_DIFF(expected_rx_time, rx_start_time);
|
estimated_drift = RTIMER_CLOCK_DIFF(expected_rx_time, rx_start_time);
|
||||||
|
Loading…
Reference in New Issue
Block a user