From aecbad960aaaac3d4ff50bfebc82f348750e7d9b Mon Sep 17 00:00:00 2001
From: Koen Zandberg <koen@bergzand.net>
Date: Tue, 10 Jul 2018 18:31:09 +0200
Subject: [PATCH] netdev: Initialize sequence number to random value

---
 Makefile.dep                                  | 1 +
 drivers/netdev_ieee802154/netdev_ieee802154.c | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/Makefile.dep b/Makefile.dep
index 77c9b9081e..cfeb10de38 100644
--- a/Makefile.dep
+++ b/Makefile.dep
@@ -59,6 +59,7 @@ endif
 
 ifneq (,$(filter netdev_ieee802154,$(USEMODULE)))
   USEMODULE += ieee802154
+  USEMODULE += random
 endif
 
 ifneq (,$(filter gnrc_uhcpc,$(USEMODULE)))
diff --git a/drivers/netdev_ieee802154/netdev_ieee802154.c b/drivers/netdev_ieee802154/netdev_ieee802154.c
index 202656658e..f826f2d546 100644
--- a/drivers/netdev_ieee802154/netdev_ieee802154.c
+++ b/drivers/netdev_ieee802154/netdev_ieee802154.c
@@ -22,6 +22,7 @@
 #include "net/eui64.h"
 #include "net/ieee802154.h"
 #include "net/netdev.h"
+#include "random.h"
 
 #include "net/netdev/ieee802154.h"
 
@@ -52,7 +53,8 @@ static int _get_iid(netdev_ieee802154_t *dev, eui64_t *value, size_t max_len)
 
 void netdev_ieee802154_reset(netdev_ieee802154_t *dev)
 {
-    dev->seq = 0;
+    /* Only the least significant byte of the random value is used */
+    dev->seq = random_uint32();
     dev->flags = 0;
 
     /* set default protocol */
-- 
GitLab