On 11 December 2015 at 00:23, Simon Horman <simon.hor...@netronome.com> wrote:
> [snip]
>
>> +static void ovs_fragment(struct vport *vport, struct sk_buff *skb, u16 mru,
>> +                      __be16 ethertype)
>> +{
>> +     if (skb_network_offset(skb) > MAX_L2_LEN) {
>> +             OVS_NLERR(1, "L2 header too long to fragment");
>> +             return;
>> +     }
>> +
>> +     if (ethertype == htons(ETH_P_IP)) {
>> +             struct dst_entry ovs_dst;
>> +             unsigned long orig_dst;
>> +
>> +             prepare_frag(vport, skb);
>> +             dst_init(&ovs_dst, &ovs_dst_ops, NULL, 1,
>> +                      DST_OBSOLETE_NONE, DST_NOCOUNT);
>> +             ovs_dst.dev = vport->dev;
>> +
>> +             orig_dst = (unsigned long) skb_dst(skb);
>> +             skb_dst_set_noref(skb, &ovs_dst);
>> +             IPCB(skb)->frag_max_size = mru;
>> +
>> +             ip_do_fragment(skb->sk, skb, ovs_vport_output);
>
> It seems that this code is compiled for kernel versions > 3.9
> but that a backport of ip_do_fragment is only provided for
> kernels >= 3.10.
>
> I'm unsure of the intention but perhaps the code above should
> not be compiled for when building against 3.9.
>
> With the following building succeeds against v3.9.11.
>
> [snip]

Thanks for the report. I found a few other minor inconsistencies, and
fixed them too in the below patch:
http://openvswitch.org/pipermail/dev/2015-December/063442.html

Travis seems OK with it:
https://travis-ci.org/joestringer/openvswitch/builds/97055675

While I think that some (most?) of the requirements may be available
on v3.9, there is no way that we will be able to test it as thoroughly
as v3.10 backport and I'm not aware of any particular distributions
that are standardising on that kernel version, so IMHO it's better to
use v3.10 as the lower bound.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to