public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
* [git.ipfire.org] IPFire 2.x development tree branch, next, updated. d23fc9122091aea3581571e1367d4696d834cd1c
@ 2012-08-24 14:06 git
  0 siblings, 0 replies; only message in thread
From: git @ 2012-08-24 14:06 UTC (permalink / raw)
  To: ipfire-scm

[-- Attachment #1: Type: text/plain, Size: 9005 bytes --]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".

The branch, next has been updated
       via  d23fc9122091aea3581571e1367d4696d834cd1c (commit)
      from  3eeb913b052a2debec285c5fa9ce9d108855931d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit d23fc9122091aea3581571e1367d4696d834cd1c
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Fri Aug 24 15:58:38 2012 +0200

    Add a script to create VLAN interfaces (on console).

-----------------------------------------------------------------------

Summary of changes:
 config/cfgroot/ethernet-vlans                |    9 +++
 config/rootfiles/common/armv5tel/initscripts |    2 +
 config/rootfiles/common/i586/initscripts     |    2 +
 config/rootfiles/core/62/filelists/files     |    3 +
 lfs/configroot                               |    1 +
 lfs/initscripts                              |    1 +
 src/initscripts/init.d/network-vlans         |  101 ++++++++++++++++++++++++++
 7 files changed, 119 insertions(+), 0 deletions(-)
 create mode 100644 config/cfgroot/ethernet-vlans
 create mode 100755 src/initscripts/init.d/network-vlans

Difference in files:
diff --git a/config/cfgroot/ethernet-vlans b/config/cfgroot/ethernet-vlans
new file mode 100644
index 0000000..08cb36a
--- /dev/null
+++ b/config/cfgroot/ethernet-vlans
@@ -0,0 +1,9 @@
+#GREEN_PARENT_DEV="eth0"
+#GREEN_VLAN_ID=20
+#GREEN_MAC_ADDRESS="00:11:22:33:44:55"
+#BLUE_PARENT_DEV="green0"
+#BLUE_VLAN_ID=30
+#BLUE_MAC_ADDRESS="00:22:33:44:55:66"
+#ORANGE_PARENT_DEV="green0"
+#ORANGE_VLAN_ID=40
+#ORANGE_MAC_ADDRESS="00:33:44:55:66:77"
diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts
index c234166..ccb7bfb 100644
--- a/config/rootfiles/common/armv5tel/initscripts
+++ b/config/rootfiles/common/armv5tel/initscripts
@@ -58,6 +58,7 @@ etc/rc.d/init.d/mountkernfs
 #etc/rc.d/init.d/mysql
 #etc/rc.d/init.d/netsnmpd
 etc/rc.d/init.d/network
+etc/rc.d/init.d/network-vlans
 #etc/rc.d/init.d/networking
 etc/rc.d/init.d/networking/any
 etc/rc.d/init.d/networking/blue
@@ -213,6 +214,7 @@ etc/rc.d/rcsysinit.d/S70console
 etc/rc.d/rcsysinit.d/S75firstsetup
 etc/rc.d/rcsysinit.d/S80localnet
 etc/rc.d/rcsysinit.d/S90sysctl
+etc/rc.d/rcsysinit.d/S91network-vlans
 etc/rc.d/rc3.d/S15fireinfo
 #etc/sysconfig
 etc/sysconfig/createfiles
diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts
index 63cd274..653060f 100644
--- a/config/rootfiles/common/i586/initscripts
+++ b/config/rootfiles/common/i586/initscripts
@@ -59,6 +59,7 @@ etc/rc.d/init.d/mountkernfs
 #etc/rc.d/init.d/mysql
 #etc/rc.d/init.d/netsnmpd
 etc/rc.d/init.d/network
+etc/rc.d/init.d/network-vlans
 #etc/rc.d/init.d/networking
 etc/rc.d/init.d/networking/any
 etc/rc.d/init.d/networking/blue
@@ -216,6 +217,7 @@ etc/rc.d/rcsysinit.d/S70console
 etc/rc.d/rcsysinit.d/S75firstsetup
 etc/rc.d/rcsysinit.d/S80localnet
 etc/rc.d/rcsysinit.d/S90sysctl
+etc/rc.d/rcsysinit.d/S91network-vlans
 etc/rc.d/rc3.d/S15fireinfo
 #etc/sysconfig
 etc/sysconfig/createfiles
diff --git a/config/rootfiles/core/62/filelists/files b/config/rootfiles/core/62/filelists/files
index 731daa0..34f0d16 100644
--- a/config/rootfiles/core/62/filelists/files
+++ b/config/rootfiles/core/62/filelists/files
@@ -1,5 +1,8 @@
 etc/system-release
 etc/issue
+etc/rc.d/init.d/network-vlans
+etc/rc.d/rcsysinit.d/S91network-vlans
 srv/web/ipfire/cgi-bin/connections.cgi
 usr/lib/gconv
+var/ipfire/ethernet/vlans
 var/ipfire/outgoing/bin/outgoingfw.pl
diff --git a/lfs/configroot b/lfs/configroot
index f353614..90f5afa 100644
--- a/lfs/configroot
+++ b/lfs/configroot
@@ -100,6 +100,7 @@ $(TARGET) :
 	cp $(DIR_SRC)/config/cfgroot/time-settings		$(CONFIG_ROOT)/time/settings
 	cp $(DIR_SRC)/config/cfgroot/logging-settings		$(CONFIG_ROOT)/logging/settings
 	cp $(DIR_SRC)/config/cfgroot/useragents			$(CONFIG_ROOT)/proxy/advanced
+	cp $(DIR_SRC)/config/cfgroot/ethernet-vlans		$(CONFIG_ROOT)/ethernet/vlans
 	cp $(DIR_SRC)/langs/list					$(CONFIG_ROOT)/langs/
 
 	# Oneliner configfiles
diff --git a/lfs/initscripts b/lfs/initscripts
index 03cec80..7210c0d 100644
--- a/lfs/initscripts
+++ b/lfs/initscripts
@@ -170,6 +170,7 @@ $(TARGET) :
 	ln -sf ../init.d/firstsetup  /etc/rc.d/rcsysinit.d/S75firstsetup
 	ln -sf ../init.d/localnet    /etc/rc.d/rcsysinit.d/S80localnet
 	ln -sf ../init.d/sysctl      /etc/rc.d/rcsysinit.d/S90sysctl
+	ln -sf ../init.d/network-vlans /etc/rc.d/rcsysinit.d/S91network-vlans
 
 	ln -sf ../../dnsmasq /etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq
 	ln -sf ../../firewall /etc/rc.d/init.d/networking/red.up/20-RL-firewall
diff --git a/src/initscripts/init.d/network-vlans b/src/initscripts/init.d/network-vlans
new file mode 100755
index 0000000..88733e6
--- /dev/null
+++ b/src/initscripts/init.d/network-vlans
@@ -0,0 +1,101 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire 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 2 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire 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 IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2012 IPFire Team <info(a)ipfire.org>                         #
+#                                                                          #
+############################################################################
+
+CONFIG_FILE="/var/ipfire/ethernet/vlans"
+
+# Skip immediately if no configuration file has been found.
+[ -e "${CONFIG_FILE}" ] || exit 0
+
+eval $(readhash ${CONFIG_FILE})
+
+# This is start or stop.
+action=${1}
+
+for interface in green0 blue0 orange0; do
+	case "${interface}" in
+		green*)
+			PARENT_DEV=${GREEN_PARENT_DEV}
+			VLAN_ID=${GREEN_VLAN_ID}
+			MAC_ADDRESS=${GREEN_MAC_ADDRESS}
+			;;
+		blue*)
+			PARENT_DEV=${BLUE_PARENT_DEV}
+			VLAN_ID=${BLUE_VLAN_ID}
+			MAC_ADDRESS=${BLUE_MAC_ADDRESS}
+			;;
+		orange*)
+			PARENT_DEV=${ORANGE_PARENT_DEV}
+			VLAN_ID=${ORANGE_VLAN_ID}
+			MAC_ADDRESS=${ORANGE_MAC_ADDRESS}
+			;;
+	esac
+
+	case "${action}" in
+		start)
+			# Check if the interface does already exists.
+			# If so, we skip creating it.
+			if [ -d "/sys/class/net/${interface}" ]; then
+				echo "Interface ${interface} already exists."
+				continue
+			fi
+
+			# Check if the parent interface exists.
+			if [ -z "${PARENT_DEV}" ] || [ ! -d "/sys/class/net/${PARENT_DEV}" ]; then
+				echo "${interface}: Parent device is not set or does not exist: ${PARENT_DEV}"
+				continue
+			fi
+
+			if [ -z "${VLAN_ID}" ]; then
+				echo "${interface}: You did not set the VLAN ID."
+				continue
+			fi
+
+			echo "Creating VLAN interface ${interface}..."
+			vconfig add ${PARENT_DEV} ${VLAN_ID}
+			ip link set ${PARENT_DEV}.${VLAN_ID} name ${interface}
+
+			if [ -n "${MAC_ADDRESS}" ]; then
+				ip link set ${interface} address ${MAC_ADDRESS}
+			fi
+
+			# Bring up the parent device.
+			ip link set ${PARENT_DEV} up
+			;;
+
+		stop)
+			if [ ! -e "/proc/net/vlan/${interface}" ]; then
+				echo "${interface} is not a VLAN interface. Skipping."
+				continue
+			fi
+
+			echo "Removing VLAN interface ${interface}..."
+			ip link set ${interface} down
+			vconfig rem ${interface}
+			;;
+		
+		*)
+			echo "Invalid action: ${action}"
+			exit 1
+			;;
+	esac
+done


hooks/post-receive
--
IPFire 2.x development tree

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2012-08-24 14:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-24 14:06 [git.ipfire.org] IPFire 2.x development tree branch, next, updated. d23fc9122091aea3581571e1367d4696d834cd1c git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox