summaryrefslogtreecommitdiff
path: root/lora_pkt_fwd/update_gwid.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lora_pkt_fwd/update_gwid.sh')
-rwxr-xr-xlora_pkt_fwd/update_gwid.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/lora_pkt_fwd/update_gwid.sh b/lora_pkt_fwd/update_gwid.sh
new file mode 100755
index 0000000..2aeb87f
--- /dev/null
+++ b/lora_pkt_fwd/update_gwid.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# This script is a helper to update the Gateway_ID field of given
+# JSON configuration file, as a EUI-64 address generated from the 48-bits MAC
+# address of the device it is run from.
+#
+# Usage examples:
+# ./update_gwid.sh ./local_conf.json
+
+iot_sk_update_gwid() {
+ # get gateway ID from its MAC address to generate an EUI-64 address
+ GWID_MIDFIX="FFFE"
+ GWID_BEGIN=$(ip link show eth0 | awk '/ether/ {print $2}' | awk -F\: '{print $1$2$3}')
+ GWID_END=$(ip link show eth0 | awk '/ether/ {print $2}' | awk -F\: '{print $4$5$6}')
+
+ # replace last 8 digits of default gateway ID by actual GWID, in given JSON configuration file
+ sed -i 's/\(^\s*"gateway_ID":\s*"\).\{16\}"\s*\(,\?\).*$/\1'${GWID_BEGIN}${GWID_MIDFIX}${GWID_END}'"\2/' $1
+
+ echo "Gateway_ID set to "$GWID_BEGIN$GWID_MIDFIX$GWID_END" in file "$1
+}
+
+if [ $# -ne 1 ]
+then
+ echo "Usage: $0 [filename]"
+ echo " filename: Path to JSON file containing Gateway_ID for packet forwarder"
+ exit 1
+fi
+
+iot_sk_update_gwid $1
+
+exit 0