diff mbox series

[ovs-dev,v2,1/4] logical-fields: add rarp fields

Message ID DU0PR10MB5244D054CF242D65D1564C76EA389@DU0PR10MB5244.EURPRD10.PROD.OUTLOOK.COM
State Superseded
Headers show
Series Send Rarps for ipv6 router lsp | expand

Checks

Context Check Description
ovsrobot/apply-robot warning apply and check: warning
ovsrobot/github-robot-_Build_and_Test fail github build: failed
ovsrobot/github-robot-_ovn-kubernetes success github build: passed

Commit Message

Felix Huettner Nov. 3, 2022, 9:45 a.m. UTC
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.

Acked-by: Numan Siddique <numans@ovn.org>
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(-)

--
2.38.1
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>.
diff mbox series

Patch

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>