From patchwork Tue Jul 26 06:47:18 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Parthasarathy Bhuvaragan X-Patchwork-Id: 652619 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3rz7wY5xcYz9t1S for ; Tue, 26 Jul 2016 16:47:41 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755061AbcGZGrj (ORCPT ); Tue, 26 Jul 2016 02:47:39 -0400 Received: from sesbmg23.ericsson.net ([193.180.251.37]:50669 "EHLO sesbmg23.ericsson.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753590AbcGZGrh (ORCPT ); Tue, 26 Jul 2016 02:47:37 -0400 X-AuditID: c1b4fb25-703ff70000000bbb-b5-57970780ca32 Received: from ESESSHC011.ericsson.se (Unknown_Domain [153.88.183.51]) by (Symantec Mail Security) with SMTP id 2B.08.03003.08707975; Tue, 26 Jul 2016 08:47:29 +0200 (CEST) Received: from tipsy.lab.linux.ericsson.se (10.35.28.120) by ESESSHC011.ericsson.se (153.88.183.51) with Microsoft SMTP Server (TLS) id 14.3.301.0; Tue, 26 Jul 2016 08:47:28 +0200 From: Parthasarathy Bhuvaragan To: CC: , , , Subject: [PATCH net-next v2 1/5] tipc: introduce constants for tipc address validation Date: Tue, 26 Jul 2016 08:47:18 +0200 Message-ID: <1469515642-9498-2-git-send-email-parthasarathy.bhuvaragan@ericsson.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1469515642-9498-1-git-send-email-parthasarathy.bhuvaragan@ericsson.com> References: <1469515642-9498-1-git-send-email-parthasarathy.bhuvaragan@ericsson.com> MIME-Version: 1.0 X-Originating-IP: [10.35.28.120] X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrJLMWRmVeSWpSXmKPExsUyM2K7sW4j+/Rwg95H2haLFh1msji2QMxi y/ksi8fXrzM7sHi877nC5LF7wWcmj8+b5DzWb9nKFMASxWWTkpqTWZZapG+XwJXxZk4/S8Ez 2YqTp38yNTD+E+9i5OSQEDCR+H5lP2MXIxeHkMB6RolD7yczQzjbGSXmbHzG0sXIwcEm4CYx rzkBpEFEQEbiaP8CNhCbWaBM4mTbe0YQW1ggTOLTpg1MIDaLgKpE244jYHFegRCJ5snLmSCW yUmcP/6TGcTmFAiV+LdhIVhcCKjmzJJHbBD1ghInZz5hgZgvIXHwxQtmiBojiQkXj0PNUZD4 NrObaQKjwCwkLbOQtCxgZFrFKFqcWpyUm25krJdalJlcXJyfp5eXWrKJERigB7f8Vt3BePmN 4yFGAQ5GJR7eBcHTwoVYE8uKK3MPMUpwMCuJ8JqxTA8X4k1JrKxKLcqPLyrNSS0+xCjNwaIk zuv/UjFcSCA9sSQ1OzW1ILUIJsvEwSnVwKjOJld75lmype/rjS/fZt+YeM1tevXZtoUzHnsu qs0+79u5vCIrd6qWzMUL5v5yCZePbjdcn3HlTC6/oWJXiY41f/X1uZYyf/IEbZ9F6BslCgSe c1pbHfhGq77s3orfmy0e7Ty2j/vGpvJtyaee+vv2zvqySF3xgBlzffvDm9meLjotp8xd5iqx FGckGmoxFxUnAgBAEABATAIAAA== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In this commit, we introduce defines for tipc address size, offset and mask specification for Zone.Cluster.Node. There is no functional change in this commit. Reviewed-by: Jon Maloy Signed-off-by: Parthasarathy Bhuvaragan --- include/uapi/linux/tipc.h | 30 ++++++++++++++++++++++++++---- net/tipc/addr.h | 5 +---- net/tipc/bearer.c | 4 ++-- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/include/uapi/linux/tipc.h b/include/uapi/linux/tipc.h index 6f71b9b41595..bf049e8fe31b 100644 --- a/include/uapi/linux/tipc.h +++ b/include/uapi/linux/tipc.h @@ -60,26 +60,48 @@ struct tipc_name_seq { __u32 upper; }; +/* TIPC Address Size, Offset, Mask specification for Z.C.N + */ +#define TIPC_NODE_BITS 12 +#define TIPC_CLUSTER_BITS 12 +#define TIPC_ZONE_BITS 8 + +#define TIPC_NODE_OFFSET 0 +#define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS +#define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS) + +#define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1) +#define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1) +#define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1) + +#define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET) +#define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET) +#define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET) + +#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK) + static inline __u32 tipc_addr(unsigned int zone, unsigned int cluster, unsigned int node) { - return (zone << 24) | (cluster << 12) | node; + return (zone << TIPC_ZONE_OFFSET) | + (cluster << TIPC_CLUSTER_OFFSET) | + node; } static inline unsigned int tipc_zone(__u32 addr) { - return addr >> 24; + return addr >> TIPC_ZONE_OFFSET; } static inline unsigned int tipc_cluster(__u32 addr) { - return (addr >> 12) & 0xfff; + return (addr & TIPC_CLUSTER_MASK) >> TIPC_CLUSTER_OFFSET; } static inline unsigned int tipc_node(__u32 addr) { - return addr & 0xfff; + return addr & TIPC_NODE_MASK; } /* diff --git a/net/tipc/addr.h b/net/tipc/addr.h index 64f4004a6fac..bebb347803ce 100644 --- a/net/tipc/addr.h +++ b/net/tipc/addr.h @@ -43,9 +43,6 @@ #include #include "core.h" -#define TIPC_ZONE_MASK 0xff000000u -#define TIPC_CLUSTER_MASK 0xfffff000u - static inline u32 tipc_own_addr(struct net *net) { struct tipc_net *tn = net_generic(net, tipc_net_id); @@ -60,7 +57,7 @@ static inline u32 tipc_zone_mask(u32 addr) static inline u32 tipc_cluster_mask(u32 addr) { - return addr & TIPC_CLUSTER_MASK; + return addr & TIPC_ZONE_CLUSTER_MASK; } u32 tipc_own_addr(struct net *net); diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index 4131d5a86f55..65b0998a9bab 100644 --- a/net/tipc/bearer.c +++ b/net/tipc/bearer.c @@ -225,7 +225,7 @@ static int tipc_enable_bearer(struct net *net, const char *name, if (tipc_addr_domain_valid(disc_domain) && (disc_domain != tn->own_addr)) { if (tipc_in_scope(disc_domain, tn->own_addr)) { - disc_domain = tn->own_addr & TIPC_CLUSTER_MASK; + disc_domain = tn->own_addr & TIPC_ZONE_CLUSTER_MASK; res = 0; /* accept any node in own cluster */ } else if (in_own_cluster_exact(net, disc_domain)) res = 0; /* accept specified node in own cluster */ @@ -832,7 +832,7 @@ int tipc_nl_bearer_enable(struct sk_buff *skb, struct genl_info *info) u32 prio; prio = TIPC_MEDIA_LINK_PRI; - domain = tn->own_addr & TIPC_CLUSTER_MASK; + domain = tn->own_addr & TIPC_ZONE_CLUSTER_MASK; if (!info->attrs[TIPC_NLA_BEARER]) return -EINVAL;