New function ipv4_prefix_to_netmask()
authorMartin Schwenke <martin@meltin.net>
Mon, 24 Nov 2014 09:49:46 +0000 (20:49 +1100)
committerMartin Schwenke <martin@meltin.net>
Mon, 24 Nov 2014 09:49:46 +0000 (20:49 +1100)
Allows calculation of netmask from prefix.

Signed-off-by: Martin Schwenke <martin@meltin.net>
autocluster

index 62cbdfd..3e9d88e 100755 (executable)
@@ -951,6 +951,31 @@ setup_base()
     run_hooks setup_base_hooks
 }
 
+ipv4_prefix_to_netmask ()
+{
+    local prefix="$1"
+
+    local div=$(($prefix / 8))
+    local mod=$(($prefix % 8))
+
+    local octet
+    for octet in 1 2 3 4 ; do
+       if [ $octet -le $div ] ; then
+           echo -n "255"
+       elif [ $mod -ne 0 -a $octet -eq $(($div + 1)) ] ; then
+           local shift=$((8 - $mod))
+           echo -n $(( (255 >> $shift << $shift) ))
+       else
+           echo -n 0
+       fi
+       if [ $octet -lt 4 ] ; then
+           echo -n '.'
+       fi
+    done
+
+    echo
+}
+
 # setup various networking components
 setup_network()
 {