]> git.ipfire.org Git - people/ms/network.git/blobdiff - functions.ipv4
Merge remote-tracking branch 'ms/isdn'
[people/ms/network.git] / functions.ipv4
index 65cdcf7370315aac06761da89303051e2a366ab6..dff33e39abcb3592790a838c45bf7078c8aa091d 100644 (file)
@@ -80,6 +80,36 @@ function ipv4_get_netaddress() {
        return ${EXIT_OK}
 }
 
+function ipv4_get_prefix() {
+       local address=${1}
+       local broadcast=${2}
+
+       assert isset address
+       assert isset broadcast
+
+       local PREFIX
+       eval $(ipcalc --prefix ${address} ${broadcast})
+       assert isset PREFIX
+
+       echo "${PREFIX}"
+       return ${EXIT_OK}
+}
+
+function ipv4_flush_device() {
+       #
+       # Flushes all routes, addresses from the device
+       # and clears the ARP cache.
+       #
+
+       local device=${1}
+       assert isset device
+
+       ip -4 addr flush dev ${device} >/dev/null 2>&1
+       ip -4 route flush dev ${device} >/dev/null 2>&1
+       ip -4 neigh flush dev ${device} >/dev/null 2>&1
+
+       return 0
+
 function ipv4_prefix2netmask() {
        local prefix=${1}
        shift