# #
###############################################################################
-function device_list() {
+device_list() {
local devices
# Add all interfaces
}
# Check if the device exists
-function device_exists() {
+device_exists() {
local device=${1}
# If device name was not found, exit.
serial_exists ${device}
}
-function device_matches_pattern() {
+device_matches_pattern() {
local device="${1}"
assert isset device
&& return ${EXIT_TRUE} || return ${EXIT_FALSE}
}
-function device_delete() {
+device_delete() {
local device=${1}
assert isset device
return ${ret}
}
-function device_has_flag() {
+device_has_flag() {
local device=${1}
local flag=${2}
}
# Check if the device is up
-function device_is_up() {
+device_is_up() {
local device=${1}
device_exists ${device} || return ${EXIT_ERROR}
device_has_flag ${device} 0x1
}
-function device_ifindex_to_name() {
+device_ifindex_to_name() {
local idx=${1}
assert isset idx
return ${EXIT_ERROR}
}
-function device_get_ifindex() {
+device_get_ifindex() {
local device=${1}
assert isset device
}
# Check if the device is a batman-adv bridge
-function device_is_batman_adv() {
+device_is_batman_adv() {
[ -d "${SYS_CLASS_NET}/${1}/mesh" ]
}
# Check if the device is a batman-adv slave port
-function device_is_batman_adv_slave() {
+device_is_batman_adv_slave() {
local device="${1}"
if [ -d "${SYS_CLASS_NET}/${device}/batman_adv" ]; then
}
# Check if the device is a bonding device
-function device_is_bonding() {
+device_is_bonding() {
[ -d "/sys/class/net/${1}/bonding" ]
}
# Check if the device bonded in a bonding device
-function device_is_bonded() {
+device_is_bonded() {
local device=${1}
[ -d "${SYS_CLASS_NET}/${device}/bonding_slave" ]
}
# Check if the device is a bridge
-function device_is_bridge() {
+device_is_bridge() {
[ -d "/sys/class/net/${1}/bridge" ]
}
-function device_is_bridge_attached() {
+device_is_bridge_attached() {
local device=${1}
[ -d "${SYS_CLASS_NET}/${device}/brport" ]
}
-function device_is_wireless_monitor() {
+device_is_wireless_monitor() {
local device="${1}"
assert isset device
device_matches_pattern "${device}" "${PORT_PATTERN_WIRELESS_MONITOR}"
}
-function device_is_wireless_adhoc() {
+device_is_wireless_adhoc() {
local device="${1}"
assert isset device
device_matches_pattern "${device}" "${PORT_PATTERN_WIRELESS_ADHOC}"
}
-function device_get_bridge() {
+device_get_bridge() {
local device=${1}
assert isset device
}
# Check if the device is a vlan device
-function device_is_vlan() {
+device_is_vlan() {
local device=${1}
assert isset device
}
# Check if the device has vlan devices
-function device_has_vlans() {
+device_has_vlans() {
local device=${1}
assert isset device
[ -n "${vlans}" ] && return ${EXIT_OK} || return ${EXIT_ERROR}
}
-function device_get_vlans() {
+device_get_vlans() {
local device=${1}
assert isset device
}
# Check if the device is a ppp device
-function device_is_ppp() {
+device_is_ppp() {
local device=${1}
local type=$(__device_get_file ${device} type)
}
# Check if the device is a pointopoint device.
-function device_is_ptp() {
+device_is_ptp() {
local device=${1}
device_has_flag ${device} 0x10
}
# Check if the device is a loopback device
-function device_is_loopback() {
+device_is_loopback() {
local device=${1}
[ "${device}" = "lo" ]
# Check if the device is a dummy device
# This is the worst possible check, but all I could come up with
-function device_is_dummy() {
+device_is_dummy() {
local device="${1}"
[[ ${device} =~ ^dummy[0-9]+$ ]]
}
# Check if the device is a wireless device
-function device_is_wireless() {
+device_is_wireless() {
local device=${1}
[ -d "${SYS_CLASS_NET}/${device}/phy80211" ]
}
-function device_get_phy() {
+device_get_phy() {
local device="${1}"
if device_is_wireless "${device}"; then
return ${EXIT_ERROR}
}
-function device_is_phy() {
+device_is_phy() {
phy_exists $@
}
-function device_is_serial() {
+device_is_serial() {
serial_exists $@
}
# Check if the device is a physical network interface
-function device_is_ethernet() {
+device_is_ethernet() {
local device=${1}
device_is_ethernet_compatible "${device}" || \
}
# Get the device type
-function device_get_type() {
+device_get_type() {
local device=${1}
# If the device does not exist (happens on udev remove events),
fi
}
-function device_is_ethernet_compatible() {
+device_is_ethernet_compatible() {
local device="${1}"
# /sys/class/net/*/type must equal 1 for ethernet compatible devices
[[ "${type}" = "1" ]]
}
-function device_get_status() {
+device_get_status() {
local device=${1}
assert isset device
echo "${status}"
}
-function device_get_address() {
+device_get_address() {
local device=${1}
cat ${SYS_CLASS_NET}/${device}/address 2>/dev/null
}
-function device_set_address() {
+device_set_address() {
assert [ $# -eq 2 ]
local device="${1}"
return ${ret}
}
-function device_get() {
+device_get() {
local device
local devices
return ${EXIT_OK}
}
-function devices_get_all() {
+devices_get_all() {
device_get
}
# Check if a device has a cable plugged in
-function device_has_carrier() {
+device_has_carrier() {
local device=${1}
assert isset device
[ "${carrier}" = "1" ]
}
-function device_is_promisc() {
+device_is_promisc() {
local device=${1}
device_has_flag ${device} 0x200
}
-function device_set_promisc() {
+device_set_promisc() {
local device=${1}
local state=${2}
}
# Check if the device is free
-function device_is_free() {
+device_is_free() {
! device_is_used $@
}
# Check if the device is used
-function device_is_used() {
+device_is_used() {
local device=${1}
device_has_vlans ${device} && \
}
# Give the device a new name
-function device_set_name() {
+device_set_name() {
local source=$1
local destination=${2}
}
# Set device up
-function device_set_up() {
+device_set_up() {
local device=${1}
# Silently fail if device was not found
ip link set ${device} up
}
-function device_set_parent_up() {
+device_set_parent_up() {
local device=${1}
local parent
}
# Set device down
-function device_set_down() {
+device_set_down() {
local device=${1}
assert isset device
return ${ret}
}
-function device_set_parent_down() {
+device_set_parent_down() {
local device=${1}
local parent
return ${EXIT_OK}
}
-function device_get_mtu() {
+device_get_mtu() {
local device=${1}
if ! device_exists ${device}; then
}
# Set mtu to a device
-function device_set_mtu() {
+device_set_mtu() {
local device=${1}
local mtu=${2}
return ${ret}
}
-function device_adjust_mtu() {
+device_adjust_mtu() {
assert [ $# -eq 2 ]
local device="${1}"
device_set_mtu "${device}" "${mtu}"
}
-function device_discover() {
+device_discover() {
local device=${1}
log INFO "Running discovery process on device '${device}'."
done
}
-function device_has_ip() {
+device_has_ip() {
local device=${1}
local addr=${2}
listmatch ${addr} $(device_get_addresses ${device})
}
-function device_get_addresses() {
+device_get_addresses() {
local device=${1}
assert device_exists ${device}
done
}
-function __device_get_file() {
+__device_get_file() {
local device=${1}
local file=${2}
echo "$(<${path})"
}
-function __device_set_file() {
+__device_set_file() {
assert [ $# -eq 3 ]
local device="${1}"
echo "${value}" > "${path}"
}
-function device_get_rx_bytes() {
+device_get_rx_bytes() {
local device=${1}
__device_get_file ${device} statistics/rx_bytes
}
-function device_get_tx_bytes() {
+device_get_tx_bytes() {
local device=${1}
__device_get_file ${device} statistics/tx_bytes
}
-function device_get_rx_packets() {
+device_get_rx_packets() {
local device=${1}
__device_get_file ${device} statistics/rx_packets
}
-function device_get_tx_packets() {
+device_get_tx_packets() {
local device=${1}
__device_get_file ${device} statistics/tx_packets
}
-function device_get_rx_errors() {
+device_get_rx_errors() {
local device=${1}
__device_get_file ${device} statistics/rx_errors
}
-function device_get_tx_errors() {
+device_get_tx_errors() {
local device=${1}
__device_get_file ${device} statistics/tx_errors
}
-function device_get_speed() {
+device_get_speed() {
local device=${1}
__device_get_file ${device} speed
}
-function device_get_duplex() {
+device_get_duplex() {
local device=${1}
__device_get_file ${device} duplex
}
-function device_get_link_string() {
+device_get_link_string() {
local device="${1}"
assert isset device