{"id":809430,"url":"http://patchwork.ozlabs.org/api/1.2/patches/809430/?format=json","web_url":"http://patchwork.ozlabs.org/project/netfilter-devel/patch/1504478516-13224-2-git-send-email-pablo@netfilter.org/","project":{"id":26,"url":"http://patchwork.ozlabs.org/api/1.2/projects/26/?format=json","name":"Netfilter Development","link_name":"netfilter-devel","list_id":"netfilter-devel.vger.kernel.org","list_email":"netfilter-devel@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":false,"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":6139,"url":"http://patchwork.ozlabs.org/api/1.2/users/6139/?format=json","username":"pablo","first_name":"Pablo","last_name":"Neira","email":"pablo@netfilter.org"},"mbox":"http://patchwork.ozlabs.org/project/netfilter-devel/patch/1504478516-13224-2-git-send-email-pablo@netfilter.org/mbox/","series":[{"id":1282,"url":"http://patchwork.ozlabs.org/api/1.2/series/1282/?format=json","web_url":"http://patchwork.ozlabs.org/project/netfilter-devel/list/?series=1282","date":"2017-09-03T22:40:11","name":null,"version":1,"mbox":"http://patchwork.ozlabs.org/series/1282/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/809430/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/809430/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netfilter-devel-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.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=netfilter-devel-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 3xlnzh67Z6z9sPs\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon,  4 Sep 2017 08:42:24 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1753469AbdICWmW (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tSun, 3 Sep 2017 18:42:22 -0400","from mail.us.es ([193.147.175.20]:52898 \"EHLO mail.us.es\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1753440AbdICWmM (ORCPT <rfc822; netfilter-devel@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 4B7E3190F65\n\tfor <netfilter-devel@vger.kernel.org>;\n\tMon,  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 360A3B502D\n\tfor <netfilter-devel@vger.kernel.org>;\n\tMon,  4 Sep 2017 00:41:45 +0200 (CEST)","by antivirus1-rhel7.int (Postfix, from userid 99)\n\tid 2BAA7B5024; 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":"netfilter-devel-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netfilter-devel.vger.kernel.org>","X-Mailing-List":"netfilter-devel@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"]}