Hi Abhiram,

It’s been there since your patch was committed to the repo.
I did a quick verification again, and it is:

git checkout 7539b4e45
<edit test>
git diff
diff --git a/tests/system-traffic.at b/tests/system-traffic.at
index 4a7fa49fc..b55d757bf 100644
--- a/tests/system-traffic.at
+++ b/tests/system-traffic.at
@@ -393,6 +393,9 @@ OVS_CHECK_GRE()
 OVS_CHECK_ERSPAN()

 OVS_TRAFFIC_VSWITCHD_START()
+
+ovs-vsctl --no-wait set Open_vSwitch . other_config:hw-offload=true
+
 ADD_BR([br-underlay])

make -j 32 check-kernel TESTSUITEFLAGS='-k "ping over erspan v1 tunnel" -v'
...
./system-traffic.at:417: ip netns exec at_ns0 sh << NS_EXEC_HEREDOC
ping -q -c 3 -i 0.3 -w 2 172.31.1.100 | grep "transmitted" | sed 's/time.*ms$/time 0ms/'
NS_EXEC_HEREDOC
./system-traffic.at:423: ip netns exec at_ns0 sh << NS_EXEC_HEREDOC
ping -s 1200 -i 0.3 -c 3 10.1.1.100 | grep "transmitted" | sed 's/time.*ms$/time 0ms/'
NS_EXEC_HEREDOC
--- -   2022-07-04 18:48:07.788952607 +0200
+++ /home/echaudron/Documents/Scratch/ovs/tests/system-kmod-testsuite.dir/at-groups/13/stdout 2022-07-04 18:48:07.785404896 +0200
@@ -1,2 +1,2 @@
-3 packets transmitted, 3 received, 0% packet loss, time 0ms
+3 packets transmitted, 1 received, 66.6667% packet loss, time 0ms
...


Can you please investigate? I know reverting the patch will not offload to TC, but it’s not working, so it’s better to not offload and work than to offload and not work ;)

//Eelco


On 4 Jul 2022, at 17:25, Abhiram RN wrote:

Hi Eelco,

I do remember testing with this. I don't have full logs as such. But from one of the mail I had sent out I found below logs (this is with the change of course) where it's offloaded to TC (PSB). [ Because there seems to be support needed in HW driver (which is not present) and hence flows are not offloaded to HW which is expected]. But as you can see flows are in *dp:tc*..
(I can see 39 packets... so it's not only the first one). Not sure if
anything got changed post that which might have caused this to fail now.

[root@rhos-nfv-09 ~]#  ovs-appctl dpctl/dump-flows -m
ufid:edb7d581-9f14-42df-9e50-69a4923e1dbd,
skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(enp4s0f0_0),packet_type(ns=0/0,id=0/0),eth(src=6a:62:68:b2:61:f6,dst=66:f0:e4:1e:2c:bb),eth_type(0x0800),ipv4(src=
0.0.0.0/0.0.0.0,dst=5.5.5.2/255.255.255.254,proto=0/0,tos=0/0x3,ttl=0/0,frag=no),
packets:39, bytes:3276, used:0.260s, *dp:tc*,
actions:set(tunnel(tun_id=0x0,src=10.10.10.1,dst=10.10.10.2,ttl=64,flags(key))),erspan_sys,enp4s0f0_1
ufid:519d8cfd-9821-467f-9f61-e2bf61cdde60,
skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(enp4s0f0_1),packet_type(ns=0/0,id=0/0),eth(src=66:f0:e4:1e:2c:bb,dst=6a:62:68:b2:61:f6),eth_type(0x0800),ipv4(src=
0.0.0.0/0.0.0.0,dst=5.5.5.2/255.255.255.254,proto=0/0,tos=0/0x3,ttl=0/0,frag=no),
packets:39, bytes:3276, used:0.260s, *dp:tc*,
actions:enp4s0f0_0,set(tunnel(tun_id=0x0,src=10.10.10.1,dst=10.10.10.2,ttl=64,flags(key))),erspan_sys
[root@rhos-nfv-09 ~]#

JFYI,
Without this change still flows won't get offloaded to TC. Below is the
error what I used to get and the flows used to be in *dp:ovs*
2022-02-25T14:33:04.134Z|00151|netdev_offload_tc|INFO|init: failed to get
ifindex for erspan0: Operation not supported
2022-02-25T14:33:04.134Z|00152|netdev_offload|INFO|erspan0: No suitable
flow API found.

Thanks & Regards,
Abhiram R N

On Mon, Jul 4, 2022 at 7:48 PM Eelco Chaudron <[email protected]> wrote:



On 5 Apr 2022, at 0:48, Ilya Maximets wrote:

On 3/23/22 14:01, Eelco Chaudron wrote:


On 23 Mar 2022, at 11:43, Abhiram R N wrote:

When enabling offload for ERSPAN we are seeing one error as below

netdev_offload_tc|INFO|init: failed to get ifindex for erspan0:
Operation not supported
netdev_offload|INFO|erspan0: No suitable flow API found.

Adding the NETDEV_VPORT_GET_IFINDEX to ERSPAN device resolves this
error

The change looks good to me, but there is no real unit test to verify
this, and I have no real setup to test this.

So based on a pure visible and compile only check:

Acked-by: Eelco Chaudron <[email protected]>

Signed-off-by: Abhiram R N <[email protected]>
---

I don't see why this can cause any problems or why this callback
wasn't set from the beginning, so applied.  Thanks!

Best regards, Ilya Maximets.

Hi Abhiram/Ilya,

Guess it takes a while but basic ping seems to be failing when offloading
to TC with t his change.

If you enable TC offload the following tests are failing on latest master:

datapath - ping over erspan v1 tunnel           FAILED (
system-traffic.at:467)
datapath - ping over erspan v2 tunnel           FAILED (
system-traffic.at:504)
datapath - ping over ip6erspan v1 tunnel        FAILED (
system-traffic.at:544)
datapath - ping over ip6erspan v2 tunnel        FAILED (
system-traffic.at:585)


For example the following diff causes the first test to fail with tc:


diff --git a/tests/system-traffic.at b/tests/system-traffic.at
index e16ea6027..fa6b84b4e 100644
--- a/tests/system-traffic.at
+++ b/tests/system-traffic.at
@@ -440,6 +440,9 @@ OVS_CHECK_GRE()
 OVS_CHECK_ERSPAN()

 OVS_TRAFFIC_VSWITCHD_START()
+
+ovs-vsctl --no-wait set Open_vSwitch . other_config:hw-offload=true
+
 ADD_BR([br-underlay])

 AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"])


I think it’s because we are not adding any of the erspan fields to the
offload tunnel encapsulated.


Abhiram, wondering if this was really working in your case, as it seems
only the first packet is passed on.

I guess we might need to undo this change, or you need to come up with a
fix for this.


Cheers,

Eelco



--
Always put yourself in others' shoes. If you feel that it hurts you, it
probably hurts the other person, too.

Regards
ABHIRAM
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to