Hi Joe, On Wed, Dec 02, 2015 at 11:53:46PM -0800, Joe Stringer wrote: > From: Joe Stringer <joestrin...@nicira.com> > > IPv6 fragmentation functionality is not exported by most kernels, so > backport this code from the upstream 4.3 development tree. > > Signed-off-by: Joe Stringer <joestrin...@nicira.com>
[snip] > diff --git a/datapath/linux/compat/ip6_output.c > b/datapath/linux/compat/ip6_output.c > new file mode 100644 > index 000000000000..9d2fe46ef7ef > --- /dev/null > +++ b/datapath/linux/compat/ip6_output.c [snip] > +static u32 __ipv6_select_ident(struct net *net, u32 hashrnd, > + const struct in6_addr *dst, > + const struct in6_addr *src) > +{ > + u32 hash, id; > + > + hash = __ipv6_addr_jhash(dst, hashrnd); > + hash = __ipv6_addr_jhash(src, hash); > + hash ^= net_hash_mix(net); > + > + /* Treat id of 0 as unset and if we get 0 back from ip_idents_reserve, > + * set the hight order instead thus minimizing possible future > + * collisions. > + */ > + id = rpl_ip_idents_reserve(hash, 1); > + if (unlikely(!id)) > + id = 1 << 31; > + > + return id; > +} In Linux v3.19 and v3.19.1 (but not v3.19.2+) __ipv6_select_ident was not static and is declared in ipv6.h. I believe it is because of that that I am seeing the following build error. /home/horms/projects/openvswitch/openvswitch2/datapath/linux/ip6_output.c:93:12: error: conflicting types for ‘__ipv6_select_ident’ static u32 __ipv6_select_ident(struct net *net, u32 hashrnd, [snip] _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev