[Bridge] two fields are missing in brctl output when using /sys

Jeremy Jackson jerj at coplanar.net
Thu Apr 5 13:10:59 PDT 2007


I've noticed for a while that 

# brctl showstp

output is showing 0 for port_no and  port_id

It seems that somewhere in 2.6 sysfs land the following items got
printed in hexadecimal, and brctl code was parsing for decimal only

doug:/sys/class/net/eth0/brport# cat port_id
0x8001
doug:/sys/class/net/eth0/brport# cat port_no
0x1

The following patch to bridge-utils (git and 1.2 release) lets it do the
right thing:

diff -ur bridge-utils-1.2/libbridge/libbridge_devif.c
bridge-utils/libbridge/lib
bridge_devif.c
--- bridge-utils-1.2/libbridge/libbridge_devif.c        2007-04-05
16:02:58.2870
22220 -0400
+++ bridge-utils/libbridge/libbridge_devif.c    2007-04-05
14:51:19.362040447 -0
400
@@ -56,7 +56,7 @@
        if (!f) 
                fprintf(stderr, "%s: %s\n", dev, strerror(errno));
        else {
-               fscanf(f, "%i", &value);
+               fscanf(f, "%d", &value);
                fclose(f);
        }
        return value;


Please CC replies as I'm not subscribed.

-- 
Jeremy Jackson
jerj at coplanar.net Email/Jabber/Google Talk/MSN
(519)489-4903
Coplanar Networks
http://www.coplanar.net




More information about the Bridge mailing list