Search Linux Wireless

Re: [PATCH v5] mac80211: implement multi-vif in-place reservations

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

 



On Wed, 2014-05-07 at 13:54 +0200, Johannes Berg wrote:
> On Wed, 2014-05-07 at 13:19 +0200, Michal Kazior wrote:
> > On 7 May 2014 13:09, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote:
> > > On Wed, 2014-05-07 at 12:38 +0200, Michal Kazior wrote:
> > >
> > >> I was actually thinking of just providing the bare minimum to fulfill
> > >> requirements for the CSA case: int foo(*hw, **vifs, n_vifs, *oldctx,
> > >> *newctx, flags).
> > >>
> > >> Having an array of transactions passed through a single call seems
> > >> more robust and cleaner. Naiive drivers might just iterate over each
> > >> entry while more complex drivers might examine the whole request and
> > >> detect chanctx swapping.
> > >
> > > Not sure what you mean by "detect chanctx swapping" - the flags would
> > > indicate that anyway, no? In any case, I like this better than a more
> > > general transaction API I think, it's easier for the driver
> > > implementation and clearer as to what needs to be done/supported.
> > 
> > You could submit a transaction sequence:
> >  - new chanctx2
> >  - switch vif1 chanctx1->chanctx2
> >  - switch vif2 chanctx1->chanctx2
> >  - remove chanctx1
> 
> Well, you don't really have any other choice with the API you proposed,
> and IMHO that's a good thing. The only possibilities that can be
> expressed with that would seem to be:
> 
>  1) for_each_vif: switch vif from oldctx to newctx
>  2) add newctx
>     for_each_vif: switch vif from oldctx to newctx
>     del oldctx
> 
> With the option between 1/2 being selected by the flags. I don't see
> what the driver has to infer about it being a channel switch - it
> necessarily is one, no?

I was thinking about the case where you you need to involve 3 contexts.
Let's say you have 2 vifs in the same context and after the switch you
need to split them into 2 new ones (for instance, if there is some
incompatibility in the new chandefs).

With the generic transactions you could do:
 - new chanctx2
 - new chanctx3
 - switch vif1 chanctx1->chanctx2
 - switch vif2 chanctx1->chanctx3
 - del chanctx1

--
Luca.

--
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