netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick McHardy <kaber@trash.net>
To: pablo@netfilter.org
Cc: netfilter-devel@vger.kernel.org
Subject: [PATCH nft 0/9] concat support
Date: Fri,  5 Jun 2015 15:42:42 +0200	[thread overview]
Message-ID: <1433511771-4620-1-git-send-email-kaber@trash.net> (raw)

The following patches add support for concatenations to nft. 

The series begins by changing register allocation to take the real size
of an expression into account and allocate an approriate number of 32
bit registers. This is however only done when concatenations are actually
used, so in all other cases we'll continue to use 128 bit registers
for compatibility.

The next part is delinearization, which maps the new registers numbers
appropriately and changes individual expression reconstruction to build
concat expression when indicated by the LHS and RHS sizes.

The final patch changes set element delinearization to reconstruct the
concat expression in set elements when indicated by the key type of the
set.


Patrick McHardy (9):
  eval: prohibit variable sized types in concat expressions
  headers: sync headers for new register values
  netlink: pass expression to register allocation/release functions
  netlink_linearize: use NFT_REG32 values internally
  netlink_linearize: generate concat expressions
  netlink: pad constant concat sub-expressions
  netlink_delinearize: introduce register translation helper
  netlink_delinearize: handle relational and lookup concat expressions
  netlink: handle concat expressions in set data

 include/linux/netfilter/nf_tables.h |  34 +++++++++-
 include/netlink.h                   |  15 +++++
 src/datatype.c                      |   5 +-
 src/evaluate.c                      |   7 ++
 src/netlink.c                       |  46 ++++++++++---
 src/netlink_delinearize.c           | 130 ++++++++++++++++++++++++++++++++----
 src/netlink_linearize.c             | 105 ++++++++++++++++++++---------
 7 files changed, 288 insertions(+), 54 deletions(-)

-- 
2.1.0


             reply	other threads:[~2015-06-05 13:42 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-05 13:42 Patrick McHardy [this message]
2015-06-05 13:42 ` [PATCH nft 1/9] eval: prohibit variable sized types in concat expressions Patrick McHardy
2015-06-05 13:42 ` [PATCH nft 2/9] headers: sync headers for new register values Patrick McHardy
2015-06-05 13:42 ` [PATCH nft 3/9] netlink: pass expression to register allocation/release functions Patrick McHardy
2015-06-05 13:42 ` [PATCH nft 4/9] netlink_linearize: use NFT_REG32 values internally Patrick McHardy
2015-06-05 13:42 ` [PATCH nft 5/9] netlink_linearize: generate concat expressions Patrick McHardy
2015-06-05 13:42 ` [PATCH nft 6/9] netlink: pad constant concat sub-expressions Patrick McHardy
2015-06-05 13:42 ` [PATCH nft 7/9] netlink_delinearize: introduce register translation helper Patrick McHardy
2015-06-05 13:42 ` [PATCH nft 8/9] netlink_delinearize: handle relational and lookup concat expressions Patrick McHardy
2015-06-05 13:42 ` [PATCH nft 9/9] netlink: handle concat expressions in set data Patrick McHardy

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=1433511771-4620-1-git-send-email-kaber@trash.net \
    --to=kaber@trash.net \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=pablo@netfilter.org \
    /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 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).