Test geneve options mirror flow doesn't add redundant mirror.

Signed-off-by: Roi Dayan <r...@nvidia.com>
---

Notes:
    v3:
    - use AT_CHECK for configuring the mirror port.
    
    v2:
    - add dot in title.

 tests/tunnel.at | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/tests/tunnel.at b/tests/tunnel.at
index ddeb66bc9fb7..7e7116711a6f 100644
--- a/tests/tunnel.at
+++ b/tests/tunnel.at
@@ -1279,3 +1279,32 @@ AT_CHECK([tail -1 stdout], [0],
 
 OVS_VSWITCHD_STOP
 AT_CLEANUP
+
+AT_SETUP([tunnel - Geneve metadata mirror])
+OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=geneve \
+                    options:remote_ip=1.1.1.1 ofport_request=1 \
+                    -- add-port br0 p2 -- set Interface p2 type=dummy \
+                    ofport_request=2 ofport_request=2])
+OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
+add_of_ports br0 90
+AT_CHECK([ovs-vsctl \
+        set Bridge br0 mirrors=@m --\
+        --id=@p90 get Port p90 --\
+        --id=@m create Mirror name=mymirror select_all=true output_port=@p90], 
[0], [stdout])
+
+AT_CHECK([ovs-ofctl add-tlv-map br0 
"{class=0xffff,type=0,len=4}->tun_metadata0,{class=0xffff,type=1,len=8}->tun_metadata1"])
+
+AT_DATA([flows.txt], [dnl
+in_port=2,actions=set_field:0xa->tun_metadata0,set_field:0x1234567890abcdef->tun_metadata1,1
+tun_metadata0=0xb/0xf,actions=2
+])
+AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
+
+flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
+AT_CHECK([ovs-appctl ofproto/trace ovs-dummy "$flow"], [0], [stdout])
+AT_CHECK_UNQUOTED([tail -1 stdout], [0],
+  [Datapath actions: 
90,set(tunnel(dst=1.1.1.1,ttl=64,tp_dst=6081,geneve({class=0xffff,type=0,len=4,0xa}{class=0xffff,type=0x1,len=8,0x1234567890abcdef}),flags(df))),6081
+])
+
+OVS_VSWITCHD_STOP
+AT_CLEANUP
-- 
2.38.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to