[removed lkml] On Thu, 12 Jan 2006 18:24:02 +0100, Michael Buesch wrote: > [...] > --- linux-2.6.15-ds060105.orig/include/net/ieee80211.h 2006-01-08 > 02:10:46.000000000 +0100 > +++ linux-2.6.15-ds060105/include/net/ieee80211.h 2006-01-09 > 16:22:59.000000000 +0100 > [...] > +struct ieee80211_device { > + /* Device name string. Usually "wlanX". */ > + __u8 name[IFNAMSIZ + 1]; > + /* Hardware data. */ > + struct ieee80211_hw *hw; > + /* Wireless Configuration data. */ > + struct wconf_device *wconf; > + struct net_device *dev;/*TODO: We want to get rid of the master > net_device > + and use ieee80211_device instead. */ > +};
This ieee80211_device structure is redundant, wconf_device etc. should be in ieee80211_hw. > --- linux-2.6.15-ds060105.orig/include/net/wconf.h 1970-01-01 > 01:00:00.000000000 +0100 > +++ linux-2.6.15-ds060105/include/net/wconf.h 2006-01-11 21:53:55.000000000 > +0100 > [...] > +enum { > + WCONF_CMD_NAME, > + WCONF_CMD_NICK, What is WCONF_CMD_NICK for? > + WCONF_CMD_MODE, > + WCONF_CMD_CHANNEL, > + WCONF_CMD_SENSITIVITY, > + //TODO > + WCONF_NR_STANDARD, /* Number of standard commands. */ > + WCONF_CMD_FIRSTPRIV = 0x0001FFFF, > + WCONF_CMD_LASTPRIV = 0xFFFFFFFF, > +}; Do we really need private commands? > +enum { > + WCONF_MODE_AUTO, /* Let the driver decides */ AUTO mode has no sense. > + WCONF_MODE_ADHOC, /* Single cell network */ > + WCONF_MODE_INFRA, /* Multi cell network, roaming, ... */ > + WCONF_MODE_MASTER, /* Synchronisation master or Access Point */ > + WCONF_MODE_REPEAT, /* Wireless Repeater (forwarder) */ > + WCONF_MODE_SECOND, /* Secondary master/repeater (backup) */ > + WCONF_MODE_MONITOR, /* Passive monitor (listen only) */ > +}; When we are creating a new API, couldn't we use names conforming to the standard? I. e. AP instead of MASTER, WDS instead of REPEATER, etc.? > +struct wconf_cmd_channel { > + /** Frequency in KHz, or channel number if < 1000 */ > + __u32 freq; > + __u8 flags; > +#define WCONF_CHAN_AUTO (1 << 0) > +#define WCONF_CHAN_FIXED (1 << 1) > +}; Do we really want frequency to be set from userspace? > +/*** KERNEL API (Driver and internal) ***/ > + > +/*TODO: Handler functions are currently not implemented. They must be hooked > up by the > + * ieee80211 subsystem (and must be implemented as part of the > ieee80211 subsys). > + * Where applicable, the drivers must re-hook the handler functions > (for hardware > + * MAC for example). > + */ I'm not sure here. When drivers are allowed to rehook handlers, there is a possibility that handlers in different drivers won't behave in the same way regarding to userspace. Maybe all calls should go through the ieee80211 and there should be callbacks in ieee80211_hw designed for cards with advanced firmware? Also, I wasn't able to find out (perhaps I just didn't look carefully enough) how you addressed the problem of commands that affect all of interfaces vs. commands that affect just one interface. Thanks, -- Jiri Benc SUSE Labs - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html