Re: [systemd-devel] [PATCH] vlan: set sysfs device_type to 'vlan'
On Sun, Nov 4, 2012 at 11:53 PM, David Miller wrote: > From: Doug Goldstein > Date: Sun, 4 Nov 2012 23:45:56 -0600 > >> As Ben Greear pointed out this would allow shell scripts and other >> scripting languages to better detect vlans. Kay pointed out that this >> would allow better uevent filters in the future as well. So there are >> some merits to this patch. If you'd prefer I can resubmit with a >> better commit message entailing the reasons behind it. > > For the thousandth time: > > All of those scripts and other users of this new facility will > need to have backup code to detect vlan devices when this > sysfs thing is not present. > > They are already to determine this information already, and > they alreayd have to be ugly to handle EVERY EXISTING KERNEL > ON THE PLANET. > > So the effective value is zero. By this argument we shouldn't ever improve any API or add new syscalls since we'll have to have fallback code to handle the old interfaces when the new ones aren't available. Since everything already has the existing implementations to handle every existing kernel on the planet then this patch doesn't harm anything and should I want to write a shell script that only works on Linux 3.8 (assuming this patch is in there) and is only forward looking then I can use the more complete sysfs. So the effective penalty is zero and you get a more complete sysfs, which is where you're value is. -- Doug Goldstein ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] vlan: set sysfs device_type to 'vlan'
On Tue, Oct 23, 2012 at 1:36 AM, David Miller wrote: > From: Doug Goldstein > Date: Mon, 22 Oct 2012 00:53:57 -0500 > >> Sets the sysfs device_type to 'vlan' for udev. This makes it easier for >> applications that query network information via udev to identify vlans >> instead of using strrchr(). >> >> Signed-off-by: Doug Goldstein > > You're extremely misguided. This change, in fact, makes it ten times > harder for such applications to query such devices. > > Because now the application has to decide whether it wants to support > EVERY EXISTING SYSTEM OUT THERE or not. Hundreds of millions of Linux > systems do not provide this attribute. > > Applications have to handle the case of not having the 'vlan' device > type available attribute essentially forever. > > So providing it in new kernels provides zero value whatsoever. > > I'm not applying this patch, sorry. Dave, As others on this thread have discussed there are other merits to the patch as well. Yes you are correct that netlink is the preferred method to gather information about network devices but the point was really to make the sysfs layout more correct a matter of completeness. As Ben Greear pointed out this would allow shell scripts and other scripting languages to better detect vlans. Kay pointed out that this would allow better uevent filters in the future as well. So there are some merits to this patch. If you'd prefer I can resubmit with a better commit message entailing the reasons behind it. Thanks. -- Doug Goldstein ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] [PATCH] vlan: set sysfs device_type to 'vlan'
Sets the sysfs device_type to 'vlan' for udev. This makes it easier for applications that query network information via udev to identify vlans instead of using strrchr(). Signed-off-by: Doug Goldstein --- Pre-patch output: swanson ~ # udevadm info -q all -p /sys/devices/virtual/net/br0.4 P: /devices/virtual/net/br0.4 E: UDEV_LOG=3 E: DEVPATH=/devices/virtual/net/br0.4 E: INTERFACE=br0.4 E: IFINDEX=6 E: SUBSYSTEM=net Post-patch output: swanson ~ # udevadm info -q all -p /sys/devices/virtual/net/br0.4 P: /devices/virtual/net/br0.4 E: UDEV_LOG=3 E: DEVPATH=/devices/virtual/net/br0.4 E: DEVTYPE=vlan E: INTERFACE=br0.4 E: IFINDEX=12 E: SUBSYSTEM=net The intent was to match other virtual network types such as bridges. swanson ~ # udevadm info -q all -p /sys/devices/virtual/net/br0 P: /devices/virtual/net/br0 E: UDEV_LOG=3 E: DEVPATH=/devices/virtual/net/br0 E: DEVTYPE=bridge E: INTERFACE=br0 E: IFINDEX=5 E: SUBSYSTEM=net --- net/8021q/vlan_dev.c |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index 4024424..78a8744 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c @@ -531,6 +531,10 @@ static const struct header_ops vlan_header_ops = { .parse = eth_header_parse, }; +static struct device_type vlan_type = { + .name = "vlan", +}; + static const struct net_device_ops vlan_netdev_ops; static int vlan_dev_init(struct net_device *dev) @@ -579,6 +583,8 @@ static int vlan_dev_init(struct net_device *dev) dev->netdev_ops = &vlan_netdev_ops; + SET_NETDEV_DEVTYPE(dev, &vlan_type); + if (is_vlan_dev(real_dev)) subclass = 1; -- 1.7.8.6 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] libudev: howto enumerate subdirectories of a device
I've got code that provides me a udev_device that is a bridge device (e.g. /sys/devices/virtual/net/br0/). udev_device_get_sysattr_list_entry() returns me all of the items in that top level directory but nothing in any of the subdirectories. I can however use udev_device_get_sysattr_value(udev_dev, "bridge/stp_state") for example to get back data. So I've got two questions: 1. I really want a way to enumerate all the possible fields inside of /sys/devices/virtual/net/br0/bridge/. 2. I'm trying to figure out how to get a list of devices that are attached to the bridge which appear under /sys/devices/virtual/net/br0/brif/. Thanks for any suggestions or help. -- Doug Goldstein ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel