+++ /dev/null
-#!/bin/bash
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2012 IPFire Network Development Team #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-###############################################################################
-
-function switch_start() {
- local service="openvswitch.service"
-
- if ! service_is_active "${service}"; then
- service_start "${service}"
- fi
-
- return ${EXIT_OK}
-}
-
-function switch_create() {
- local device=${1}
- assert isset device
-
- # Make sure that the openvswitch service is running.
- switch_start
-
- log DEBUG "Creating virtual switch: ${device}"
- ovs-vsctl -- --may-exist add-br ${device}
-
- assert device_exists ${device}
-
- return ${EXIT_OK}
-}
-
-function switch_remove() {
- local device=${1}
- assert isset device
-
- # Set device down.
- device_set_down ${device}
-
- log DEBUG "Removing virtual switch: ${device}"
- ovs-vsctl -- --if-exists del-br ${device}
-
- return ${EXIT_OK}
-}
-
-function switch_exists() {
- local device=${1}
- assert isset device
-
- ovs-vsctl -- br-exists ${device}
- case "$?" in
- 0)
- return ${EXIT_TRUE}
- ;;
- 2)
- return ${EXIT_FALSE}
- ;;
- esac
-
- return ${EXIT_ERROR}
-}
-
-function switch_get_members() {
- local device=${1}
- assert isset device
-
- ovs-vsctl -- list-ports ${device}
- return ${EXIT_OK}
-}
-
-function switch_attach_port() {
- local device=${1}
- assert isset device
-
- local port=${2}
- assert isset port
-
- log DEBUG "Attaching port '${port}' to switch '${device}'"
- ovs-vsctl -- --may-exist add-port "${device}" "${port}"
-
- return ${EXIT_OK}
-}
-
-function switch_detach_port() {
- local device=${1}
- assert isset device
-
- local port=${2}
- assert isset port
-
- log DEBUG "Detaching port '${port}' from switch '${device}'"
- ovs-vsctl -- --if-exists del-port "${device}" "${port}"
-
- return ${EXIT_OK}
-}
-
-function switch_stp_enable() {
- local device=${1}
- assert isset device
-
- log DEBUG "Enable STP on switch ${device}"
- ovs-vsctl set Bridge ${device} "stp_enable=true"
-
- return ${EXIT_OK}
-}
-
-function switch_stp_disable() {
- local device=${1}
- assert isset device
-
- log DEBUG "Disable STP on switch ${device}"
- ovs-vsctl set Bridge ${device} "stp_enable=false"
-
- return ${EXIT_OK}
-}
-
-function switch_stp_is_enabled() {
- local device=${1}
- assert isset device
-
- local output=$(ovs-vsctl -- --if-exists get Bridge ${device} stp_enable)
-
- if enabled output; then
- return ${EXIT_TRUE}
- fi
-
- return ${EXIT_FALSE}
-}
+++ /dev/null
-#!/bin/bash
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2010 Michael Tremer & Christian Schmidt #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
-# #
-###############################################################################
-
-. /usr/lib/network/header-zone
-
-HOOK_SETTINGS="HOOK MAC MTU"
-
-# Default values
-MAC=$(mac_generate)
-MTU=1500
-
-function hook_check() {
- assert ismac MAC
- assert isinteger MTU
-}
-
-function hook_parse_cmdline() {
- while [ $# -gt 0 ]; do
- case "${1}" in
- --mtu=*)
- MTU=${1#--mtu=}
- ;;
- --mac=*)
- MAC=${1#--mac=}
- ;;
- *)
- warning "Ignoring unknown option '${1}'"
- ;;
- esac
- shift
- done
-}
-
-function hook_up() {
- local zone=${1}
- shift
-
- zone_config_read ${zone}
-
- # Create the interface.
- log INFO "Creating virtual switch '${zone}'."
- switch_create ${zone}
-
- [ -n "${MAC}" ] && device_set_address ${zone} ${MAC}
- [ -n "${MTU}" ] && device_set_mtu ${zone} ${MTU}
-
- # Bring it up.
- device_set_up ${zone}
-
- # Bring all ports up
- zone_ports_up ${zone}
- zone_configs_up ${zone}
-
- exit ${EXIT_OK}
-}
-
-function hook_down() {
- local zone=${1}
- shift
-
- zone_configs_down ${zone}
- zone_ports_down ${zone}
-
- # Bring it down.
- device_set_down ${zone}
-
- # Remove the virtual switch.
- log INFO "Removing virtual switch '${zone}'."
- switch_remove ${zone}
-
- exit ${EXIT_OK}
-}
-
-function hook_status() {
- local zone=${1}
- assert isset zone
-
- # Print the default header.
- cli_device_headline ${zone}
-
- # Exit if zone is down
- if ! zone_is_up ${zone}; then
- echo # Empty line
- exit ${EXIT_ERROR}
- fi
-
- cli_headline 2 "Spanning Tree Protocol information"
- if switch_stp_is_enabled ${zone}; then
- # local proto=$(stp_bridge_get_protocol ${zone})
-
- # cli_print_fmt1 2 "Version" "$(stp_get_name ${proto})"
- # cli_print_fmt1 2 "ID" "$(stp_bridge_get_id ${zone})"
- # cli_print_fmt1 2 "Priority" "$(switch_stp_get_priority ${zone})"
-
- # if stp_bridge_is_root ${zone}; then
- # cli_print 2 "This bridge is root."
- # else
- # cli_print_fmt1 2 "Designated root" \
- # "$(stp_bridge_get_designated_root ${zone})"
- # cli_print_fmt1 2 "Root path cost" \
- # "$(stp_bridge_get_root_path_cost ${zone})"
- # fi
- # cli_space
-
- # # Topology information
- # cli_print_fmt1 2 "Topology changing" \
- # "$(stp_bridge_get_topology_change_detected ${zone})"
- # cli_print_fmt1 2 "Topology change time" \
- # "$(beautify_time $(stp_bridge_get_topology_change_timer ${zone}))"
- # cli_print_fmt1 2 "Topology change count" \
- # "$(stp_bridge_get_topology_change_count ${zone})"
- # cli_space
- :
- else
- cli_print 2 "Disabled"
- cli_space
- fi
-
- #cli_headline 2 "Ports"
- #zone_ports_status ${zone}
- #cli_space
-
- #cli_headline 2 "Configurations"
- #zone_configs_cmd status ${zone}
- #cli_space
-
- exit ${EXIT_OK}
-}