From patchwork Thu Jan 28 19:35:37 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shivani Bhardwaj X-Patchwork-Id: 574847 X-Patchwork-Delegate: pablo@netfilter.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 10C90140BCE for ; Fri, 29 Jan 2016 06:36:17 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=UotZetWK; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964949AbcA1TgA (ORCPT ); Thu, 28 Jan 2016 14:36:00 -0500 Received: from mail-pa0-f48.google.com ([209.85.220.48]:32836 "EHLO mail-pa0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753479AbcA1Tfp (ORCPT ); Thu, 28 Jan 2016 14:35:45 -0500 Received: by mail-pa0-f48.google.com with SMTP id cy9so27874014pac.0 for ; Thu, 28 Jan 2016 11:35:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:subject:message-id:mime-version:content-type :content-disposition:user-agent; bh=ZnZ0Su6s172Q6EwdF4rGemNv2aNSIQwzalHkUSOhulo=; b=UotZetWKUiffwTlocAMzCSSQoQvBfBx1wjk8UaIRoaskK111FzvkgUVP37Mp7zBI2i aXlltk3iQVmUv388h3cP3mTsSOQ2Uha/DsIILAYUzs3zYU4BA4aRUvzjiYDzH1Of+aYP FoGommxlMswzsLZdioBOmrfyXTkYcs2YI1/ePvkA4rcsI7ZSiNtRY2HIM+mmSlKHiEzS BsvQwflv5nKIybUfuRSiqaRJeQgFZW8DudcZo8UbDyUhVhD4ludfApNoJJufDJwnjZxn jAMFBOuJa24AsQ5KjcNFSEBe3cOUne1Zu1mfNv/e104wgQCQplMbhJb3tKNllU8jCXeW JXWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-type:content-disposition:user-agent; bh=ZnZ0Su6s172Q6EwdF4rGemNv2aNSIQwzalHkUSOhulo=; b=dbhy0VhZF9u+eQeEKl5kZKOxDDkfFAYeZVW8nt7Y9f9UvcDh6SlNwItSvEF+hSnNLr YQ9BI9d0Fb6jr8TsZ78j1DXKWu+bXFfKWxO9NZ/IRygug84Iy0sx9YpNLI2JyRmHxXOr b1fy502QHYOrqvG45xaGlxUXulSwgjtMS/Mg2Vt6qGrcftGRjyV/9chFcAUfg07ndVxA ZBtitMQCvEWWDYUFu6/e6DqmZrtRKAvLA2TaH5ZJCyKqPNQNYSbne7b45wfbTDQBez6l w5c0fPKXh3SSeRrYe/RQ6PxWEdUvP4siqJHMb7ph2uOA+h1gGQSnJjkedvpLx8HC2/Kp LyEg== X-Gm-Message-State: AG10YOStEziFssYcO6c5gBd1MqjeZ+Pn8PFTZlMMiyvKzQvJN8TXJCGgI4l6D519zmgAYQ== X-Received: by 10.66.253.170 with SMTP id ab10mr7145195pad.125.1454009745043; Thu, 28 Jan 2016 11:35:45 -0800 (PST) Received: from gmail.com ([106.209.40.35]) by smtp.gmail.com with ESMTPSA id l9sm18267001pfb.29.2016.01.28.11.35.42 for (version=TLS1_2 cipher=AES128-SHA bits=128/128); Thu, 28 Jan 2016 11:35:43 -0800 (PST) Date: Fri, 29 Jan 2016 01:05:37 +0530 From: Shivani Bhardwaj To: netfilter-devel@vger.kernel.org Subject: [PATCH] src: netlink_linearize: Fix bug for redirect target Message-ID: <20160128193537.GA23701@gmail.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org Before this patch, $ sudo nft --debug=netlink add rule ip nat post ip protocol tcp redirect to 100-200 ip nat post [ payload load 1b @ network header + 9 => reg 1 ] [ cmp eq reg 1 0x00000006 ] [ immediate reg 1 0x00006400 ] [ immediate reg 2 0x0000c800 ] [ redir proto_min reg 1 proto_max reg 5 ] :1:1-56: Error: Could not process rule: Invalid argument add rule ip nat post ip protocol tcp redirect to 100-200 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ After this patch, $ sudo nft --debug=netlink add rule ip nat post ip protocol tcp redirect to 100-200 ip nat post [ payload load 1b @ network header + 9 => reg 1 ] [ cmp eq reg 1 0x00000006 ] [ immediate reg 1 0x00006400 ] [ immediate reg 2 0x0000c800 ] [ redir proto_min reg 1 proto_max reg 2 ] Signed-off-by: Shivani Bhardwaj --- src/netlink_linearize.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/netlink_linearize.c b/src/netlink_linearize.c index 7c6ef16..dfe8dca 100644 --- a/src/netlink_linearize.c +++ b/src/netlink_linearize.c @@ -861,17 +861,17 @@ static void netlink_gen_redir_stmt(struct netlink_linearize_ctx *ctx, pmin_reg); netlink_gen_expr(ctx, stmt->redir.proto->right, pmax_reg); - nftnl_expr_set_u32(nle, - NFTNL_EXPR_REDIR_REG_PROTO_MIN, - pmin_reg); - nftnl_expr_set_u32(nle, - NFTNL_EXPR_REDIR_REG_PROTO_MAX, - pmax_reg); + netlink_put_register(nle, + NFTNL_EXPR_REDIR_REG_PROTO_MIN, + pmin_reg); + netlink_put_register(nle, + NFTNL_EXPR_REDIR_REG_PROTO_MAX, + pmax_reg); } else { netlink_gen_expr(ctx, stmt->redir.proto, pmin_reg); - nftnl_expr_set_u32(nle, - NFTNL_EXPR_REDIR_REG_PROTO_MIN, - pmin_reg); + netlink_put_register(nle, + NFTNL_EXPR_REDIR_REG_PROTO_MIN, + pmin_reg); } }