lkml.org 
[lkml]   [2022]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v10] net: bonding: Add support for IPV6 ns/na to balance-alb/balance-tlb mode
On Tue, 25 Jan 2022 09:24:18 -0500 Sun Shouxin wrote:
> +/* determine if the packet is NA or NS */
> +static bool __alb_determine_nd(struct icmp6hdr *hdr)
> +{
> + if (hdr->icmp6_type == NDISC_NEIGHBOUR_ADVERTISEMENT ||
> + hdr->icmp6_type == NDISC_NEIGHBOUR_SOLICITATION) {
> + return true;
> + }
> +
> + return false;
> +}
> +
> +static bool alb_determine_nd(struct sk_buff *skb, struct bonding *bond)
> +{
> + struct ipv6hdr *ip6hdr;
> + struct icmp6hdr *hdr;
> +
> + if (!pskb_network_may_pull(skb, sizeof(*ip6hdr)))
> + return true;
> +
> + ip6hdr = ipv6_hdr(skb);
> + if (ip6hdr->nexthdr == IPPROTO_ICMPV6) {

if (ip6hdr->nexthdr != IPPROTO_ICMPV6)
return false;

This way there's no need to indent the rest of the function.

> + if (!pskb_may_pull(skb, sizeof(*ip6hdr) + sizeof(*hdr)))

What happened to the _network part? pskb_network_may_pull(), right?

> + return true;
> +
> + hdr = icmp6_hdr(skb);
> + return __alb_determine_nd(hdr);

Why create a full helper for this condition? Why not just:

return hdr->icmp6_type == NDISC_NEIGHBOUR_ADVERTISEMENT ||
hdr->icmp6_type == NDISC_NEIGHBOUR_SOLICITATION;


> + }
> +
> + return false;
> +}

\
 
 \ /
  Last update: 2022-01-28 03:48    [W:0.044 / U:0.824 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site