- New source device numbering system: now based on ip address and not host name.
This commit is contained in:
@@ -61,6 +61,56 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
|
# ip_to_num
|
||||||
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
ip_to_num()
|
||||||
|
{
|
||||||
|
local ip="$1"
|
||||||
|
local a
|
||||||
|
local b
|
||||||
|
local c
|
||||||
|
local d
|
||||||
|
|
||||||
|
IFS=. read -r a b c d <<< "${ip}"
|
||||||
|
|
||||||
|
echo $(( (a << 24) + (b << 16) + (c << 8) + d ))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
|
# num_to_ip
|
||||||
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
num_to_ip()
|
||||||
|
{
|
||||||
|
local num="$1"
|
||||||
|
|
||||||
|
|
||||||
|
# Optional safety check
|
||||||
|
if (( num < 0 || num > 4294967295 ))
|
||||||
|
then
|
||||||
|
echo "num_to_ip: value out of range (0‑4294967295)" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract each byte by shifting and masking
|
||||||
|
local a=$(( (num >> 24) & 255 ))
|
||||||
|
local b=$(( (num >> 16) & 255 ))
|
||||||
|
local c=$(( (num >> 8) & 255 ))
|
||||||
|
local d=$(( num & 255 ))
|
||||||
|
|
||||||
|
printf '%d.%d.%d.%d\n' "$a" "$b" "$c" "$d"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
# network_common_load
|
# network_common_load
|
||||||
#--------------------------------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -352,6 +402,8 @@ network_src_tab_load()
|
|||||||
|
|
||||||
|
|
||||||
${LOG} 1>&2 "Loading Src tab..."
|
${LOG} 1>&2 "Loading Src tab..."
|
||||||
|
|
||||||
|
ip_base=$( ip_to_num ${NETWORK_SRC_LOCAL_ADDRESS})
|
||||||
|
|
||||||
while IFS= read -r line
|
while IFS= read -r line
|
||||||
do
|
do
|
||||||
@@ -380,8 +432,14 @@ network_src_tab_load()
|
|||||||
"0") # Local
|
"0") # Local
|
||||||
# nstl_device="${NETWORK_SRC_DEVICE}-${nstl_local_id}"
|
# nstl_device="${NETWORK_SRC_DEVICE}-${nstl_local_id}"
|
||||||
# ((nstl_local_id++))
|
# ((nstl_local_id++))
|
||||||
[[ $nstl_host_name =~ ([0-9]+) ]]
|
|
||||||
nstl_device="${NETWORK_SRC_DEVICE}-${BASH_REMATCH[1]}"
|
# [[ $nstl_host_name =~ ([0-9]+) ]]
|
||||||
|
# nstl_device="${NETWORK_SRC_LOCAL_DEVICE}-${BASH_REMATCH[1]}"
|
||||||
|
|
||||||
|
ip_num=$(ip_to_num ${nstl_ip})
|
||||||
|
device_num="$(( ( ${ip_num} - ${ip_base}) / 4))"
|
||||||
|
|
||||||
|
nstl_device="${NETWORK_SRC_LOCAL_DEVICE}-${device_num}"
|
||||||
;;&
|
;;&
|
||||||
|
|
||||||
"1") # Routed
|
"1") # Routed
|
||||||
|
|||||||
Reference in New Issue
Block a user