>>On the vmbr interfaces we separate vlans with a 'v' (ie vmbr0v5 would >>be vmbr0's vlan 5), or is a change to dotted notation required for this? >>We use the dots only on physical interfaces.
It's not a new bridge, it's a self tagged interface inside the bridge. >> + VLANID=`echo $IFACE|sed "s/vmbr[0-9][0-9]*\.0*//g"` >>>Why the /0*/? >>Btw. sed without -r does have a 1-or-more match, too, you just have to >>escape it: /[0-9]\+/. (Though I very much recommend using the -r switch >>for simplicity (and because regex(7) calls basic ones "obsolete" ;-) )). >>(And an ^ at the beginning might be good here?) >> >>Personally I'd recommend bash over dash since it supports REs and more >>substitutions without having to fork out to an echo+sed pipe. >> >> + IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(vmbr[0-9][0-9]*\)\..*/\1/"` >>Maybe ${IFACE%%.*} is sufficient here? (both dash and bash compatible) I have simply copy/paste current code from /etc/network/if-pre-up.d/vlan So, it should work with bash and dash ? ----- Mail original ----- De: "Wolfgang Bumiller" <w.bumil...@proxmox.com> À: "aderumier" <aderum...@odiso.com> Cc: "pve-devel" <pve-devel@pve.proxmox.com> Envoyé: Vendredi 24 Juillet 2015 12:12:39 Objet: Re: [pve-devel] [PATCH] add vlan aware bridge ifupdown script A couple of questions: > + vmbr*.*) On the vmbr interfaces we separate vlans with a 'v' (ie vmbr0v5 would be vmbr0's vlan 5), or is a change to dotted notation required for this? We use the dots only on physical interfaces. > + VLANID=`echo $IFACE|sed "s/vmbr[0-9][0-9]*\.0*//g"` Why the /0*/? Btw. sed without -r does have a 1-or-more match, too, you just have to escape it: /[0-9]\+/. (Though I very much recommend using the -r switch for simplicity (and because regex(7) calls basic ones "obsolete" ;-) )). (And an ^ at the beginning might be good here?) Personally I'd recommend bash over dash since it supports REs and more substitutions without having to fork out to an echo+sed pipe. > + IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(vmbr[0-9][0-9]*\)\..*/\1/"` Maybe ${IFACE%%.*} is sufficient here? (both dash and bash compatible) On Fri, Jul 24, 2015 at 11:24:44AM +0200, Alexandre Derumier wrote: > This add support to enable vlan aware bridge, > and management interfaces > > example: 1 bridge and 1 administration port on vlan 100 > > auto vmbr0 > iface vmbr0 inet manual > bridge_ports eth0 > bridge_stp off > bridge_fd 0 > bridge_vlan_aware yes > bridge_vids 10-15 > > auto vmbr0.100 > iface vmbr0.100 inet static > address X.X.X.X > netmask 255.255.255.0 > gateway X.X.X.X > > bridge_vids is optional, and allow on the specified vlans.(current take 1 > value or range, need to be improve with list) > If not specified, the allowed vlan are 2-4094. > vlan 1 is the default pvid. (all untagged traffic is going to this vlan). > > Signed-off-by: Alexandre Derumier <aderum...@odiso.com> > --- > Makefile | 4 +++- > debian/conffiles | 2 ++ > vmbrvlan | 38 ++++++++++++++++++++++++++++++++++++++ > 3 files changed, 43 insertions(+), 1 deletion(-) > create mode 100755 vmbrvlan > > diff --git a/Makefile b/Makefile > index a09393c..6100f05 100644 > --- a/Makefile > +++ b/Makefile > @@ -80,7 +80,7 @@ aplupload: > scp aplinfo/aplinfo.dat aplinfo.dat.gz aplinfo/aplinfo.dat.asc > download1.proxmox.com:/home/ftp/appliances/ > > .PHONY: install > -install: country.dat vznet.conf vzdump.conf vzdump-hook-script.pl > pve-apt.conf pve-repo-ca-certificates.crt mtu > +install: country.dat vznet.conf vzdump.conf vzdump-hook-script.pl > pve-apt.conf pve-repo-ca-certificates.crt mtu bridgevlan vmbrvlan > install -d -m 0700 -o www-data -g www-data ${DESTDIR}/var/log/pveproxy > install -D -m 0644 debian/pve.logrotate ${DESTDIR}/etc/logrotate.d/pve > install -d ${DESTDIR}/usr/share/${PACKAGE} > @@ -97,6 +97,8 @@ install: country.dat vznet.conf vzdump.conf > vzdump-hook-script.pl pve-apt.conf p > install -D -m 0644 vzdump.conf ${DESTDIR}/etc/vzdump.conf > install -D -m 0755 vznet.conf ${DESTDIR}/etc/vz/vznet.conf > install -D -m 0755 mtu ${DESTDIR}/etc/network/if-up.d/mtu > + install -D -m 0755 bridgevlan ${DESTDIR}/etc/network/if-up.d/bridgevlan > + install -D -m 0755 vmbrvlan ${DESTDIR}/etc/network/if-pre-up.d/vmbrvlan > install -m 0644 vzdump-hook-script.pl > ${DOCDIR}/examples/vzdump-hook-script.pl > install -m 0644 spice-example-sh ${DOCDIR}/examples/spice-example-sh > install -m 0644 copyright ${DOCDIR} > diff --git a/debian/conffiles b/debian/conffiles > index 895abdf..2916cac 100644 > --- a/debian/conffiles > +++ b/debian/conffiles > @@ -11,3 +11,5 @@ > /etc/apt/pve-repo-ca-certificates.crt > /etc/apt/sources.list.d/pve-enterprise.list > /etc/network/if-up.d/mtu > +/etc/network/if-up.d/bridgevlan > +/etc/network/if-pre-up.d/vmbrvlan > diff --git a/vmbrvlan b/vmbrvlan > new file mode 100755 > index 0000000..ee570f0 > --- /dev/null > +++ b/vmbrvlan > @@ -0,0 +1,38 @@ > +#!/bin/sh > + > +# Most of this stuff is to enable vlans > + > +case "$IFACE" in > + # Ignore any alias (#272891) which uses <interface>:<alabel> > + *:*) > + exit 0 > + ;; > + vmbr*.*) > + vconfig set_name_type DEV_PLUS_VID_NO_PAD > + VLANID=`echo $IFACE|sed "s/vmbr[0-9][0-9]*\.0*//g"` > + IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(vmbr[0-9][0-9]*\)\..*/\1/"` > + bridge vlan add dev $IF_VLAN_RAW_DEVICE vid $VLANID self > + ;; > + *) > + exit 0 > + ;; > +esac > + > +if [ -n "$IF_VLAN_RAW_DEVICE" ]; then > + if [ ! -x /sbin/vconfig ]; then > + exit 0 > + fi > + if ! ip link show dev "$IF_VLAN_RAW_DEVICE" > /dev/null; then > + echo "$IF_VLAN_RAW_DEVICE does not exist, unable to create $IFACE" > + exit 1 > + fi > + if [ ! -e "/sys/class/net/$IFACE" ]; then > + ip link set up dev $IF_VLAN_RAW_DEVICE > + vconfig add $IF_VLAN_RAW_DEVICE $VLANID > + fi > +fi > + > +# This is not vlan specific, and should actually go somewhere else. > +if [ -n "$IF_HW_MAC_ADDRESS" ]; then > + ip link set $IFACE address $IF_HW_MAC_ADDRESS > +fi > -- > 2.1.4 > > _______________________________________________ > pve-devel mailing list > pve-devel@pve.proxmox.com > http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel