Search Linux Wireless

Re: [RFC 1/2] mac80211: add explicit monitor interface if needed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 28, 2012 at 11:13 AM, Johannes Berg
<johannes@xxxxxxxxxxxxxxxx> wrote:
> From: Johannes Berg <johannes.berg@xxxxxxxxx>
>
> The queue mapping redesign that I'm planning to do
> will break pure injection unless we handle monitor
> interfaces explicitly. One possible option would
> be to have the driver tell mac80211 about monitor
> mode queues etc., but that would duplicate the API
> since we already need to have queue assignments
> handled per virtual interface.
>
> So in order to solve this, have a virtual monitor
> interface that is added whenever all active vifs
> are monitors. We could also use the state of one
> of the monitor interfaces, but managing that would
> be complicated, so allocate separate state.
>
> Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
> ---
[...]

> +static void ieee80211_del_virtual_monitor(struct ieee80211_local *local)
> +{
> +       struct ieee80211_sub_if_data *sdata;
> +
> +       if (!(local->hw.flags & IEEE80211_HW_WANT_MONITOR_VIF))
> +               return;
> +
> +       sdata = rtnl_dereference(local->monitor_sdata);
> +
> +       if (WARN_ON(!sdata))
> +               return;
> +
...

> @@ -280,6 +339,8 @@ static int ieee80211_do_open(struct net_
>                break;
>        default:
>                if (coming_up) {
> +                       ieee80211_del_virtual_monitor(local);
> +

i think this will always trigger the warning?

> @@ -98,8 +98,7 @@ static inline int drv_add_interface(stru
>
>        might_sleep();
>
> -       if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_AP_VLAN ||
> -                   sdata->vif.type == NL80211_IFTYPE_MONITOR))
> +       if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_AP_VLAN))
>                return -EINVAL;
>
maybe check for IEEE80211_HW_WANT_MONITOR_VIF instead?

Eliad.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux