>> 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? > > .
I was wondering why the log shows two actions "actions:set(ipv6(label=0,hlimit=63))" as there is only one defined in the flow "dec_ttl"? The flow label is only matched if its 0 so why set it to 0 again in the action? _______________________________________________ discuss mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
