All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick McHardy <kaber@trash.net>
To: Thomas Graf <tgraf@suug.ch>
Cc: davem@davemloft.net, netdev@vger.kernel.org,
	Netfilter Development Mailinglist
	<netfilter-devel@lists.netfilter.org>
Subject: Re: [PATCH 5/5] [NETLINK]: Ignore control messages directly in netlink_run_queue()
Date: Wed, 21 Mar 2007 13:21:43 +0100	[thread overview]
Message-ID: <46012357.2030701@trash.net> (raw)
In-Reply-To: <46011FBF.90409@trash.net>

Patrick McHardy wrote:
> Thomas Graf wrote:
> 
>>* Patrick McHardy <kaber@trash.net> 2007-03-21 05:44
>>
>>
>>>This looks like it would break nfnetlink, which appears to be
>>>using 0 as smallest message type.
>>
>>
>>It shouldn't do that, the first 16 message types are reserved
>>for control messages.
> 
> 
> 
> I'm afraid it does:
> 
> enum cntl_msg_types {
>         IPCTNL_MSG_CT_NEW,
>         IPCTNL_MSG_CT_GET,
>         IPCTNL_MSG_CT_DELETE,
>         IPCTNL_MSG_CT_GET_CTRZERO,
>         IPCTNL_MSG_MAX
> };
> 
> This is totally broken of course since it also uses netlink_ack(),
> netlink_dump() etc. :( Any smart ideas how to fix this without
> breaking compatibility?


Seems like we're lucky, nfnetlink encodes the "subsystem ID"
in the upper 8 bits of the message type and uses 1 as the
smallest ID:

/* netfilter netlink message types are split in two pieces:
 * 8 bit subsystem, 8bit operation.
 */

#define NFNL_SUBSYS_ID(x)       ((x & 0xff00) >> 8)
#define NFNL_MSG_TYPE(x)        (x & 0x00ff)

#define NFNL_SUBSYS_NONE                0
#define NFNL_SUBSYS_CTNETLINK           1
#define NFNL_SUBSYS_CTNETLINK_EXP       2
#define NFNL_SUBSYS_QUEUE               3
#define NFNL_SUBSYS_ULOG                4
#define NFNL_SUBSYS_COUNT               5



So this should work fine.


  reply	other threads:[~2007-03-21 12:21 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-21  0:18 [PATCH 0/5] [PATCHSET] Netlink Patches Thomas Graf
2007-03-21  0:18 ` [PATCH 1/5] [TCP] vegas: Use type safe netlink interface Thomas Graf
2007-03-21  0:18 ` [PATCH 2/5] [TCP] westwood: " Thomas Graf
2007-03-21  0:18 ` [PATCH 3/5] [NETLINK]: Remove unused groups variable Thomas Graf
2007-03-21  0:18 ` [PATCH 4/5] [NETLINK]: Ignore !NLM_F_REQUEST messages directly in netlink_run_queue() Thomas Graf
2007-03-21 12:33   ` [NETFILTER] nfnetlink: netlink_run_queue() already checks for NLM_F_REQUEST Thomas Graf
2007-03-21 12:37     ` Patrick McHardy
2007-03-21  0:18 ` [PATCH 5/5] [NETLINK]: Ignore control messages directly in netlink_run_queue() Thomas Graf
2007-03-21  4:44   ` Patrick McHardy
2007-03-21 11:45     ` Thomas Graf
2007-03-21 11:59       ` Thomas Graf
2007-03-21 12:06       ` Patrick McHardy
2007-03-21 12:21         ` Patrick McHardy [this message]
2007-03-21 12:25           ` Thomas Graf
2007-03-21 12:25         ` Thomas Graf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46012357.2030701@trash.net \
    --to=kaber@trash.net \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@lists.netfilter.org \
    --cc=tgraf@suug.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.