Re: [Bridge] [PATCH net-next 1/2] net: bridge: add support for user-controlled bool options

2018-11-22 Thread Nikolay Aleksandrov
On 22/11/2018 18:13, Nikolay Aleksandrov wrote: >>> +int br_boolopt_multi_toggle(struct net_bridge *br, >>> + struct br_boolopt_multi *bm) >>> +{ >>> + unsigned long bitmap = bm->optmask; >>> + int err = 0; >>> + int opt_id; >>> + >>> + for_each_set_bit(opt_id, ,

Re: [Bridge] [PATCH net-next 1/2] net: bridge: add support for user-controlled bool options

2018-11-22 Thread Stephen Hemminger
On Thu, 22 Nov 2018 18:01:29 +0200 Nikolay Aleksandrov wrote: > On 22/11/2018 17:35, Andrew Lunn wrote: > > On Thu, Nov 22, 2018 at 06:29:24AM +0200, Nikolay Aleksandrov wrote: > >> We have been adding many new bridge options, a big number of which are > >> boolean but still take up netlink

Re: [Bridge] [PATCH net-next 1/2] net: bridge: add support for user-controlled bool options

2018-11-22 Thread Nikolay Aleksandrov
On 22/11/2018 17:49, Andrew Lunn wrote: >> +/* br_boolopt_toggle - change user-controlled boolean option >> + * >> + * @br: bridge device >> + * @opt: id of the option to change >> + * @on: new option value >> + * >> + * Changes the value of the respective boolean option to @on taking care of >> +

Re: [Bridge] [PATCH net-next 1/2] net: bridge: add support for user-controlled bool options

2018-11-22 Thread Nikolay Aleksandrov
On 22/11/2018 17:52, Andrew Lunn wrote: >> +void br_boolopt_multi_get(const struct net_bridge *br, >> + struct br_boolopt_multi *bm) >> +{ >> +u32 optval = 0; >> +int opt_id; >> + >> +for (opt_id = 0; opt_id < BR_BOOLOPT_MAX; opt_id++) >> +optval |=

Re: [Bridge] [PATCH net-next 2/2] net: bridge: add no_linklocal_learn bool option

2018-11-22 Thread Nikolay Aleksandrov
On 22/11/2018 18:04, Andrew Lunn wrote: >> int br_boolopt_get(const struct net_bridge *br, enum br_boolopt_id opt) >> { >> -int optval = 0; >> - >> switch (opt) { >> +case BR_BOOLOPT_NO_LL_LEARN: >> +return br_opt_get(br, BROPT_NO_LL_LEARN); >> default: >>

Re: [Bridge] [PATCH net-next 2/2] net: bridge: add no_linklocal_learn bool option

2018-11-22 Thread Andrew Lunn
> int br_boolopt_get(const struct net_bridge *br, enum br_boolopt_id opt) > { > - int optval = 0; > - > switch (opt) { > + case BR_BOOLOPT_NO_LL_LEARN: > + return br_opt_get(br, BROPT_NO_LL_LEARN); > default: > break; > } > > - return

Re: [Bridge] [PATCH net-next 1/2] net: bridge: add support for user-controlled bool options

2018-11-22 Thread Nikolay Aleksandrov
On 22/11/2018 17:35, Andrew Lunn wrote: > On Thu, Nov 22, 2018 at 06:29:24AM +0200, Nikolay Aleksandrov wrote: >> We have been adding many new bridge options, a big number of which are >> boolean but still take up netlink attribute ids and waste space in the skb. >> Recently we discussed learning

Re: [Bridge] [PATCH net-next 1/2] net: bridge: add support for user-controlled bool options

2018-11-22 Thread Andrew Lunn
> +void br_boolopt_multi_get(const struct net_bridge *br, > + struct br_boolopt_multi *bm) > +{ > + u32 optval = 0; > + int opt_id; > + > + for (opt_id = 0; opt_id < BR_BOOLOPT_MAX; opt_id++) > + optval |= (br_boolopt_get(br, opt_id) << opt_id); > + >

Re: [Bridge] [PATCH net-next 1/2] net: bridge: add support for user-controlled bool options

2018-11-22 Thread Andrew Lunn
> +/* br_boolopt_toggle - change user-controlled boolean option > + * > + * @br: bridge device > + * @opt: id of the option to change > + * @on: new option value > + * > + * Changes the value of the respective boolean option to @on taking care of > + * any internal option value mapping and

Re: [Bridge] [PATCH net-next 1/2] net: bridge: add support for user-controlled bool options

2018-11-22 Thread Andrew Lunn
On Thu, Nov 22, 2018 at 06:29:24AM +0200, Nikolay Aleksandrov wrote: > We have been adding many new bridge options, a big number of which are > boolean but still take up netlink attribute ids and waste space in the skb. > Recently we discussed learning from link-local packets[1] and decided > yet