[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20181123.110603.766843141551335784.davem@davemloft.net>
Date: Fri, 23 Nov 2018 11:06:03 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: felix.jia@...iedtelesis.co.nz
Cc: blair.steven@...iedtelesis.co.nz, netdev@...r.kernel.org,
sheena.mira-ato@...iedtelesis.co.nz, masakazu.asama@...il.com
Subject: Re: [PATCH v1 net-next] ip6_tunnel: Adding support of mapping
rules for MAP-E tunnel
From: Felix Jia <felix.jia@...iedtelesis.co.nz>
Date: Tue, 20 Nov 2018 14:53:24 +1300
> +struct ip6_tnl_rule {
> + u8 version;
> + struct in6_addr ipv6_subnet;
> + u8 ipv6_prefixlen;
> + struct in_addr ipv4_subnet;
> + u8 ipv4_prefixlen;
> + u8 ea_length;
> + u8 psid_offset;
Please arrange the members of this structure better so that there is no
internal padding. Putting a u8 before an in6_addr puts at least 3 bytes
of wasted padding after the u8, for example.
> + u8 *ptr;
> + struct iphdr *icmpiph = NULL;
> + struct tcphdr *tcph, *icmptcph;
> + struct udphdr *udph, *icmpudph;
> + struct icmphdr *icmph, *icmpicmph;
Please arrange all local variables from longest to shortest line, ie. reverse
christmas tree format.
> + int i, pbw0, pbi0, pbi1;
> + __u32 addr[4];
> + __u32 psid = 0;
> + __u32 mask = 0;
> + __u32 a = ntohl(addr4);
> + __u16 p = ntohs(port4);
> + int psid_prefix_length = 0;
> + int psid_mask;
> + __u32 id0 = 0;
> + __u32 id1 = 0;
Likewise.
Also, many of these explicit "= 0" initializations are unnecessary and
make the declarations more ugly than they need to be.
> +static void
> +ip6_tnl_mape_dst(struct net_device *dev, struct sk_buff *skb,
> + struct flowi6 *fl6)
> +{
> + struct ip6_tnl *t = netdev_priv(dev);
> + struct iphdr *iph;
> + __be32 saddr4, daddr4, addr;
> + __be16 sport4, dport4, port;
> + __u8 proto;
> + int icmperr;
> + struct ip6_tnl_rule *mr = NULL;
Reverse christmas tree please.
> +static struct ip6_tnl __rcu **
> +ip6_tnl_bucket_r_any(struct ip6_tnl_net *ip6n, const struct __ip6_tnl_parm *p)
> +{
> + const struct in6_addr *local = &p->laddr;
> + unsigned int h = 0;
> + int prio = 0;
> + struct in6_addr any;
Likewise.
And so on and so forth for your entire patch.
Powered by blists - more mailing lists