There's no point in fixing the data rate of a wireless interface
except for development/debugging purposes.

So stop advertising these modes in ifconfig.
Shortens the output of ifconfig media considerably.

$ ifconfig iwn0 media
iwn0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
        lladdr 58:94:6b:06:70:04
        priority: 4
        groups: wlan
        media: IEEE802.11 autoselect
        status: no network
        ieee80211: nwid ""
        supported media:
                media autoselect
                media autoselect mediaopt monitor
                media autoselect mode 11a
                media autoselect mode 11a mediaopt monitor
                media autoselect mode 11b
                media autoselect mode 11b mediaopt monitor
                media autoselect mode 11g
                media autoselect mode 11g mediaopt monitor
$ 

ok?

Index: ifconfig.c
===================================================================
RCS file: /cvs/src/sbin/ifconfig/ifconfig.c,v
retrieving revision 1.300
diff -u -p -r1.300 ifconfig.c
--- ifconfig.c  11 Sep 2015 13:02:59 -0000      1.300
+++ ifconfig.c  11 Sep 2015 15:27:55 -0000
@@ -3048,6 +3048,17 @@ status(int link, struct sockaddr_dl *sdl
                for (type = IFM_NMIN; type <= IFM_NMAX; type += IFM_NMIN) {
                        for (i = 0, printed_type = 0; i < ifmr.ifm_count; i++) {
                                if (IFM_TYPE(media_list[i]) == type) {
+
+                                       /* 
+                                        * Don't advertise media with fixed
+                                        * data rates for wireless interfaces.
+                                        * Normal people don't need these.
+                                        */
+                                       if (type == IFM_IEEE80211 &&
+                                           (media_list[i] & IFM_TMASK) !=
+                                           IFM_AUTO)
+                                               continue;
+
                                        if (printed_type == 0) {
                                            printf("\tsupported media:\n");
                                            printed_type = 1;

Reply via email to