{"id":809428,"url":"http://patchwork.ozlabs.org/api/1.2/patches/809428/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/1504478516-13224-2-git-send-email-pablo@netfilter.org/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.2/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1504478516-13224-2-git-send-email-pablo@netfilter.org>","list_archive_url":null,"date":"2017-09-03T22:41:43","name":"[34/47] netfilter: conntrack: remove protocol name from l4proto struct","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"9449913101a57ead31cf6fdbd78933e1e106405d","submitter":{"id":1315,"url":"http://patchwork.ozlabs.org/api/1.2/people/1315/?format=json","name":"Pablo Neira Ayuso","email":"pablo@netfilter.org"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.2/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/1504478516-13224-2-git-send-email-pablo@netfilter.org/mbox/","series":[{"id":1283,"url":"http://patchwork.ozlabs.org/api/1.2/series/1283/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=1283","date":"2017-09-03T22:40:11","name":null,"version":1,"mbox":"http://patchwork.ozlabs.org/series/1283/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/809428/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/809428/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xlnzh3JCLz9s06\n\tfor <patchwork-incoming@ozlabs.org>;\n\tMon,  4 Sep 2017 08:42:24 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1753470AbdICWmX (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSun, 3 Sep 2017 18:42:23 -0400","from mail.us.es ([193.147.175.20]:52896 \"EHLO mail.us.es\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1753439AbdICWmM (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tSun, 3 Sep 2017 18:42:12 -0400","from antivirus1-rhel7.int (unknown [192.168.2.11])\n\tby mail.us.es (Postfix) with ESMTP id 4BFAB190F66\n\tfor <netdev@vger.kernel.org>; Mon,  4 Sep 2017 00:41:45 +0200 (CEST)","from antivirus1-rhel7.int (localhost [127.0.0.1])\n\tby antivirus1-rhel7.int (Postfix) with ESMTP id 3CEBDB5026\n\tfor <netdev@vger.kernel.org>; Mon,  4 Sep 2017 00:41:45 +0200 (CEST)","by antivirus1-rhel7.int (Postfix, from userid 99)\n\tid 325CFB502C; Mon,  4 Sep 2017 00:41:45 +0200 (CEST)","from antivirus1-rhel7.int (localhost [127.0.0.1])\n\tby antivirus1-rhel7.int (Postfix) with ESMTP id F36D3B5026;\n\tMon,  4 Sep 2017 00:41:42 +0200 (CEST)","from 192.168.1.97 (192.168.1.97) by antivirus1-rhel7.int\n\t(F-Secure/fsigk_smtp/550/antivirus1-rhel7.int); \n\tMon, 04 Sep 2017 00:41:42 +0200 (CEST)","from salvia.here (unknown [31.4.193.113])\n\t(Authenticated sender: 1984lsi)\n\tby entrada.int (Postfix) with ESMTPA id 9C9814265A20;\n\tMon,  4 Sep 2017 00:41:42 +0200 (CEST)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.1 (2015-04-28) on\n\tantivirus1-rhel7.int","X-Spam-Level":"","X-Spam-Status":"No, score=-108.2 required=7.5 tests=ALL_TRUSTED,BAYES_50,\n\tSMTPAUTH_US2,USER_IN_WHITELIST autolearn=disabled version=3.4.1","X-Virus-Status":"clean(F-Secure/fsigk_smtp/550/antivirus1-rhel7.int)","X-SMTPAUTHUS":"auth mail.us.es","From":"Pablo Neira Ayuso <pablo@netfilter.org>","To":"netfilter-devel@vger.kernel.org","Cc":"davem@davemloft.net, netdev@vger.kernel.org","Subject":"[PATCH 34/47] netfilter: conntrack: remove protocol name from\n\tl4proto struct","Date":"Mon,  4 Sep 2017 00:41:43 +0200","Message-Id":"<1504478516-13224-2-git-send-email-pablo@netfilter.org>","X-Mailer":"git-send-email 2.1.4","In-Reply-To":"<1504478516-13224-1-git-send-email-pablo@netfilter.org>","References":"<1504478516-13224-1-git-send-email-pablo@netfilter.org>","X-Virus-Scanned":"ClamAV using ClamSMTP","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"From: Florian Westphal <fw@strlen.de>\n\nno need to waste storage for something that is only needed\nin one place and can be deduced from protocol number.\n\nSigned-off-by: Florian Westphal <fw@strlen.de>\nSigned-off-by: Pablo Neira Ayuso <pablo@netfilter.org>\n---\n include/net/netfilter/nf_conntrack_l4proto.h   |  3 ---\n net/ipv4/netfilter/nf_conntrack_proto_icmp.c   |  1 -\n net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c |  1 -\n net/netfilter/nf_conntrack_proto.c             |  8 ++++----\n net/netfilter/nf_conntrack_proto_dccp.c        |  2 --\n net/netfilter/nf_conntrack_proto_generic.c     |  1 -\n net/netfilter/nf_conntrack_proto_gre.c         |  1 -\n net/netfilter/nf_conntrack_proto_sctp.c        |  2 --\n net/netfilter/nf_conntrack_proto_tcp.c         |  2 --\n net/netfilter/nf_conntrack_proto_udp.c         |  4 ----\n net/netfilter/nf_conntrack_standalone.c        | 17 ++++++++++++++++-\n 11 files changed, 20 insertions(+), 22 deletions(-)","diff":"diff --git a/include/net/netfilter/nf_conntrack_l4proto.h b/include/net/netfilter/nf_conntrack_l4proto.h\nindex b6e27cafb1d9..47c16bae5e00 100644\n--- a/include/net/netfilter/nf_conntrack_l4proto.h\n+++ b/include/net/netfilter/nf_conntrack_l4proto.h\n@@ -108,9 +108,6 @@ struct nf_conntrack_l4proto {\n \t/* Return the per-net protocol part. */\n \tstruct nf_proto_net *(*get_net_proto)(struct net *net);\n \n-\t/* Protocol name */\n-\tconst char *name;\n-\n \t/* Module (if any) which this is connected to. */\n \tstruct module *me;\n };\ndiff --git a/net/ipv4/netfilter/nf_conntrack_proto_icmp.c b/net/ipv4/netfilter/nf_conntrack_proto_icmp.c\nindex 73c591d8a9a8..fdbeb03e4600 100644\n--- a/net/ipv4/netfilter/nf_conntrack_proto_icmp.c\n+++ b/net/ipv4/netfilter/nf_conntrack_proto_icmp.c\n@@ -362,7 +362,6 @@ struct nf_conntrack_l4proto nf_conntrack_l4proto_icmp __read_mostly =\n {\n \t.l3proto\t\t= PF_INET,\n \t.l4proto\t\t= IPPROTO_ICMP,\n-\t.name\t\t\t= \"icmp\",\n \t.pkt_to_tuple\t\t= icmp_pkt_to_tuple,\n \t.invert_tuple\t\t= icmp_invert_tuple,\n \t.print_tuple\t\t= icmp_print_tuple,\ndiff --git a/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c b/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c\nindex d5f028e33f65..805ab122767a 100644\n--- a/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c\n+++ b/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c\n@@ -367,7 +367,6 @@ struct nf_conntrack_l4proto nf_conntrack_l4proto_icmpv6 __read_mostly =\n {\n \t.l3proto\t\t= PF_INET6,\n \t.l4proto\t\t= IPPROTO_ICMPV6,\n-\t.name\t\t\t= \"icmpv6\",\n \t.pkt_to_tuple\t\t= icmpv6_pkt_to_tuple,\n \t.invert_tuple\t\t= icmpv6_invert_tuple,\n \t.print_tuple\t\t= icmpv6_print_tuple,\ndiff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c\nindex 85104a27cc89..0ecab7163d62 100644\n--- a/net/netfilter/nf_conntrack_proto.c\n+++ b/net/netfilter/nf_conntrack_proto.c\n@@ -437,8 +437,8 @@ int nf_ct_l4proto_register(struct nf_conntrack_l4proto *l4proto[],\n \t}\n \tif (i != num_proto) {\n \t\tver = l4proto[i]->l3proto == PF_INET6 ? 6 : 4;\n-\t\tpr_err(\"nf_conntrack_ipv%d: can't register %s%d proto.\\n\",\n-\t\t       ver, l4proto[i]->name, ver);\n+\t\tpr_err(\"nf_conntrack_ipv%d: can't register l4 %d proto.\\n\",\n+\t\t       ver, l4proto[i]->l4proto);\n \t\tnf_ct_l4proto_unregister(l4proto, i);\n \t}\n \treturn ret;\n@@ -458,8 +458,8 @@ int nf_ct_l4proto_pernet_register(struct net *net,\n \t\t\tbreak;\n \t}\n \tif (i != num_proto) {\n-\t\tpr_err(\"nf_conntrack_%s%d: pernet registration failed\\n\",\n-\t\t       l4proto[i]->name,\n+\t\tpr_err(\"nf_conntrack_proto_%d %d: pernet registration failed\\n\",\n+\t\t       l4proto[i]->l4proto,\n \t\t       l4proto[i]->l3proto == PF_INET6 ? 6 : 4);\n \t\tnf_ct_l4proto_pernet_unregister(net, l4proto, i);\n \t}\ndiff --git a/net/netfilter/nf_conntrack_proto_dccp.c b/net/netfilter/nf_conntrack_proto_dccp.c\nindex 4707d997558a..a0492184a0a8 100644\n--- a/net/netfilter/nf_conntrack_proto_dccp.c\n+++ b/net/netfilter/nf_conntrack_proto_dccp.c\n@@ -880,7 +880,6 @@ static struct nf_proto_net *dccp_get_net_proto(struct net *net)\n struct nf_conntrack_l4proto nf_conntrack_l4proto_dccp4 __read_mostly = {\n \t.l3proto\t\t= AF_INET,\n \t.l4proto\t\t= IPPROTO_DCCP,\n-\t.name\t\t\t= \"dccp\",\n \t.pkt_to_tuple\t\t= dccp_pkt_to_tuple,\n \t.invert_tuple\t\t= dccp_invert_tuple,\n \t.new\t\t\t= dccp_new,\n@@ -916,7 +915,6 @@ EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_dccp4);\n struct nf_conntrack_l4proto nf_conntrack_l4proto_dccp6 __read_mostly = {\n \t.l3proto\t\t= AF_INET6,\n \t.l4proto\t\t= IPPROTO_DCCP,\n-\t.name\t\t\t= \"dccp\",\n \t.pkt_to_tuple\t\t= dccp_pkt_to_tuple,\n \t.invert_tuple\t\t= dccp_invert_tuple,\n \t.new\t\t\t= dccp_new,\ndiff --git a/net/netfilter/nf_conntrack_proto_generic.c b/net/netfilter/nf_conntrack_proto_generic.c\nindex d5868bad33a7..4fe8b3312823 100644\n--- a/net/netfilter/nf_conntrack_proto_generic.c\n+++ b/net/netfilter/nf_conntrack_proto_generic.c\n@@ -187,7 +187,6 @@ struct nf_conntrack_l4proto nf_conntrack_l4proto_generic __read_mostly =\n {\n \t.l3proto\t\t= PF_UNSPEC,\n \t.l4proto\t\t= 255,\n-\t.name\t\t\t= \"unknown\",\n \t.pkt_to_tuple\t\t= generic_pkt_to_tuple,\n \t.invert_tuple\t\t= generic_invert_tuple,\n \t.print_tuple\t\t= generic_print_tuple,\ndiff --git a/net/netfilter/nf_conntrack_proto_gre.c b/net/netfilter/nf_conntrack_proto_gre.c\nindex 87bb40a3feb5..984bcfdbd4d7 100644\n--- a/net/netfilter/nf_conntrack_proto_gre.c\n+++ b/net/netfilter/nf_conntrack_proto_gre.c\n@@ -364,7 +364,6 @@ static int gre_init_net(struct net *net, u_int16_t proto)\n static struct nf_conntrack_l4proto nf_conntrack_l4proto_gre4 __read_mostly = {\n \t.l3proto\t = AF_INET,\n \t.l4proto\t = IPPROTO_GRE,\n-\t.name\t\t = \"gre\",\n \t.pkt_to_tuple\t = gre_pkt_to_tuple,\n \t.invert_tuple\t = gre_invert_tuple,\n \t.print_tuple\t = gre_print_tuple,\ndiff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c\nindex 6eef29d2eec4..1d7a995ea049 100644\n--- a/net/netfilter/nf_conntrack_proto_sctp.c\n+++ b/net/netfilter/nf_conntrack_proto_sctp.c\n@@ -791,7 +791,6 @@ static struct nf_proto_net *sctp_get_net_proto(struct net *net)\n struct nf_conntrack_l4proto nf_conntrack_l4proto_sctp4 __read_mostly = {\n \t.l3proto\t\t= PF_INET,\n \t.l4proto \t\t= IPPROTO_SCTP,\n-\t.name \t\t\t= \"sctp\",\n \t.pkt_to_tuple \t\t= sctp_pkt_to_tuple,\n \t.invert_tuple \t\t= sctp_invert_tuple,\n \t.print_tuple \t\t= sctp_print_tuple,\n@@ -828,7 +827,6 @@ EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_sctp4);\n struct nf_conntrack_l4proto nf_conntrack_l4proto_sctp6 __read_mostly = {\n \t.l3proto\t\t= PF_INET6,\n \t.l4proto \t\t= IPPROTO_SCTP,\n-\t.name \t\t\t= \"sctp\",\n \t.pkt_to_tuple \t\t= sctp_pkt_to_tuple,\n \t.invert_tuple \t\t= sctp_invert_tuple,\n \t.print_tuple \t\t= sctp_print_tuple,\ndiff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c\nindex 9758a7dfd83e..e3e59e3d0592 100644\n--- a/net/netfilter/nf_conntrack_proto_tcp.c\n+++ b/net/netfilter/nf_conntrack_proto_tcp.c\n@@ -1556,7 +1556,6 @@ struct nf_conntrack_l4proto nf_conntrack_l4proto_tcp4 __read_mostly =\n {\n \t.l3proto\t\t= PF_INET,\n \t.l4proto \t\t= IPPROTO_TCP,\n-\t.name \t\t\t= \"tcp\",\n \t.pkt_to_tuple \t\t= tcp_pkt_to_tuple,\n \t.invert_tuple \t\t= tcp_invert_tuple,\n \t.print_tuple \t\t= tcp_print_tuple,\n@@ -1594,7 +1593,6 @@ struct nf_conntrack_l4proto nf_conntrack_l4proto_tcp6 __read_mostly =\n {\n \t.l3proto\t\t= PF_INET6,\n \t.l4proto \t\t= IPPROTO_TCP,\n-\t.name \t\t\t= \"tcp\",\n \t.pkt_to_tuple \t\t= tcp_pkt_to_tuple,\n \t.invert_tuple \t\t= tcp_invert_tuple,\n \t.print_tuple \t\t= tcp_print_tuple,\ndiff --git a/net/netfilter/nf_conntrack_proto_udp.c b/net/netfilter/nf_conntrack_proto_udp.c\nindex f6ebce6178ca..ec861a1169f1 100644\n--- a/net/netfilter/nf_conntrack_proto_udp.c\n+++ b/net/netfilter/nf_conntrack_proto_udp.c\n@@ -313,7 +313,6 @@ struct nf_conntrack_l4proto nf_conntrack_l4proto_udp4 __read_mostly =\n {\n \t.l3proto\t\t= PF_INET,\n \t.l4proto\t\t= IPPROTO_UDP,\n-\t.name\t\t\t= \"udp\",\n \t.allow_clash\t\t= true,\n \t.pkt_to_tuple\t\t= udp_pkt_to_tuple,\n \t.invert_tuple\t\t= udp_invert_tuple,\n@@ -347,7 +346,6 @@ struct nf_conntrack_l4proto nf_conntrack_l4proto_udplite4 __read_mostly =\n {\n \t.l3proto\t\t= PF_INET,\n \t.l4proto\t\t= IPPROTO_UDPLITE,\n-\t.name\t\t\t= \"udplite\",\n \t.allow_clash\t\t= true,\n \t.pkt_to_tuple\t\t= udp_pkt_to_tuple,\n \t.invert_tuple\t\t= udp_invert_tuple,\n@@ -381,7 +379,6 @@ struct nf_conntrack_l4proto nf_conntrack_l4proto_udp6 __read_mostly =\n {\n \t.l3proto\t\t= PF_INET6,\n \t.l4proto\t\t= IPPROTO_UDP,\n-\t.name\t\t\t= \"udp\",\n \t.allow_clash\t\t= true,\n \t.pkt_to_tuple\t\t= udp_pkt_to_tuple,\n \t.invert_tuple\t\t= udp_invert_tuple,\n@@ -415,7 +412,6 @@ struct nf_conntrack_l4proto nf_conntrack_l4proto_udplite6 __read_mostly =\n {\n \t.l3proto\t\t= PF_INET6,\n \t.l4proto\t\t= IPPROTO_UDPLITE,\n-\t.name\t\t\t= \"udplite\",\n \t.allow_clash\t\t= true,\n \t.pkt_to_tuple\t\t= udp_pkt_to_tuple,\n \t.invert_tuple\t\t= udp_invert_tuple,\ndiff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c\nindex 359d7e6a4503..b28f9e93f574 100644\n--- a/net/netfilter/nf_conntrack_standalone.c\n+++ b/net/netfilter/nf_conntrack_standalone.c\n@@ -208,6 +208,21 @@ static const char* l3proto_name(u16 proto)\n \treturn \"unknown\";\n }\n \n+static const char* l4proto_name(u16 proto)\n+{\n+\tswitch (proto) {\n+\tcase IPPROTO_ICMP: return \"icmp\";\n+\tcase IPPROTO_TCP: return \"tcp\";\n+\tcase IPPROTO_UDP: return \"udp\";\n+\tcase IPPROTO_DCCP: return \"dccp\";\n+\tcase IPPROTO_GRE: return \"gre\";\n+\tcase IPPROTO_SCTP: return \"sctp\";\n+\tcase IPPROTO_UDPLITE: return \"udplite\";\n+\t}\n+\n+\treturn \"unknown\";\n+}\n+\n /* return 0 on success, 1 in case of error */\n static int ct_seq_show(struct seq_file *s, void *v)\n {\n@@ -242,7 +257,7 @@ static int ct_seq_show(struct seq_file *s, void *v)\n \tret = -ENOSPC;\n \tseq_printf(s, \"%-8s %u %-8s %u %ld \",\n \t\t   l3proto_name(l3proto->l3proto), nf_ct_l3num(ct),\n-\t\t   l4proto->name, nf_ct_protonum(ct),\n+\t\t   l4proto_name(l4proto->l4proto), nf_ct_protonum(ct),\n \t\t   nf_ct_expires(ct)  / HZ);\n \n \tif (l4proto->print_conntrack)\n","prefixes":["34/47"]}