From patchwork Wed Nov 30 07:38:38 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amir Vadai X-Patchwork-Id: 700887 X-Patchwork-Delegate: shemminger@vyatta.com 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 3tTC8250Yjz9t2g for ; Wed, 30 Nov 2016 18:43:14 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756351AbcK3HnN (ORCPT ); Wed, 30 Nov 2016 02:43:13 -0500 Received: from mail-wj0-f196.google.com ([209.85.210.196]:36614 "EHLO mail-wj0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755401AbcK3HnJ (ORCPT ); Wed, 30 Nov 2016 02:43:09 -0500 Received: by mail-wj0-f196.google.com with SMTP id jb2so21015101wjb.3 for ; Tue, 29 Nov 2016 23:43:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=7Mu71+jhJAMaiA1IQmasbKvyfmuybASymnkCL2tesCA=; b=eGHi+efwBc59ipYulBA2/genXow0UbhZVYuHrTa7toZx34NbfwXxNSoISipY52SBfH xw5XgJjtiQh2IV9q5+DUY3onjMjbTZDp6lR3fUoAqbwf0ceOx1u8j+Dx2I3XgsZpB2pz UpWQ5dNZyNylla/Z8fRTQ02zb+oTVzvIFgAI5f08vXGWWIMsEVL7tM9NvbfbCpsB9ZoY YB5awgWbAuuUyF0CzLf+34s2tWeMZ86TxoJMVuzpgOEpHnuVpCEAVZ96xijkOboXVReo gh9NHoZgP5kMa9obqa8VyTJOw0PjHgTgv+V4Xm3IxDfacYu9k9YeKBz2B/eFAyplgWUT UGMQ== X-Gm-Message-State: AKaTC01bDDZiKge8XvHSkcHkdclP3PpKAG5XZopnNM/wjj12hUH/bW6btBJyllq2LJhkEg== X-Received: by 10.194.85.165 with SMTP id i5mr27034322wjz.147.1480491788347; Tue, 29 Nov 2016 23:43:08 -0800 (PST) Received: from office.vadai.me ([192.116.94.215]) by smtp.gmail.com with ESMTPSA id j6sm71742525wjk.25.2016.11.29.23.43.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 Nov 2016 23:43:07 -0800 (PST) From: Amir Vadai To: Stephen Hemminger Cc: netdev@vger.kernel.org, "David S. Miller" , Or Gerlitz , Hadar Har-Zion , Jiri Pirko , Jiri Benc , Amir Vadai Subject: [PATCH iproute2 V3 1/3] libnetlink: Introduce rta_getattr_be*() Date: Wed, 30 Nov 2016 09:38:38 +0200 Message-Id: <20161130073840.5269-2-amir@vadai.me> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161130073840.5269-1-amir@vadai.me> References: <20161130073840.5269-1-amir@vadai.me> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add the utility functions rta_getattr_be16() and rta_getattr_be32(), and change existing code to use it. Signed-off-by: Amir Vadai --- bridge/fdb.c | 4 ++-- include/libnetlink.h | 9 +++++++++ ip/iplink_geneve.c | 2 +- ip/iplink_vxlan.c | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/bridge/fdb.c b/bridge/fdb.c index 90f4b154c5dc..a91521776e99 100644 --- a/bridge/fdb.c +++ b/bridge/fdb.c @@ -168,10 +168,10 @@ int print_fdb(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) if (tb[NDA_PORT]) { if (jw_global) jsonw_uint_field(jw_global, "port", - ntohs(rta_getattr_u16(tb[NDA_PORT]))); + rta_getattr_be16(tb[NDA_PORT])); else fprintf(fp, "port %d ", - ntohs(rta_getattr_u16(tb[NDA_PORT]))); + rta_getattr_be16(tb[NDA_PORT])); } if (tb[NDA_VNI]) { diff --git a/include/libnetlink.h b/include/libnetlink.h index 483509ca9635..751ebf186dd4 100644 --- a/include/libnetlink.h +++ b/include/libnetlink.h @@ -10,6 +10,7 @@ #include #include #include +#include struct rtnl_handle { int fd; @@ -140,10 +141,18 @@ static inline __u16 rta_getattr_u16(const struct rtattr *rta) { return *(__u16 *)RTA_DATA(rta); } +static inline __be16 rta_getattr_be16(const struct rtattr *rta) +{ + return ntohs(rta_getattr_u16(rta)); +} static inline __u32 rta_getattr_u32(const struct rtattr *rta) { return *(__u32 *)RTA_DATA(rta); } +static inline __be32 rta_getattr_be32(const struct rtattr *rta) +{ + return ntohl(rta_getattr_u32(rta)); +} static inline __u64 rta_getattr_u64(const struct rtattr *rta) { __u64 tmp; diff --git a/ip/iplink_geneve.c b/ip/iplink_geneve.c index 3bfba91c644c..1e6669d07d60 100644 --- a/ip/iplink_geneve.c +++ b/ip/iplink_geneve.c @@ -234,7 +234,7 @@ static void geneve_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) if (tb[IFLA_GENEVE_PORT]) fprintf(f, "dstport %u ", - ntohs(rta_getattr_u16(tb[IFLA_GENEVE_PORT]))); + rta_getattr_be16(tb[IFLA_GENEVE_PORT])); if (tb[IFLA_GENEVE_COLLECT_METADATA]) fputs("external ", f); diff --git a/ip/iplink_vxlan.c b/ip/iplink_vxlan.c index 93af979a1e97..6d02bb47b2f0 100644 --- a/ip/iplink_vxlan.c +++ b/ip/iplink_vxlan.c @@ -413,7 +413,7 @@ static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) if (tb[IFLA_VXLAN_PORT]) fprintf(f, "dstport %u ", - ntohs(rta_getattr_u16(tb[IFLA_VXLAN_PORT]))); + rta_getattr_be16(tb[IFLA_VXLAN_PORT])); if (tb[IFLA_VXLAN_LEARNING] && !rta_getattr_u8(tb[IFLA_VXLAN_LEARNING]))