HOOK_SETTINGS=(
"ADDRESS"
+ "ID"
"PARENT_PORT"
- "TAG"
)
PORT_PARENTS_VAR="PARENT_PORT"
hook_check_settings() {
+ assert ismac ADDRESS
assert isset PARENT_PORT
- assert isinteger TAG
- if isset ADDRESS; then
- assert ismac ADDRESS
- fi
-
- if [ ${TAG} -gt 4096 ]; then
- error "TAG is greater than 4096."
- exit ${EXIT_ERROR}
- fi
-
- local reserved
- for reserved in 0 4095; do
- if [ "${TAG}" = "${reserved}" ]; then
- error "TAG=${reserved} is reserved."
- exit ${EXIT_ERROR}
- fi
- done
+ assert isinteger ID
+ assert vlan_valid_id "${ID}"
}
hook_find_port_name() {
+ assert isset ID
assert isset PARENT_PORT
- assert isset TAG
- print "${PARENT_PORT}${VLAN_PORT_INTERFIX}${TAG}"
+ print "${PARENT_PORT}${VLAN_PORT_INTERFIX}${ID}"
}
hook_parse_cmdline() {
return ${EXIT_CONF_ERROR}
fi
;;
+ --id=*)
+ ID=$(cli_get_val "${1}")
+
+ # Validate VLAN ID
+ if ! vlan_valid_id "${ID}"; then
+ error "Invalid VLAN ID: ${ID}"
+ return ${EXIT_CONF_ERROR}
+ fi
+ ;;
--port=*)
PARENT_PORT=$(cli_get_val "${1}")
return ${EXIT_CONF_ERROR}
fi
;;
- --tag=*)
- TAG=$(cli_get_val "${1}")
- ;;
*)
error "Unknown argument '${1}'"
return ${EXIT_CONF_ERROR}
# Create the VLAN device
if ! vlan_create "${port}" \
--address="${ADDRESS}" \
- --parent="${PARENT_PORT}" \
- --tag="${TAG}"; then
+ --id="${id}" \
+ --parent="${PARENT_PORT}"; then
error "Could not create port: ${port}"
return ${EXIT_ERROR}
fi