On Thu, 2006-08-24 at 19:27 +0200, Thomas Graf wrote:
> I'd use normal u32 attributes here as well and simply
> enumerate their type 1..n.
>
> int idx = 1
> list_for_each_entry(drv, &nl80211_drv_list, list)
> NLA_PUT_U32(msg, idx++, drv->wiphy);
>
> The additional header seems waste but this way you stay flexible
> and can extend the protocol later on. Attribute lengths are
> checked with an open end in mind, i.e. you can put more stuff
> behind that u32 in the future and your old applications will
> still work.
>
> You also might want to consider returning ifindex and
> the associated name.
That'd be a list of ifindexes again...
> > +static int nl80211_get_intfs(struct sk_buff *skb, struct genl_info *info)
> Try not to reuse the same attribute type for different purposes,
> it will force you to duplicate the validation policy for every
> single command and things become very error prone.
I completely reworked that now so it will:
* create a nested NL80211_ATTR_INTERFACE_LIST with nested {
* 1..N attributes, with nested {
* ATTR_IFINDEX and
* ATTR_IFNAME
}
}
how does that sound? Maybe I should do the same for the WIPHY list? i.e.
create a new type ATTR_WIPHY_LIST and within that nest numbered
attributes (array indexes) and in there put ATTR_WIPHY? So possibly I
could also put ATTR_INTERFACE_LIST in there as well later?
johannes
-
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