summaryrefslogtreecommitdiff
path: root/scripts/vyatta-update-arp-params
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/vyatta-update-arp-params')
-rwxr-xr-xscripts/vyatta-update-arp-params81
1 files changed, 28 insertions, 53 deletions
diff --git a/scripts/vyatta-update-arp-params b/scripts/vyatta-update-arp-params
index 094d0751..36275731 100755
--- a/scripts/vyatta-update-arp-params
+++ b/scripts/vyatta-update-arp-params
@@ -35,29 +35,37 @@ print_usage()
echo -e "\t$0 delete <type of arp paramter> <ipv4/ipv6>"
}
+set_table_thresholds() {
+ local ip_type=$1
+ local arp_value=$2
+ local softmax=$((arp_value / 2));
+ local min=$((arp_value / 8));
+ sudo sysctl -q net.$ip_type.neigh.default.gc_thresh3=$arp_value
+ sudo sysctl -q net.$ip_type.neigh.default.gc_thresh2=$softmax
+ sudo sysctl -q net.$ip_type.neigh.default.gc_thresh1=$min
+}
+
syntax_arp_param ()
{
- arp_type=$1
- arp_value=$2
- ip_type=$3
+ local arp_type=$1
+ local arp_value=$2
+ local ip_type=$3
case "$arp_type" in
- table-size)
- allowed_values=(1024 2048 4096 8192 16384)
- allowed_values_len=${#allowed_values[*]}
- i=0
- while [ $i -lt $allowed_values_len ]; do
- if [ "${allowed_values[$i]}" == "$arp_value" ] ; then
- exit 0
- fi
- let i++
+ table-size)
+ local allowed_values=(1024 2048 4096 8192 16384 32768)
+ local i
+ for i in ${allowed_values[@]}; do
+ if [[ "$i" == "$arp_value" ]]; then
+ exit 0
+ fi
done
- echo "Allowed values for ARP table-size - 1024 2048 4096 8192 16384"
+ echo "Allowed values for ARP table-size - ${allowed_values[*]}"
exit 1
;;
- *)
+ *)
echo Invalid arp parameter $arp_type to set
exit 1
;;
@@ -66,40 +74,16 @@ syntax_arp_param ()
update_arp_param ()
{
- arp_type=$1
- arp_value=$2
- ip_type=$3
-
- case "$arp_type" in
-
- table-size)
- let softmax=$arp_value\/2;
- let min=$arp_value\/8;
- sudo sysctl -q net.$ip_type.neigh.default.gc_thresh3=$arp_value
- sudo sysctl -q net.$ip_type.neigh.default.gc_thresh2=$softmax
- sudo sysctl -q net.$ip_type.neigh.default.gc_thresh1=$min
- ;;
-
- *)
- echo Invalid arp parameter $arp_type to update
- ;;
- esac
-}
-
-delete_arp_param ()
-{
- arp_type=$1
- ip_type=$2
-
+ local arp_type=$1
+ local arp_value=$2
+ local ip_type=$3
case "$arp_type" in
- table-size)
- sudo sysctl -q net.$ip_type.neigh.default.gc_thresh3=1024
- sudo sysctl -q net.$ip_type.neigh.default.gc_thresh2=512
- sudo sysctl -q net.$ip_type.neigh.default.gc_thresh1=128
+ table-size)
+ set_table_thresholds $ip_type $arp_value
;;
- *)
+ *)
echo Invalid arp parameter $arp_type to update
;;
esac
@@ -126,15 +110,6 @@ case "$1" in
update_arp_param $2 $3 $4
;;
- delete)
- if [ $# -ne 3 ]; then
- print_usage
- exit 1
- fi
- delete_arp_param $2 $3
- ;;
-
-
*)
print_usage
exit 1