* [RFC][GENETLINK] move command capabilities to flags @ 2006-12-02 11:56 jamal 2006-12-04 9:20 ` Thomas Graf 0 siblings, 1 reply; 9+ messages in thread From: jamal @ 2006-12-02 11:56 UTC (permalink / raw) To: Thomas Graf; +Cc: davem, netdev [-- Attachment #1: Type: text/plain, Size: 110 bytes --] Dave, If there is no objections on this approach, please apply this patch. Against net-2.6.20 cheers, jamal [-- Attachment #2: genl_capab_flags --] [-- Type: text/plain, Size: 1997 bytes --] This patch moves command capabilities to command flags. Other than being cleaner, saves several bytes. Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca> --- commit b6ac8f41bdd2edd9d215e376efa47261e9b118a1 tree fec2a968aad15264b30e2d550cb0c6f7939d4c93 parent 4bacaeb2cea3c6684f9b3acc54f71958bb2c25c5 author Jamal Hadi Salim <hadi@cyberus.ca> Sat, 02 Dec 2006 06:54:55 -0500 committer Jamal Hadi Salim <hadi@cyberus.ca> Sat, 02 Dec 2006 06:54:55 -0500 include/linux/genetlink.h | 3 +++ net/netlink/genetlink.c | 16 +++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h index 9049dc6..3bd75c2 100644 --- a/include/linux/genetlink.h +++ b/include/linux/genetlink.h @@ -17,6 +17,9 @@ struct genlmsghdr { #define GENL_HDRLEN NLMSG_ALIGN(sizeof(struct genlmsghdr)) #define GENL_ADMIN_PERM 0x01 +#define GENL_CMD_CAP_DO 0x02 +#define GENL_CMD_CAP_DUMP 0x04 +#define GENL_CMD_CAP_HASPOL 0x08 /* * List of reserved static generic netlink identifiers: diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index cc874f0..adfc203 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c @@ -143,6 +143,13 @@ int genl_register_ops(struct genl_family *family, struct genl_ops *ops) goto errout; } + if (ops->dumpit) + ops->flags |= GENL_CMD_CAP_DO; + if (ops->doit) + ops->flags |= GENL_CMD_CAP_DUMP; + if (ops->policy) + ops->flags |= GENL_CMD_CAP_HASPOL; + genl_lock(); list_add_tail(&ops->ops_list, &family->ops_list); genl_unlock(); @@ -425,15 +432,6 @@ static int ctrl_fill_info(struct genl_family *family, u32 pid, u32 seq, NLA_PUT_U32(skb, CTRL_ATTR_OP_ID, ops->cmd); NLA_PUT_U32(skb, CTRL_ATTR_OP_FLAGS, ops->flags); - if (ops->policy) - NLA_PUT_FLAG(skb, CTRL_ATTR_OP_POLICY); - - if (ops->doit) - NLA_PUT_FLAG(skb, CTRL_ATTR_OP_DOIT); - - if (ops->dumpit) - NLA_PUT_FLAG(skb, CTRL_ATTR_OP_DUMPIT); - nla_nest_end(skb, nest); } ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [RFC][GENETLINK] move command capabilities to flags 2006-12-02 11:56 [RFC][GENETLINK] move command capabilities to flags jamal @ 2006-12-04 9:20 ` Thomas Graf 2006-12-04 13:01 ` jamal 0 siblings, 1 reply; 9+ messages in thread From: Thomas Graf @ 2006-12-04 9:20 UTC (permalink / raw) To: jamal; +Cc: davem, netdev * jamal <hadi@cyberus.ca> 2006-12-02 06:56 > > Dave, > If there is no objections on this approach, please apply this patch. > Against net-2.6.20 > > cheers, > jamal > This patch moves command capabilities to command flags. Other than > being cleaner, saves several bytes. Is it worth to save these 12 bytes by breaking compatibility? If you really want to do it, remove the obsoleted attribute types, I don't like dead bodies laying around :-) ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC][GENETLINK] move command capabilities to flags 2006-12-04 9:20 ` Thomas Graf @ 2006-12-04 13:01 ` jamal 2006-12-04 16:31 ` Thomas Graf 0 siblings, 1 reply; 9+ messages in thread From: jamal @ 2006-12-04 13:01 UTC (permalink / raw) To: Thomas Graf; +Cc: davem, netdev On Mon, 2006-04-12 at 10:20 +0100, Thomas Graf wrote: > * jamal <hadi@cyberus.ca> 2006-12-02 06:56 > > > > Dave, > > If there is no objections on this approach, please apply this patch. > > Against net-2.6.20 > > > > cheers, > > jamal > > > This patch moves command capabilities to command flags. Other than > > being cleaner, saves several bytes. > > Is it worth to save these 12 bytes by breaking compatibility? The savings bytes is one aspect; the other is the cleanliness. transfering a boolean in that many bits is a little of overkill. I think it is better to fix it now than later. I know you mentioned libnl uses it. But that is something you can change on your side. I dont know of any other app that uses it. > If you > really want to do it, remove the obsoleted attribute types, I don't > like dead bodies laying around :-) I could resend the patch getting rid of those definitions. cheers, jamal ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC][GENETLINK] move command capabilities to flags 2006-12-04 13:01 ` jamal @ 2006-12-04 16:31 ` Thomas Graf 2006-12-04 17:48 ` jamal 0 siblings, 1 reply; 9+ messages in thread From: Thomas Graf @ 2006-12-04 16:31 UTC (permalink / raw) To: jamal; +Cc: davem, netdev * jamal <hadi@cyberus.ca> 2006-12-04 08:01 > The savings bytes is one aspect; the other is the cleanliness. > transfering a boolean in that many bits is a little of overkill. > I think it is better to fix it now than later. > I know you mentioned libnl uses it. But that is something you can change > on your side. I dont know of any other app that uses it. Right but if some distro is based on exactly 2.6.19 the specific libnl parts won't work at all for a long time. > > If you > > really want to do it, remove the obsoleted attribute types, I don't > > like dead bodies laying around :-) > > I could resend the patch getting rid of those definitions. OK, I can live with it, I don't care for the breakage much. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC][GENETLINK] move command capabilities to flags 2006-12-04 16:31 ` Thomas Graf @ 2006-12-04 17:48 ` jamal 2006-12-04 18:00 ` Thomas Graf 0 siblings, 1 reply; 9+ messages in thread From: jamal @ 2006-12-04 17:48 UTC (permalink / raw) To: Thomas Graf; +Cc: davem, netdev On Mon, 2006-04-12 at 17:31 +0100, Thomas Graf wrote: > * jamal <hadi@cyberus.ca> 2006-12-04 08:01 > > The savings bytes is one aspect; the other is the cleanliness. > > transfering a boolean in that many bits is a little of overkill. > > I think it is better to fix it now than later. > > I know you mentioned libnl uses it. But that is something you can change > > on your side. I dont know of any other app that uses it. > > Right but if some distro is based on exactly 2.6.19 the specific libnl > parts won't work at all for a long time. > We can resolve that by uping the version for the controller. User will use that a signal. > > > If you > > > really want to do it, remove the obsoleted attribute types, I don't > > > like dead bodies laying around :-) > > > > I could resend the patch getting rid of those definitions. > > OK, I can live with it, I don't care for the breakage much. cool - will send a patch later. cheers, jamal ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC][GENETLINK] move command capabilities to flags 2006-12-04 17:48 ` jamal @ 2006-12-04 18:00 ` Thomas Graf 2006-12-04 21:07 ` jamal 0 siblings, 1 reply; 9+ messages in thread From: Thomas Graf @ 2006-12-04 18:00 UTC (permalink / raw) To: jamal; +Cc: davem, netdev * jamal <hadi@cyberus.ca> 2006-12-04 12:48 > On Mon, 2006-04-12 at 17:31 +0100, Thomas Graf wrote: > > * jamal <hadi@cyberus.ca> 2006-12-04 08:01 > > > The savings bytes is one aspect; the other is the cleanliness. > > > transfering a boolean in that many bits is a little of overkill. > > > I think it is better to fix it now than later. > > > I know you mentioned libnl uses it. But that is something you can change > > > on your side. I dont know of any other app that uses it. > > > > Right but if some distro is based on exactly 2.6.19 the specific libnl > > parts won't work at all for a long time. > > > > We can resolve that by uping the version for the controller. > User will use that a signal. Good idea, makes me happy :-) please do that in your patch as well. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [RFC][GENETLINK] move command capabilities to flags 2006-12-04 18:00 ` Thomas Graf @ 2006-12-04 21:07 ` jamal 2006-12-04 21:23 ` Thomas Graf 0 siblings, 1 reply; 9+ messages in thread From: jamal @ 2006-12-04 21:07 UTC (permalink / raw) To: davem; +Cc: Thomas Graf, netdev [-- Attachment #1: Type: text/plain, Size: 357 bytes --] On Mon, 2006-04-12 at 19:00 +0100, Thomas Graf wrote: > * jamal <hadi@cyberus.ca> 2006-12-04 12:48 > > We can resolve that by uping the version for the controller. > > User will use that a signal. > > Good idea, makes me happy :-) please do that in your patch as well. Ok, here she goes... If looks good, Dave please apply to net-2.6.20 cheers, jamal [-- Attachment #2: genl_capab_fl_take2 --] [-- Type: text/plain, Size: 2559 bytes --] This patch moves command capabilities to command flags. Other than being cleaner, saves several bytes. We increment the nlctrl version so as to signal to user space that to not expect the attributes. We will try to be careful not to do this too often ;-> Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca> --- commit 49ba7537cec41f0db2500054b5fde3c193c37a97 tree f56cb78a17a9847df33101fd4a807617f74d27c6 parent 55a2dc3caa86e03cb3d9e856215e2fceb5cf5f66 author Jamal Hadi Salim <hadi@cyberus.ca> Mon, 04 Dec 2006 15:49:06 -0500 committer Jamal Hadi Salim <hadi@cyberus.ca> Mon, 04 Dec 2006 15:49:06 -0500 include/linux/genetlink.h | 6 +++--- net/netlink/genetlink.c | 18 ++++++++---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h index 9049dc6..f7a9377 100644 --- a/include/linux/genetlink.h +++ b/include/linux/genetlink.h @@ -17,6 +17,9 @@ struct genlmsghdr { #define GENL_HDRLEN NLMSG_ALIGN(sizeof(struct genlmsghdr)) #define GENL_ADMIN_PERM 0x01 +#define GENL_CMD_CAP_DO 0x02 +#define GENL_CMD_CAP_DUMP 0x04 +#define GENL_CMD_CAP_HASPOL 0x08 /* * List of reserved static generic netlink identifiers: @@ -58,9 +61,6 @@ enum { CTRL_ATTR_OP_UNSPEC, CTRL_ATTR_OP_ID, CTRL_ATTR_OP_FLAGS, - CTRL_ATTR_OP_POLICY, - CTRL_ATTR_OP_DOIT, - CTRL_ATTR_OP_DUMPIT, __CTRL_ATTR_OP_MAX, }; diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index cc874f0..3e37ea5 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c @@ -143,6 +143,13 @@ int genl_register_ops(struct genl_family *family, struct genl_ops *ops) goto errout; } + if (ops->dumpit) + ops->flags |= GENL_CMD_CAP_DO; + if (ops->doit) + ops->flags |= GENL_CMD_CAP_DUMP; + if (ops->policy) + ops->flags |= GENL_CMD_CAP_HASPOL; + genl_lock(); list_add_tail(&ops->ops_list, &family->ops_list); genl_unlock(); @@ -387,7 +394,7 @@ static void genl_rcv(struct sock *sk, int len) static struct genl_family genl_ctrl = { .id = GENL_ID_CTRL, .name = "nlctrl", - .version = 0x1, + .version = 0x2, .maxattr = CTRL_ATTR_MAX, }; @@ -425,15 +432,6 @@ static int ctrl_fill_info(struct genl_family *family, u32 pid, u32 seq, NLA_PUT_U32(skb, CTRL_ATTR_OP_ID, ops->cmd); NLA_PUT_U32(skb, CTRL_ATTR_OP_FLAGS, ops->flags); - if (ops->policy) - NLA_PUT_FLAG(skb, CTRL_ATTR_OP_POLICY); - - if (ops->doit) - NLA_PUT_FLAG(skb, CTRL_ATTR_OP_DOIT); - - if (ops->dumpit) - NLA_PUT_FLAG(skb, CTRL_ATTR_OP_DUMPIT); - nla_nest_end(skb, nest); } ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [RFC][GENETLINK] move command capabilities to flags 2006-12-04 21:07 ` jamal @ 2006-12-04 21:23 ` Thomas Graf 2006-12-05 3:32 ` David Miller 0 siblings, 1 reply; 9+ messages in thread From: Thomas Graf @ 2006-12-04 21:23 UTC (permalink / raw) To: jamal; +Cc: davem, netdev * jamal <hadi@cyberus.ca> 2006-12-04 16:07 > On Mon, 2006-04-12 at 19:00 +0100, Thomas Graf wrote: > > * jamal <hadi@cyberus.ca> 2006-12-04 12:48 > > > > We can resolve that by uping the version for the controller. > > > User will use that a signal. > > > > Good idea, makes me happy :-) please do that in your patch as well. > > > Ok, here she goes... > If looks good, Dave please apply to net-2.6.20 Looks good. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC][GENETLINK] move command capabilities to flags 2006-12-04 21:23 ` Thomas Graf @ 2006-12-05 3:32 ` David Miller 0 siblings, 0 replies; 9+ messages in thread From: David Miller @ 2006-12-05 3:32 UTC (permalink / raw) To: tgraf; +Cc: hadi, netdev From: Thomas Graf <tgraf@suug.ch> Date: Mon, 4 Dec 2006 22:23:41 +0100 > * jamal <hadi@cyberus.ca> 2006-12-04 16:07 > > On Mon, 2006-04-12 at 19:00 +0100, Thomas Graf wrote: > > > * jamal <hadi@cyberus.ca> 2006-12-04 12:48 > > > > > > We can resolve that by uping the version for the controller. > > > > User will use that a signal. > > > > > > Good idea, makes me happy :-) please do that in your patch as well. > > > > > > Ok, here she goes... > > If looks good, Dave please apply to net-2.6.20 > > Looks good. Applied, thanks everyone. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2006-12-05 3:32 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-12-02 11:56 [RFC][GENETLINK] move command capabilities to flags jamal 2006-12-04 9:20 ` Thomas Graf 2006-12-04 13:01 ` jamal 2006-12-04 16:31 ` Thomas Graf 2006-12-04 17:48 ` jamal 2006-12-04 18:00 ` Thomas Graf 2006-12-04 21:07 ` jamal 2006-12-04 21:23 ` Thomas Graf 2006-12-05 3:32 ` David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).