diff mbox series

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

Message ID DU0PR10MB52444A9C39D858313710A945EA2E9@DU0PR10MB5244.EURPRD10.PROD.OUTLOOK.COM
State Changes Requested
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 success github build: passed
ovsrobot/github-robot-_ovn-kubernetes success github build: passed

Commit Message

Felix Huettner Oct. 24, 2022, 10:47 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.

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.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>.

Comments

Numan Siddique Nov. 1, 2022, 9:35 p.m. UTC | #1
On Mon, Oct 24, 2022 at 6:47 AM Felix Hüttner via dev
<ovs-dev@openvswitch.org> wrote:
>
> 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>

Acked-by: Numan Siddique <numans@ovn.org>

Numan

> ---
>  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
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
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>