We need to be able to handle rarp fields in order to ensure we can
handle rarp messages we send ourselves.
This will be used by the next patch in the series.

Signed-off-by: Felix Huettner <felix.huettner@mail.schwarz>
---
 lib/logical-fields.c | 8 ++++++++
 lib/ovn-util.c       | 2 +-
 ovn-sb.xml           | 2 ++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/lib/logical-fields.c b/lib/logical-fields.c
index ed3ec62e1..fc131791e 100644
--- a/lib/logical-fields.c
+++ b/lib/logical-fields.c
@@ -261,6 +261,14 @@ ovn_init_symtab(struct shash *symtab)
     expr_symtab_add_field(symtab, "arp.tpa", MFF_ARP_TPA, "arp", false);
     expr_symtab_add_field(symtab, "arp.tha", MFF_ARP_THA, "arp", false);

+    /* RARPs use the same layout as arp packets -> use the same field_id */
+    expr_symtab_add_predicate(symtab, "rarp", "eth.type == 0x8035");
+    expr_symtab_add_field(symtab, "rarp.op", MFF_ARP_OP, "rarp", false);
+    expr_symtab_add_field(symtab, "rarp.spa", MFF_ARP_SPA, "rarp", false);
+    expr_symtab_add_field(symtab, "rarp.sha", MFF_ARP_SHA, "rarp", false);
+    expr_symtab_add_field(symtab, "rarp.tpa", MFF_ARP_TPA, "rarp", false);
+    expr_symtab_add_field(symtab, "rarp.tha", MFF_ARP_THA, "rarp", false);
+
     expr_symtab_add_predicate(symtab, "nd",
               "icmp6.type == {135, 136} && icmp6.code == 0 && ip.ttl == 255");
     expr_symtab_add_predicate(symtab, "nd_ns",
diff --git a/lib/ovn-util.c b/lib/ovn-util.c
index 5dca72714..597625a29 100644
--- a/lib/ovn-util.c
+++ b/lib/ovn-util.c
@@ -817,7 +817,7 @@ ip_address_and_port_from_lb_key(const char *key, char 
**ip_address,
  *
  * This value is also used to handle some backward compatibility during
  * upgrading. It should never decrease or rewind. */
-#define OVN_INTERNAL_MINOR_VER 4
+#define OVN_INTERNAL_MINOR_VER 5

 /* Returns the OVN version. The caller must free the returned value. */
 char *
diff --git a/ovn-sb.xml b/ovn-sb.xml
index 315d60853..42e6fa3ee 100644
--- a/ovn-sb.xml
+++ b/ovn-sb.xml
@@ -1052,6 +1052,7 @@
         <li><code>ip4.src</code> <code>ip4.dst</code></li>
         <li><code>ip6.src</code> <code>ip6.dst</code> 
<code>ip6.label</code></li>
         <li><code>arp.op</code> <code>arp.spa</code> <code>arp.tpa</code> 
<code>arp.sha</code> <code>arp.tha</code></li>
+        <li><code>rarp.op</code> <code>rarp.spa</code> <code>rarp.tpa</code> 
<code>rarp.sha</code> <code>rarp.tha</code></li>
         <li><code>tcp.src</code> <code>tcp.dst</code> 
<code>tcp.flags</code></li>
         <li><code>udp.src</code> <code>udp.dst</code></li>
         <li><code>sctp.src</code> <code>sctp.dst</code></li>
@@ -1115,6 +1116,7 @@
         <li><code>ip.later_frag</code> expands to <code>ip.frag[1]</code></li>
         <li><code>ip.first_frag</code> expands to <code>ip.is_frag &amp;&amp; 
!ip.later_frag</code></li>
         <li><code>arp</code> expands to <code>eth.type == 0x806</code></li>
+        <li><code>rarp</code> expands to <code>eth.type == 0x8035</code></li>
         <li><code>nd</code> expands to <code>icmp6.type == {135, 136} 
&amp;&amp; icmp6.code == 0 &amp;&amp; ip.ttl == 255</code></li>
         <li><code>nd_ns</code> expands to <code>icmp6.type == 135 &amp;&amp; 
icmp6.code == 0 &amp;&amp; ip.ttl == 255</code></li>
         <li><code>nd_na</code> expands to <code>icmp6.type == 136 &amp;&amp; 
icmp6.code == 0 &amp;&amp; ip.ttl == 255</code></li>
--
2.38.0
Diese E Mail enthält möglicherweise vertrauliche Inhalte und ist nur für die 
Verwertung durch den vorgesehenen Empfänger bestimmt. Sollten Sie nicht der 
vorgesehene Empfänger sein, setzen Sie den Absender bitte unverzüglich in 
Kenntnis und löschen diese E Mail. Hinweise zum Datenschutz finden Sie 
hier<https://www.datenschutz.schwarz>.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to