+hook_parse_cmdline() {
+ while [ $# -gt 0 ]; do
+ case "${1}" in
+ --address=*)
+ ADDRESS="$(cli_get_val "${1}")"
+
+ if ! mac_is_valid "${ADDRESS}"; then
+ error "Invalid MAC address: ${ADDRESS}"
+ return ${EXIT_ERROR}
+ fi
+ ;;
+
+ --advertised-link-speeds=*)
+ ADVERTISED_LINK_SPEEDS="$(cli_get_val "${1}")"
+
+ local speed
+ for speed in ${ADVERTISED_LINK_SPEEDS}; do
+ if [ -z "${DEVICE_LINK_SPEEDS[${speed}]}" ]; then
+ error "Unsupported link speed: ${speed}"
+ return ${EXIT_ERROR}
+ fi
+ done
+ ;;
+
+ --mtu=*)
+ MTU="$(cli_get_val "${1}")"
+
+ if ! mtu_is_valid "ethernet" "${MTU}"; then
+ error "Invalid MTU: ${MTU}"
+ return ${EXIT_ERROR}
+ fi
+ ;;
+
+ --offloading=*)
+ OFFLOADING="$(cli_get_val "${1}")"
+
+ if enabled OFFLOADING; then
+ OFFLOADING="on"
+ elif disabled OFFLOADING; then
+ OFFLOADING="off"
+ else
+ error "Invalid value for offloading: ${OFFLOADING}"
+ return ${EXIT_ERROR}
+ fi
+ ;;
+
+ *)
+ error "Unknown argument: ${1}"
+ return ${EXIT_ERROR}
+ ;;
+ esac
+ shift
+ done