On 20/05/2019 17:29, Jamal Hadi Salim wrote: > On 2019-05-20 12:10 p.m., Edward Cree wrote: >> # tc filter del dev $vfrep parent ffff: pref 49151 >> # tc -stats filter show dev $vfrep parent ffff: >> filter protocol arp pref 49152 flower chain 0 >> filter protocol arp pref 49152 flower chain 0 handle 0x1 >> eth_type arp >> skip_sw >> in_hw in_hw_count 1 >> action order 1: vlan push id 100 protocol 802.1Q priority 0 pipe >> index 1 ref 1 bind 1 installed 180 sec used 180 sec >> Action statistics: >> Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) >> backlog 0b 0p requeues 0 >> >> action order 2: mirred (Egress Mirror to device $pf) pipe >> index 101 ref 1 bind 1 installed 180 sec used 169 sec >> Action statistics: >> Sent 256 bytes 4 pkt (dropped 0, overlimits 0 requeues 0) >> Sent software 0 bytes 0 pkt >> Sent hardware 256 bytes 4 pkt >> backlog 0b 0p requeues 0 >> >> action order 3: vlan pop pipe >> index 2 ref 1 bind 1 installed 180 sec used 180 sec >> Action statistics: >> Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) >> backlog 0b 0p requeues 0 >> >> # >> > > Hold on, did you intentionaly add that "protocol arp" there? Yes; if you go back to my `tc filter add` commands, I had one matching 'protocol arp' and the other 'protocol ipv4', and the latter is the one I then deleted. I'm not 100% sure why `tc filter show` prints it twice ('protocol' and 'eth_type'), though.
>> # tc -s actions get action mirred index 101 >> total acts 0 >> >> action order 1: mirred (Egress Mirror to device $pf) pipe >> index 101 ref 1 bind 1 installed 796 sec used 785 sec >> Action statistics: >> Sent 256 bytes 4 pkt (dropped 0, overlimits 0 requeues 0) >> Sent software 0 bytes 0 pkt >> Sent hardware 256 bytes 4 pkt >> backlog 0b 0p requeues 0 >> # > > Assuming in this case you added by value the actions? Bind and ref > are 1 each. Yes, the mirreds were added by value. > Possible an offload bug that was already in existence. Can you try the > same steps but without offloading and see if you see the same behavior? Running with 'skip_hw' instead of 'skip_sw', I *don't* see the same behaviour. -Ed