From: David Ahern <redacted>
Date: Fri, 14 Oct 2016 12:29:19 -0700
+/* can not be used in TCP layer after tcp_v6_fill_cb */
+static inline bool inet6_exact_dif_match(struct net *net, struct sk_buff *skb)
+{
+#if defined(CONFIG_NET_L3_MASTER_DEV)
+ if (!net->ipv4.sysctl_tcp_l3mdev_accept &&
+ skb_l3mdev_slave(IP6CB(skb)->flags))
+ return true;
+#endif
+ return false;
+}
...
+static inline bool skb_l3mdev_slave4(u16 flags)
+{
+ return !!(flags & IPSKB_L3SLAVE);
+}
I think this makes the code confusing.
Actually it has been from the beginning, because we have a generically
named "skb_l3mdev_slave()" helper which strictly operates on ipv6
state.
Please do something with the naming of these two helpers,
skb_l3mdev_slave() and skb_l3mdev_slave4(), so that it is clear that
they are ipv6 and ipv4 specific helpers, respectively.