Thanks Frode, looks good to me.

Acked-by: Mark Michelson <mmich...@redhat.com>

On 3/18/24 07:43, Frode Nordahl wrote:
The current code puts the contents of the ``ipb6_ra_pd_list``
option verbatim into the ``ipv6_ra_prefixes`` option.

This does not work, because the ``ipv6_ra_pd_list`` is not an IPv6
prefix, but a string composed of aid:prefix/length, and as a
consequence the controller would log a message like this:

     pinctrl|WARN|Invalid IPv6 prefixes: 18578:fde8:7f0f:11fe:8::/62

Northd already parses the ``ipv6_ra_pd_list`` string and
populates the ``ipv6_prefix`` list of strings.

Make use of the ``ipv6_prefix`` list of strings to populate the
``ipv6_ra_prefixes`` option.

Fixes: 5c1d2d230773 ("northd: Add logical flows for dhcpv6 pfd parsing")
Signed-off-by: Frode Nordahl <fnord...@ubuntu.com>
---
  northd/northd.c | 7 ++++---
  1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/northd/northd.c b/northd/northd.c
index 1839b7d8b..7fdd722b5 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -11378,10 +11378,11 @@ copy_ra_to_sb(struct ovn_port *op, const char 
*address_mode)
          ds_put_format(&s, "%s/%u ", addrs->network_s, addrs->plen);
      }
- const char *ra_pd_list = smap_get(&op->sb->options, "ipv6_ra_pd_list");
-    if (ra_pd_list) {
-        ds_put_cstr(&s, ra_pd_list);
+    for (int i = 0; i < op->nbrp->n_ipv6_prefix; i++) {
+        ds_put_cstr(&s, op->nbrp->ipv6_prefix[i]);
+        ds_put_char(&s, ' ');
      }
+
      /* Remove trailing space */
      ds_chomp(&s, ' ');
      smap_add(&options, "ipv6_ra_prefixes", ds_cstr(&s));

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to