<div dir="ltr">Hello folks,<div><br></div><div>I have a project to handle packets with Geneve header and TLV options.<br>The goal is to detect ingress packet from interface ens192 with specific value in Geneve TLV option, then forward to interface ens224.<br>But following setup does not seem to work. No packets meet the criteria.</div><div>If I remove tun_metadata0 from the flow, all packets passed. </div><div>Please help!</div><div><div><br>1. OVS setup<br><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote>===========<br><div>  sudo ovs-vsctl add-br br0<br><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote>  sudo ovs-vsctl  add-port br0 ens192 <br>  sudo ovs-vsctl  add-port br0 ens224<br><br>  sudo ovs-ofctl add-tlv-map br0 &quot;{class=0x0104,type=0x26,len=24}-&gt;tun_metadata0&quot;<br>  sudo ovs-ofctl add-flow br0 in_port=ens192,tun_metadata0=0x00860103000034011000000000505695157b004080000035/0x00000000000000FF18000000000000000000FFC000000000,actions=ens224<br><br>2. Ingress packet to ens192 captured by wireshark.<br>======================================<br>Frame 4: 1074 bytes on wire (8592 bits), 1074 bytes captured (8592 bits)<br>Ethernet II, Src: Vmware_95:15:7b (00:50:56:95:15:7b), Dst: Vmware_95:15:7b (00:50:56:95:15:7b)<br>Internet Protocol Version 4, Src: 10.0.0.1, Dst: 10.0.0.2<br>User Datagram Protocol, Src Port: 6081, Dst Port: 6081<br>Generic Network Virtualization Encapsulation, VNI: 0x000000<br>    Version: 0<br>    Length: 28 bytes<br>    Flags: 0x00<br>    Protocol Type: Transparent Ethernet bridging (0x6558)<br>    Virtual Network Identifier (VNI): 0x000000<br>    Options: (28 bytes)<br>        Unknown, Class: VMware (0x0104) Type: 0x26 (Non-critical)<br>            Class: VMware (0x0104)<br>            Type: 0x26 (Non-critical)<br>            Length: 28 bytes           (it&#39;s 0x06 in packet)<br>            Option Data: 00860103 00003401 10000000 00505695 157b0040 80000035<br>Ethernet II, Src: Vmware_95:c2:6c (00:50:56:95:c2:6c), Dst: Vmware_95:a9:26 (00:50:56:95:a9:26)<br>Internet Protocol Version 4, Src: 10.100.1.11, Dst: 10.100.1.10<br>User Datagram Protocol, Src Port: 1024, Dst Port: 1024<br>Data (954 bytes)<br>    Data: 000000000000000000000000000000000000000000000000…<br>    [Length: 954]<br><br>3. Flow status</div>===========<br>ubuntu@yan-svm-ubuntu:~$ sudo ovs-ofctl dump-tlv-map br0<br>NXT_TLV_TABLE_REPLY (xid=0x2):<br> max option space=256 max fields=64<br> allocated option space=24<br><br> mapping table:<br> class  type    length  match field<br> -----  ----    ------  -----------<br> 0x104  0x26    24      tun_metadata0<br>ubuntu@yan-svm-ubuntu:~$<br>ubuntu@yan-svm-ubuntu:~$ sudo ovs-ofctl dump-flows br0<br> cookie=0x0, duration=11.974s, table=0, n_packets=0, n_bytes=0, tun_metadata0=0x110000000000000000000004000000000/0xff18000000000000000000ffc000000000,in_port=ens192 actions=output:ens224<br>ubuntu@yan-svm-ubuntu:~$ <br><div><br></div></div></div><div>4. Remove tun_metadata0 from flow</div><div>============================</div><div>ubuntu@yan-svm-ubuntu:~$ sudo ovs-ofctl del-flows br0<br></div><div>ubuntu@yan-svm-ubuntu:~$ sudo ovs-ofctl add-flow br0 in_port=ens192,actions=ens224<br></div><div>ubuntu@yan-svm-ubuntu:~$ sudo ovs-ofctl dump-tlv-map br0<br>NXT_TLV_TABLE_REPLY (xid=0x2):<br> max option space=256 max fields=64<br> allocated option space=24<br><br> mapping table:<br> class  type    length  match field<br> -----  ----    ------  -----------<br> 0x104  0x26    24      tun_metadata0<br>ubuntu@yan-svm-ubuntu:~$<br>ubuntu@yan-svm-ubuntu:~$ sudo ovs-ofctl dump-flows br0<br> cookie=0x0, duration=17.224s, table=0, n_packets=2952, n_bytes=2469636, in_port=ens192 actions=output:ens224<br>ubuntu@yan-svm-ubuntu:~</div><div><br></div><div>Thank you,</div><div>Yan</div><div><br></div></div>