From patchwork Wed Jun 4 12:46:29 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yuxuan Shui X-Patchwork-Id: 355899 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 E2A31140094 for ; Wed, 4 Jun 2014 22:46:43 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752701AbaFDMqm (ORCPT ); Wed, 4 Jun 2014 08:46:42 -0400 Received: from mail-pd0-f175.google.com ([209.85.192.175]:46325 "EHLO mail-pd0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752619AbaFDMql (ORCPT ); Wed, 4 Jun 2014 08:46:41 -0400 Received: by mail-pd0-f175.google.com with SMTP id z10so6020709pdj.6 for ; Wed, 04 Jun 2014 05:46:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=hzWjL35eK8zNnTVyTJBVkNEItEuyJrMxVuUIsT8Q0/A=; b=vgY+rV++Mgl7VcYMMNwSwHbueiApJMN2LSWFtj7/ZYyse2U893V1VXcWeNQSKEpnlz 8r+Iv2LWTlUvMDmvyqab02Aolt1lLbHbVJ0jDqyvCsXNe/pZvLy8hgRLXobOWYLAi9OX Fmg0QEC6lAcMwc6gwLLkxA0pWT2PPw8eAGF3ijnEtfwM2M/ZdH5iiCbbtKQofHQlRCdy F2x9BChXww65PPXHHo+rSkELL6PhnAhHblml0GNLEgxVCrSUea3+4eD6zQ66wmW+M9au IGOGzowv02QjuKNiLiCWb4S5Had/kkiFU0H2KTIJgEkcB3vtX6nPuTSG7k9DcuOel27Q /taQ== X-Received: by 10.68.241.68 with SMTP id wg4mr64061321pbc.66.1401886001340; Wed, 04 Jun 2014 05:46:41 -0700 (PDT) Received: from localhost.localdomain ([202.120.224.53]) by mx.google.com with ESMTPSA id x5sm9758376pbw.26.2014.06.04.05.46.39 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 04 Jun 2014 05:46:40 -0700 (PDT) From: Yuxuan Shui To: netfilter-devel@vger.kernel.org Cc: Yuxuan Shui Subject: [nftables PATCH] src: proto: fix byteorder for ip headers. Date: Wed, 4 Jun 2014 20:46:29 +0800 Message-Id: <1401885989-9162-1-git-send-email-yshuiv7@gmail.com> X-Mailer: git-send-email 2.0.0 Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org Add a new datatype for ip headers which specify the byteorder, this fixes bug 918. Signed-off-by: Yuxuan Shui --- src/proto.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/proto.c b/src/proto.c index 0a37a65..f1556db 100644 --- a/src/proto.c +++ b/src/proto.c @@ -184,13 +184,21 @@ void proto_ctx_update(struct proto_ctx *ctx, enum proto_bases base, proto_ctx_debug(ctx, base); } +const struct datatype net_integer = { + .type = TYPE_INTEGER, + .byteorder = BYTEORDER_BIG_ENDIAN, + .name = "net_integer", + .desc = "network integer", + .basetype = &integer_type, +}; + #define HDR_TEMPLATE(__name, __dtype, __type, __member) \ PROTO_HDR_TEMPLATE(__name, __dtype, \ offsetof(__type, __member) * 8, \ field_sizeof(__type, __member) * 8) #define HDR_FIELD(__name, __struct, __member) \ - HDR_TEMPLATE(__name, &integer_type, __struct, __member) + HDR_TEMPLATE(__name, &net_integer, __struct, __member) #define HDR_BITFIELD(__name, __dtype, __offset, __len) \ PROTO_HDR_TEMPLATE(__name, __dtype, __offset, __len) #define HDR_TYPE(__name, __dtype, __struct, __member) \