<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=us-ascii" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
On 07/14/2009 03:54 PM, Hugh O. Brock wrote:
<blockquote cite="mid:20090714195407.GE10740@redhat.com" type="cite">
  <pre wrap="">On Tue, Jul 14, 2009 at 03:09:00PM -0400, Joey Boggs wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">On 07/13/2009 03:11 PM, Darryl L. Pierce wrote:
    </pre>
    <blockquote type="cite">
      <pre wrap="">If the vlan kernel argument is provided, then it is used during
networking auto-configuration.

Signed-off-by: Darryl L. Pierce<a class="moz-txt-link-rfc2396E" href="mailto:dpierce@redhat.com"><dpierce@redhat.com></a>
---
 scripts/ovirt-config-networking |   56 
 ++++++++++++++++++++++++++++++++------
 scripts/ovirt-early             |    7 ++++-
 2 files changed, 53 insertions(+), 10 deletions(-)

diff --git a/scripts/ovirt-config-networking 
b/scripts/ovirt-config-networking
index 2674dfe..2bd082e 100755
--- a/scripts/ovirt-config-networking
+++ b/scripts/ovirt-config-networking
@@ -45,6 +45,33 @@ function has_configured_interface
     fi
 }

+# Configures vlan for the node.
+# $1 - the nic
+# $2 - the network bridge name
+# $3 - the vlan id
+# $4 - the VL_ROOT variable
+# $5 - the VL_CONFIG variable
+# $6 - the IF_ROOT value
+# $7 - the vlan config filename variable
+# $8 - the NIC config filename
+function setup_vlan
+{
+    local nic=$1
+    local bridge=$2
+    local vlan_id=$3
+    local vlroot=$4
+    local vlconfig=$5
+    local ifroot=$6
+    local vlfilename=$7
+    local iffilename=$8
+
+    eval $vlroot="${ifroot}.${vlan_id}"
+    eval $vlconfig=\"rm \$${vlroot}\\nset \$${vlroot}/DEVICE 
${nic}.${vlan_id}\"
+    eval $vlconfig=\"\$${vlconfig}\\nset \$${vlroot}/BRIDGE ${bridge}\"
+    eval $vlconfig=\"\$${vlconfig}\\nset \$${vlroot}/VLAN yes\"
+    eval $vlfilename="${iffilename}.${vlan_id}"
+}
+
 function configure_interface
 {
     local NIC=$1
@@ -118,12 +145,8 @@ function configure_interface
                             A|a) CONFIGURED_NIC=""; return;;
                             *)
                                 if [[ -n "$REPLY" ]]&&  [[ "$REPLY" =~ 
                                 "^[0-9]{1,}$" ]]; then
-                                    VLAN_ID=$REPLY
-                                    VL_ROOT="${IF_ROOT}.${VLAN_ID}"
-                                    VL_CONFIG="rm ${VL_ROOT}\nset 
${VL_ROOT}/DEVICE ${NIC}.${VLAN_ID}"
-                                    VL_CONFIG="${VL_CONFIG}\nset 
${VL_ROOT}/BRIDGE ${BRIDGE}"
-                                    VL_CONFIG="${VL_CONFIG}\nset 
${VL_ROOT}/VLAN yes"
-                                    
VL_FILENAME="${IF_FILENAME}.${VLAN_ID}"
+                                   VLAN_ID=$REPLY
+                                   setup_vlan $NIC $BRIDGE $VLAN_ID VL_ROOT 
VL_CONFIG $IF_ROOT VL_FILENAME $IF_FILENAME
                                     break
                                 fi
                                 ;;
@@ -236,12 +259,21 @@ function configure_interface
             esac
         fi

+        if [ -n "$OVIRT_VLAN" ]; then
+           VLAN_ID=$OVIRT_VLAN
+           setup_vlan $NIC $BRIDGE $VLAN_ID VL_ROOT VL_CONFIG $IF_ROOT 
VL_FILENAME $IF_FILENAME
+        fi
+
         if [ -z "$OVIRT_IP_ADDRESS" ]; then
-            IF_CONFIG="${IF_CONFIG}\nset ${IF_ROOT}/BRIDGE ${BRIDGE}"
-            BR_CONFIG="$BR_CONFIG\nset $BR_ROOT/BOOTPROTO dhcp"
+           if [ -z "$VL_CONFIG" ]; then
+               IF_CONFIG="${IF_CONFIG}\nset ${IF_ROOT}/BRIDGE ${BRIDGE}"
+           fi
+           BR_CONFIG="$BR_CONFIG\nset $BR_ROOT/BOOTPROTO dhcp"
         else
             if [ "$OVIRT_IP_ADDRESS" != "off" ]; then
-                IF_CONFIG="${IF_CONFIG}\nset ${IF_ROOT}/BRIDGE ${BRIDGE}"
+               if [ -z "$VL_CONFIG" ]; then
+                    IF_CONFIG="${IF_CONFIG}\nset ${IF_ROOT}/BRIDGE 
${BRIDGE}"
+               fi
                 BR_CONFIG="$BR_CONFIG\nset $BR_ROOT/IPADDR 
                 $OVIRT_IP_ADDRESS"
                 if [ -n "$OVIRT_IP_NETMASK" ]; then
                     BR_CONFIG="$BR_CONFIG\nset $BR_ROOT/NETMASK 
                     $OVIRT_IP_NETMASK"
@@ -254,9 +286,15 @@ function configure_interface

         IF_CONFIG="$IF_CONFIG\nset $IF_ROOT/ONBOOT yes"
         BR_CONFIG="$BR_CONFIG\nset $BR_ROOT/ONBOOT yes"
+       if [ -n "${VL_CONFIG}" ]; then
+           VL_CONFIG="$VL_CONFIG\nset $VL_ROOT/ONBOOT yes"
+       fi

         printf "$IF_CONFIG\n">  $IF_FILENAME
         printf "$BR_CONFIG\n">  $BR_FILENAME
+       if [ -n "$VL_CONFIG" ]; then
+           printf "$VL_CONFIG\n">  $VL_FILENAME
+       fi
     fi
 }

diff --git a/scripts/ovirt-early b/scripts/ovirt-early
index b4de30e..560fa14 100755
--- a/scripts/ovirt-early
+++ b/scripts/ovirt-early
@@ -208,10 +208,12 @@ start() {
     #   ipv6=dhcp|auto
     #   dns=server[,server]
     #   ntp=server[,server]
+    #   vlan=id
     # static network configuration
     ip_address=
     ip_gateway=
     ip_netmask=
+    vlan=
     netmask=
     gateway=
     ipv6=
@@ -344,6 +346,9 @@ start() {
             hostname=*)
             hostname=${i#hostname=}
             ;;
+            vlan=*)
+            vlan=${i#vlan=}
+            ;;
             syslog=*)
             i=${i#syslog=}
             eval $(printf $i|awk -F: '{print "syslog_server="$1; print 
             "syslog_port="$2;}')
@@ -365,7 +370,7 @@ start() {
         ip_gateway=$gateway
     fi
     # save boot parameters as defaults for ovirt-config-*
-    params="bootif init vol_boot_size vol_swap_size vol_root_size 
vol_config_size vol_logging_size vol_data_size local_boot standalone 
overcommit ip_address ip_netmask ip_gateway ipv6 dns ntp syslog_server 
syslog_port collectd_server collectd_port bootparams hostname firstboot"
+    params="bootif init vol_boot_size vol_swap_size vol_root_size 
vol_config_size vol_logging_size vol_data_size local_boot standalone 
overcommit ip_address ip_netmask ip_gateway ipv6 dns ntp vlan 
syslog_server syslog_port collectd_server collectd_port bootparams 
hostname firstboot"
     # mount /config unless firstboot is forced
     if [ "$firstboot" != "1" ]; then
         mount_config
  
      </pre>
    </blockquote>
    <pre wrap="">Tried this on 2 different boxes getting whitespace errors, but the patch 
file doesn't show any extra spaces?

# cat -v $patchfile
+# Configures vlan for the node.^M
+# $1 - the nic^M
+# $2 - the network bridge name^M
+# $3 - the vlan id^M
+# $4 - the VL_ROOT variable^M
+# $5 - the VL_CONFIG variable^M
+# $6 - the IF_ROOT value^M
+# $7 - the vlan config filename variable^M
+# $8 - the NIC config filename^M
+function setup_vlan^M


-bash-3.2$ git am ../\[Ovirt-devel\]\ \[PATCH\ node\]\ Adds\ vlan\ 
support\ to\ auto-installations\     for\ the\ node.\ bz#511056.eml
Applying: Adds vlan support to auto-installations for the node. bz#511056
/home/jboggs/ovirt-node/.git/rebase-apply/patch:14: trailing whitespace.
# Configures vlan for the node.
/home/jboggs/ovirt-node/.git/rebase-apply/patch:15: trailing whitespace.
# $1 - the nic
/home/jboggs/ovirt-node/.git/rebase-apply/patch:16: trailing whitespace.
# $2 - the network bridge name
/home/jboggs/ovirt-node/.git/rebase-apply/patch:17: trailing whitespace.
# $3 - the vlan id
/home/jboggs/ovirt-node/.git/rebase-apply/patch:18: trailing whitespace.
# $4 - the VL_ROOT variable
error: patch failed: scripts/ovirt-config-networking:45
error: scripts/ovirt-config-networking: patch does not apply
error: patch failed: scripts/ovirt-early:208
error: scripts/ovirt-early: patch does not apply
Patch failed at 0001.
When you have resolved this problem run "git am --resolved".
If you would prefer to skip this patch, instead run "git am --skip".
To restore the original branch and stop patching run "git am --abort".

    </pre>
  </blockquote>
  <pre wrap=""><!---->
My emacs buffer shows the ^Ms that are trailing each one of the lines in
that patch file...

--Hugh
  </pre>
</blockquote>
<br>
The ^M's are carriage return or whatever can't remember, I ran cat -v
to at least make sure the last character was the last one on the line
followed by the return. Anyone have any other ideas?<br>
<br>
</body>
</html>