On Fri, Aug 31, 2018 at 03:14:39PM +0200, [email protected] wrote:
> Hello
> 
> When using an ovs flow which matches on an IPv6 flow label and also using
> the 'dec_ttl' action before outputing the packet to a switch port, ovs
> produces errors. When removing either of the two from the rule it works
> correctly.
> 
> The (simplified) flow was:
> 
> 
> ovs-ofctl add-flow "ovs" \
>     in_port=LOCAL,ipv6,ipv6_label=0x0000,actions=dec_ttl,output:"ovs_p1"
> 
> 
> The flow rule is matched correctly (with trace and with real packets) and the
> correspondent statistics counters on the flow rule are increased. But no 
> packets
> appear on the output port. Instead the following error messages can be found
> in the ovs-vswitchd.log file (reformated for readability).
> 
> 
> 2018-08-31T11:02:38.891Z|00614|dpif(handler63)|WARN|system@ovs-system:
>     failed to put[create] (Invalid argument) 
> ufid:55a3aa72-a988-432a-a21f-ad4efde57db7
>     recirc_id(0),dp_hash(0/0),skb_priority(0/0),in_port(1),skb_mark(0/0),
>     ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),
>     eth(
>         src=6e:de:2b:9d:82:4d,
>         dst=00:01:bb:04:01:01),
>         eth_type(0x86dd),
>         ipv6(
>             src=2001:db8:1000::100/::,
>             dst=2001:db8:1000::1/::,
>             label=0,
>             proto=17/0,tclass=0x29/0,hlimit=64,frag=no),
>         udp(src=2500/0,dst=2500/0),
>     actions:set(ipv6(label=0,hlimit=63)),2
> 
> 
> 2018-08-31T11:02:38.891Z|00615|dpif(handler63)|WARN|system@ovs-system:
>     execute set(ipv6(label=0,hlimit=63)),2 failed
>     (Invalid argument) on packet
>         udp6,vlan_tci=0x0000,
>         dl_src=6e:de:2b:9d:82:4d,dl_dst=00:01:bb:04:01:01,
>         ipv6_src=2001:db8:1000::100,ipv6_dst=2001:db8:1000::1,
>         ipv6_label=0x00000,
>         nw_tos=40,nw_ecn=1,
>         nw_ttl=64,
>         tp_src=2500,tp_dst=2500,
>         udp_csum:ef7c
>     with metadata skb_priority(0),skb_mark(0),in_port(1) mtu 0
> 
> 
> Tested on Ubuntu 16.04 LTS (64 bit kernel 4.4.0-134-generic) with ovs
> version 2.9.0 and 2.10.0.
> 
> I assume the correct behaviour should be a packet with IPv6 label 0 and a 1 
> less
> ttl as on the input port.

Hmm, that's weird.

It's not a surprise that it takes both of the actions to produce this
behavior.  Without an output, OVS won't bother changing the packet, and
it's changing the packet that's apparently provoking the problem.

The action itself looks perfectly valid and I don't see anything in the
datapath code that is intended to reject it.

Linux 4.4 is slightly old but OVS fully supported IPv6 since long before
that.

Greg, do you have any idea?
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to