@@ -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",
@@ -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 *
@@ -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 && !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} && icmp6.code == 0 && ip.ttl == 255</code></li>
<li><code>nd_ns</code> expands to <code>icmp6.type == 135 && icmp6.code == 0 && ip.ttl == 255</code></li>
<li><code>nd_na</code> expands to <code>icmp6.type == 136 && icmp6.code == 0 && ip.ttl == 255</code></li>