All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe MacDonald <Joe.MacDonald@windriver.com>
To: lei yang <yanglei.fage@gmail.com>
Cc: paul.eggleton@linux.intel.com, openembedded-devel@lists.openembedded.org
Subject: Re: [meta-networking][PATCH:V2] vlan: Add vlan recipe
Date: Thu, 20 Jun 2013 11:58:42 -0400	[thread overview]
Message-ID: <20130620155842.GB5093@windriver.com> (raw)
In-Reply-To: <CAHsH0E9x-wd4pOWeM5VhGxyZXMf+ZN88obet0_wrJ_N57wenKQ@mail.gmail.com>

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

[Re: [oe] [meta-networking][PATCH:V2] vlan: Add vlan recipe] On 13.06.20 (Thu 23:47) lei yang wrote:

> Hi Joe
> 
> On Wed, Jun 19, 2013 at 10:35 PM, Joe MacDonald <Joe.MacDonald@windriver.com>
> wrote:
> 
>     Hey Lei,
> 
>     [[oe] [meta-networking][PATCH:V2] vlan: Add vlan recipe] On 13.06.18 (Tue
>     10:23) lei.yang@windriver.com wrote:
> 
>     > From: Lei Yang <lei.yang@windriver.com>
>     >
>     > A 802.1q vlan support program,which can be used by virt-test
>     >
>     > Signed-off-by: Lei Yang <lei.yang@windriver.com>
>     > ---
>     >  meta-networking/recipes-support/vlan/files/ip      |   21 +++++++
>     >  .../recipes-support/vlan/files/vlan-post-down      |   28 +++++++++
>     >  .../recipes-support/vlan/files/vlan-pre-up         |   61
>     ++++++++++++++++++++
>     >  meta-networking/recipes-support/vlan/vlan_1.9.bb   |   36 ++++++++++++
>     >  4 files changed, 146 insertions(+), 0 deletions(-)
>     >  create mode 100755 meta-networking/recipes-support/vlan/files/ip
>     >  create mode 100755 meta-networking/recipes-support/vlan/files/
>     vlan-post-down
>     >  create mode 100755 meta-networking/recipes-support/vlan/files/
>     vlan-pre-up
>     >  create mode 100755 meta-networking/recipes-support/vlan/vlan_1.9.bb
>     >
>     > diff --git a/meta-networking/recipes-support/vlan/files/ip b/
>     meta-networking/recipes-support/vlan/files/ip
>     > new file mode 100755
>     > index 0000000..d7de05c
>     > --- /dev/null
>     > +++ b/meta-networking/recipes-support/vlan/files/ip
>     > @@ -0,0 +1,21 @@
>     > +#!/bin/sh
>     > +# This should probably go into ifupdown
>     > +# But usually only those with lots of interfaces (vlans) need these
>     > +if [ -d "/proc/sys/net/ipv4/conf/$IFACE" ]
>     > +then
>     > +     if [ -n "$IF_IP_PROXY_ARP" ]; then
>     > +             if [ "$IF_IP_PROXY_ARP" -eq "1" ]; then
>     > +                     echo 1 > "/proc/sys/net/ipv4/conf/$IFACE/proxy_arp"
>     > +             else
>     > +                     echo 0 > "/proc/sys/net/ipv4/conf/$IFACE/proxy_arp"
>     > +             fi
>     > +     fi
>     > +     if [ -n "$IF_IP_RP_FILTER" ]; then
>     > +             if [ "$IF_IP_RP_FILTER" -eq "0" ]; then
>     > +                     echo 0 > "/proc/sys/net/ipv4/conf/$IFACE/rp_filter"
>     > +             else
>     > +                     echo 1 > "/proc/sys/net/ipv4/conf/$IFACE/rp_filter"
>     > +             fi
>     > +     fi
>     > +fi
>     > +
> 
>     Sorry, I should've caught this in the v1, but what's up with this file?
>     Did you get it out of the vlan package?  It's decently isolated with the
>     do_install in the recipe, but it's an exact namespace configuration for
>     a binary from iproute2 and it doesn't appear to do even close to the
>     same thing.  Can you expand on where it's from and whether it's
>     practical to give it a less opaque name?  I'm mainly asking because I
>     can't convince myself I know which 'ip' you are relying upon (or
>     getting, actually, I think I know which one you're getting...) in
>     vlan-pre-up.
> 
> 
> 
> on my ubuntu desktop
> 
> lyang001@lyang001-OptiPlex-9010:~/WORK/leaning-work/git$ dpkg -S /etc/network/
> if-up.d/ip
> vlan: /etc/network/if-up.d/ip
> 
> lyang001@lyang001-OptiPlex-9010:~/WORK/leaning-work/git$ dpkg -S `which ip`
> iproute: /sbin/ip
> 
> actually I don't check the difference

Well, for one:

$ file $(which ip)
/bin/ip: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0xac673e1884dfbfab74e9f07e23af91c284327916, stripped

:-)  (Obviously my system is a bit different from yours, my /sbin/ip ->
/bin/ip ...)

Anyway, so I'm still curious, though, if the script that gets installed
as part of the vlan package is actually part of the vlan package, why
have you broken it out as a separate file?  Or is it not part of the
package, but a separate script on the web page?  Sorry if this is
obvious, I really just don't know.

The follow-up question still stands too.  What's this thing doing there
and does not installing it break something?  It probably seems like a
trivial point, but I'm genuinely curious about this.  It seems really
odd and it seems like maybe it's not doing what it was intended to do.

-J.

> 
>  
> 
>     > diff --git a/meta-networking/recipes-support/vlan/files/vlan-post-down b/
>     meta-networking/recipes-support/vlan/files/vlan-post-down
>     > new file mode 100755
>     > index 0000000..89b16fb
>     > --- /dev/null
>     > +++ b/meta-networking/recipes-support/vlan/files/vlan-post-down
>     > @@ -0,0 +1,28 @@
>     > +#!/bin/sh
>     > +
>     > +# If IFACE is an automagic vlan interface (without the vlan-raw-device
>     > +# parameter) then let's try to discover the magic here..  Another way
>     would be
>     > +# to just probe for the right device name in /proc/net/vlan
>     > +
>     > +case "$IFACE" in
>     > +  # Ignore any alias (#272891)
>     > +  *:*)
>     > +    exit 0
>     > +  ;;
>     > +  eth*.0*|bond*.0*|wlan*.0*)
>     > +    IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/
>     \(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/"`
>     > +  ;;
>     > +  eth*.*|bond*.*|wlan*.*)
>     > +    IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/
>     \(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/"`
>     > +  ;;
>     > +  # Test for vlan raw device (#196890, #292648)
>     > +  *)
>     > +    [ -z "$IF_VLAN_RAW_DEVICE" ] && exit 0
>     > +  ;;
>     > +esac
>     > +
>     > +if [ ! -x /sbin/vconfig ]; then
>     > +    exit 0
>     > +fi
>     > +
>     > +vconfig rem $IFACE
>     > diff --git a/meta-networking/recipes-support/vlan/files/vlan-pre-up b/
>     meta-networking/recipes-support/vlan/files/vlan-pre-up
>     > new file mode 100755
>     > index 0000000..b977be8
>     > --- /dev/null
>     > +++ b/meta-networking/recipes-support/vlan/files/vlan-pre-up
>     > @@ -0,0 +1,61 @@
>     > +#!/bin/sh
>     > +
>     > +# Most of this stuff is to enable vlans
>     > +
>     > +case "$IFACE" in
>     > +  # Ignore any alias (#272891) which uses <interface>:<alabel>
>     > +  *:*)
>     > +    exit 0
>     > +  ;;
>     > +  vlan0*)
>     > +    vconfig set_name_type VLAN_PLUS_VID
>     > +    VLANID=`echo $IFACE|sed "s/vlan0*//"`
>     > +  ;;
>     > +  vlan*)
>     > +    vconfig set_name_type VLAN_PLUS_VID_NO_PAD
>     > +    VLANID=`echo $IFACE|sed "s/vlan0*//"`
>     > +  ;;
>     > +  eth*.0*|bond*.0*|wlan*.0*)
>     > +    vconfig set_name_type DEV_PLUS_VID
>     > +    VLANID=`echo $IFACE|sed "s/eth[0-9][0-9]*\.0*//g;s/bond[0-9][0-9]*
>     \.0*//;s/wlan[0-9][0-9]*\.0*//"`
>     > +    IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/
>     \(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/"`
>     > +  ;;
>     > +  eth*.*|bond*.*|wlan*.*)
>     > +    vconfig set_name_type DEV_PLUS_VID_NO_PAD
>     > +    VLANID=`echo $IFACE|sed "s/eth[0-9][0-9]*\.0*//g;s/bond[0-9][0-9]*
>     \.0*//g;s/wlan[0-9][0-9]*\.0*//g"`
>     > +    IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/
>     \(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/"`
>     > +  ;;
>     > +  *.0*)
>     > +    # Silently ignore interfaces which we do not (know how to) support
>     > +    [ -z "$IF_VLAN_RAW_DEVICE" ] && exit 0
>     > +    vconfig set_name_type DEV_PLUS_VID
>     > +    VLANID=`echo $IFACE|sed "s/[^.]*\.0*//g"`
>     > +  ;;
>     > +  *.*)
>     > +    # Silently ignore interfaces which we do not (know how to) support
>     > +    [ -z "$IF_VLAN_RAW_DEVICE" ] && exit 0
>     > +    vconfig set_name_type DEV_PLUS_VID_NO_PAD
>     > +    VLANID=`echo $IFACE|sed "s/[^.]*\.0*//g"`
>     > +  ;;
>     > +
>     > +  *)
>     > +    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
>     > +    ip link set up dev $IF_VLAN_RAW_DEVICE
>     > +    vconfig add $IF_VLAN_RAW_DEVICE $VLANID
>     > +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
>     > diff --git a/meta-networking/recipes-support/vlan/vlan_1.9.bb b/
>     meta-networking/recipes-support/vlan/vlan_1.9.bb
>     > new file mode 100755
>     > index 0000000..b79da6e
>     > --- /dev/null
>     > +++ b/meta-networking/recipes-support/vlan/vlan_1.9.bb
>     > @@ -0,0 +1,36 @@
>     > +SUMMARY = "802.1q vlan support program"
>     > +HOMEPAGE = "http://www.candelatech.com/~greear/vlan.html"
>     > +LICENSE = "GPLv2"
>     > +SECTION = "console/network"
>     > +
>     > +SRC_URI[md5sum] = "5f0c6060b33956fb16e11a15467dd394"
>     > +SRC_URI[sha256sum] =
>     "3b8f0a1bf0d3642764e5f646e1f3bbc8b1eeec474a77392d9aeb4868842b4cca"
>     > +LIC_FILES_CHKSUM = "file://macvlan_config.c;beginline=4;endline=62;md5=
>     dc0660d77e4313e8ccdf256fbe436a63"
>     > +
>     > +S = "${WORKDIR}/${PN}"
>     > +
>     > +SRC_URI = " \
>     > +     http://www.candelatech.com/~greear/vlan/vlan.${PV}.tar.gz \
>     > +     file://ip \
>     > +     file://vlan-pre-up \
>     > +     file://vlan-post-down \
>     > +     "
> 
>     I think Paul had meant to put SRC_URI[...] around here in his request to
>     v1.
> 
> 
> 
> 
> Aha I mis-uderstand it
> 
> Lei
>  
> 
>     -J.
> 
>     > +
>     > +CCFLAGS = "-g -D_GNU_SOURCE -Wall -I${STAGING_INCDIR}"
>     > +LDLIBS = ""
>     > +
>     > +do_compile() {
>     > +     ${CC} ${CCFLAGS} -c vconfig.c
>     > +     ${CC} ${CCFLAGS} ${LDFLAGS} -o vconfig vconfig.o ${LDLIBS}
>     > +}
>     > +
>     > +do_install() {
>     > +     install -d "${D}${sbindir}"
>     > +     install -m 755 "${S}/vconfig" "${D}${sbindir}/vconfig"
>     > +     install -d ${D}/${sysconfdir}/network/if-pre-up.d
>     > +     install -d ${D}/${sysconfdir}/network/if-post-down.d
>     > +     install -d ${D}/${sysconfdir}/network/if-up.d
>     > +     install -m 0755 ${WORKDIR}/ip ${D}/${sysconfdir}/network/if-up.d/
>     > +     install -m 0755 ${WORKDIR}/vlan-pre-up ${D}/${sysconfdir}/network/
>     if-pre-up.d/vlan
>     > +     install -m 0755 ${WORKDIR}/vlan-post-down ${D}/${sysconfdir}/
>     network/if-post-down.d/vlan
>     > +}
>     --
>     -Joe MacDonald.
>     :wq
>    
>     _______________________________________________
>     Openembedded-devel mailing list
>     Openembedded-devel@lists.openembedded.org
>     http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> 
> 
> 

-- 
-Joe MacDonald.
:wq

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

  reply	other threads:[~2013-06-20 15:58 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-18  2:23 [meta-networking][PATCH:V2] vlan: Add vlan recipe lei.yang
2013-06-19 14:35 ` Joe MacDonald
2013-06-20 15:47   ` lei yang
2013-06-20 15:58     ` Joe MacDonald [this message]
2013-06-27  8:30       ` lei yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130620155842.GB5093@windriver.com \
    --to=joe.macdonald@windriver.com \
    --cc=openembedded-devel@lists.openembedded.org \
    --cc=paul.eggleton@linux.intel.com \
    --cc=yanglei.fage@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.