From patchwork Fri Dec 2 09:59:44 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Horman X-Patchwork-Id: 701878 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 3tVV530Khvz9ryT for ; Fri, 2 Dec 2016 21:00:07 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="RbJ+mbWn"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759498AbcLBKAB (ORCPT ); Fri, 2 Dec 2016 05:00:01 -0500 Received: from mail-wm0-f51.google.com ([74.125.82.51]:34872 "EHLO mail-wm0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751866AbcLBJ76 (ORCPT ); Fri, 2 Dec 2016 04:59:58 -0500 Received: by mail-wm0-f51.google.com with SMTP id a197so11695483wmd.0 for ; Fri, 02 Dec 2016 01:59:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=V7sO5PC/Kj1j0jAm0si0cCEyyq1H5iUKCucEr6WLS0Q=; b=RbJ+mbWnwxINVIvc/koqwBcWuF2NDWEJm8ZBKOJusCsizT90q5q43YAAIJYebDFwun X33kEPLFRkPnM7Hlc9vPem9WeuHiL35o3GHz+TnYHslg30NAA6syGaQx8AyozmRrF+/t QW41Rs/jbk0+34/mNLYuohVupYFmBGt6m0Ldqx6pWzZSsgd6WDyp3inxsF2ozvouSAGh 156BGnrQ6uPpsfMaxOhJGl2MRUIa9yJZY/t7RzwgJ7Iqgq//jjncsSi9t/cph9PhXZbR yLKBHAdiohNgkiXewbGv8/hH1jcgrG4on5rckdb9/d7vrM00hH2fOufxbX+b25elLQIx yD0Q== 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=V7sO5PC/Kj1j0jAm0si0cCEyyq1H5iUKCucEr6WLS0Q=; b=BzuGZtn+ggdw3Ou04nJIiogPPTnZRQ3qDtjvjvB7ZKDjTKPTsTL3TYKLM3wVpAtbY9 ORx06mgXhY/o/TpfP32E+LERspIyEBy485jDMNjHfNQkl3duNvfk5ojpkVJIZ4RjE+0e qx93P93JQu4W3fEMKUFnTNT1t3JuIr/bTcyuDTFjLzaVDogdYt/N7mhqsgDQV9MhFWVW oViaHhWLXXR6Q9vETfAye1mYwEVNWRzEd+seDhsPHHW5Caunq91VTOurts1qIV/eON5v RhQ/GkkiCnWTr+wWVKEHw8/AjVJpd5d/mcXD8hTnzPcaX11s7xKUkCEY4vgCVRzj8qnw 2Meg== X-Gm-Message-State: AKaTC036a5cGOrSumM4y8GHf8UIxePFgwnDxOqzNbR7cfOl4jRgkrdhceQSop7reqL3mL+nn X-Received: by 10.28.167.77 with SMTP id q74mr1969334wme.21.1480672797213; Fri, 02 Dec 2016 01:59:57 -0800 (PST) Received: from penelope.isobedori.kobe.vergenet.net ([217.111.208.18]) by smtp.gmail.com with ESMTPSA id kq7sm4678942wjb.30.2016.12.02.01.59.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 02 Dec 2016 01:59:56 -0800 (PST) From: Simon Horman To: netdev@vger.kernel.org Cc: Stephen Hemminger , Jamal Hadi Salim , Jiri Pirko , Simon Horman Subject: [PATCH/RFC iproute2/net-next 2/3] tc: flower: introduce enum flower_endpoint Date: Fri, 2 Dec 2016 10:59:44 +0100 Message-Id: <1480672785-14570-3-git-send-email-simon.horman@netronome.com> X-Mailer: git-send-email 2.7.0.rc3.207.g0ac5344 In-Reply-To: <1480672785-14570-1-git-send-email-simon.horman@netronome.com> References: <1480672785-14570-1-git-send-email-simon.horman@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Introduce enum flower_endpoint and use it instead of a bool as the type for paramatising source and destination. This is intended to improve read-ability and provide some type checking of endpoint parameters. Signed-off-by: Simon Horman --- tc/f_flower.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/tc/f_flower.c b/tc/f_flower.c index 615e8f27bed2..42253067b43d 100644 --- a/tc/f_flower.c +++ b/tc/f_flower.c @@ -23,6 +23,11 @@ #include "tc_util.h" #include "rt_names.h" +enum flower_endpoint { + flower_src, + flower_dst +}; + static void explain(void) { fprintf(stderr, @@ -160,29 +165,30 @@ static int flower_parse_ip_addr(char *str, __be16 eth_type, return 0; } -static int flower_port_attr_type(__u8 ip_proto, bool is_src) +static int flower_port_attr_type(__u8 ip_proto, enum flower_endpoint endpoint) { if (ip_proto == IPPROTO_TCP) - return is_src ? TCA_FLOWER_KEY_TCP_SRC : + return endpoint == flower_src ? TCA_FLOWER_KEY_TCP_SRC : TCA_FLOWER_KEY_TCP_DST; else if (ip_proto == IPPROTO_UDP) - return is_src ? TCA_FLOWER_KEY_UDP_SRC : + return endpoint == flower_src ? TCA_FLOWER_KEY_UDP_SRC : TCA_FLOWER_KEY_UDP_DST; else if (ip_proto == IPPROTO_SCTP) - return is_src ? TCA_FLOWER_KEY_SCTP_SRC : + return endpoint == flower_src ? TCA_FLOWER_KEY_SCTP_SRC : TCA_FLOWER_KEY_SCTP_DST; else return -1; } -static int flower_parse_port(char *str, __u8 ip_proto, bool is_src, +static int flower_parse_port(char *str, __u8 ip_proto, + enum flower_endpoint endpoint, struct nlmsghdr *n) { int ret; int type; __be16 port; - type = flower_port_attr_type(ip_proto, is_src); + type = flower_port_attr_type(ip_proto, endpoint); if (type < 0) return -1; @@ -340,14 +346,14 @@ static int flower_parse_opt(struct filter_util *qu, char *handle, } } else if (matches(*argv, "dst_port") == 0) { NEXT_ARG(); - ret = flower_parse_port(*argv, ip_proto, false, n); + ret = flower_parse_port(*argv, ip_proto, flower_dst, n); if (ret < 0) { fprintf(stderr, "Illegal \"dst_port\"\n"); return -1; } } else if (matches(*argv, "src_port") == 0) { NEXT_ARG(); - ret = flower_parse_port(*argv, ip_proto, true, n); + ret = flower_parse_port(*argv, ip_proto, flower_src, n); if (ret < 0) { fprintf(stderr, "Illegal \"src_port\"\n"); return -1;