On Fri, Aug 6, 2021 at 5:11 AM Mark Gray <[email protected]> wrote:
>
> On 06/08/2021 10:01, Lorenzo Bianconi wrote:
> > Introduce some log messages in IPv6 Prefix delegation processing useful
> > for debugging
> >
> > Signed-off-by: Lorenzo Bianconi <[email protected]>
> > ---
> >  controller/pinctrl.c | 25 ++++++++++++++++++++++++-
> >  1 file changed, 24 insertions(+), 1 deletion(-)
> >
> > diff --git a/controller/pinctrl.c b/controller/pinctrl.c
> > index 52c68b9e9..503d5686c 100644
> > --- a/controller/pinctrl.c
> > +++ b/controller/pinctrl.c
> > @@ -771,6 +771,13 @@ pinctrl_parse_dhcpv6_advt(struct rconn *swconn, const 
> > struct flow *ip_flow,
> >
> >      pfd->state = PREFIX_REQUEST;
> >
> > +    static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(20, 40);
> > +    char ip6_s[INET6_ADDRSTRLEN + 1];
> > +    if (ipv6_string_mapped(ip6_s, &ip_flow->ipv6_src)) {
> > +        VLOG_DBG_RL(&rl, "Received DHCPv6 advt from %s with aid %d"
> > +                    " sending DHCPv6 request", ip6_s, aid);
> > +    }
> > +
> >      uint64_t packet_stub[256 / 8];
> >      struct dp_packet packet;
> >
> > @@ -939,6 +946,14 @@ pinctrl_parse_dhcpv6_reply(struct dp_packet *pkt_in,
> >          in_dhcpv6_data += opt_len;
> >      }
> >      if (status) {
> > +        static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(20, 40);
> > +        char prefix[INET6_ADDRSTRLEN + 1];
> > +        char ip6_s[INET6_ADDRSTRLEN + 1];
> > +        if (ipv6_string_mapped(ip6_s, &ip_flow->ipv6_src) &&
> > +            ipv6_string_mapped(prefix, &ipv6)) {
> > +            VLOG_DBG_RL(&rl, "Received DHCPv6 reply from %s with prefix 
> > %s/%d"
> > +                        " aid %d", ip6_s, prefix, prefix_len, aid);
> > +        }
> >          pinctrl_prefixd_state_handler(ip_flow, ipv6, aid, eth->eth_src,
> >                                        in_ip->ip6_src, prefix_len, t1, t2,
> >                                        plife_time, vlife_time, uuid, 
> > uuid_len);
> > @@ -1228,19 +1243,27 @@ fill_ipv6_prefix_state(struct ovsdb_idl_txn 
> > *ovnsb_idl_txn,
> >                  pfd->prefix = in6addr_any;
> >              }
> >          } else if (pfd->state == PREFIX_PENDING && ovnsb_idl_txn) {
> > +            static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(20, 
> > 40);
> >              char prefix_str[INET6_ADDRSTRLEN + 1] = {};
> >              struct smap options;
> >
> > +            if (!ipv6_string_mapped(prefix_str, &pfd->prefix)) {
> > +                goto out;
> > +            }
> > +            VLOG_DBG_RL(&rl, "updating port_binding for %s with prefix 
> > %s/%d"
> > +                        " aid %d", pb->logical_port, prefix_str, pfd->plen,
> > +                        pfd->aid);
> > +
> >              pfd->state = PREFIX_DONE;
> >              pfd->last_complete = time_msec();
> >              pfd->next_announce = pfd->last_complete + pfd->t1;
> > -            ipv6_string_mapped(prefix_str, &pfd->prefix);
> >              smap_clone(&options, &pb->options);
> >              smap_add_format(&options, "ipv6_ra_pd_list", "%d:%s/%d",
> >                              pfd->aid, prefix_str, pfd->plen);
> >              sbrec_port_binding_set_options(pb, &options);
> >              smap_destroy(&options);
> >          }
> > +out:
> >          pfd->last_used = time_msec();
> >          destroy_lport_addresses(&c_addrs);
> >      }
> >
> Acked-by: Mark D. Gray <[email protected]>

Thanks.  I applied both the patches of this series to the main branch.

I did the below changes in patch 1 before applying.

-------------------------------------------------------------------
diff --git a/controller/pinctrl.c b/controller/pinctrl.c
index 63900617b..e537c4af1 100644
--- a/controller/pinctrl.c
+++ b/controller/pinctrl.c
@@ -771,9 +771,9 @@ pinctrl_parse_dhcpv6_advt(struct rconn *swconn,
const struct flow *ip_flow,

     pfd->state = PREFIX_REQUEST;

-    static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(20, 40);
     char ip6_s[INET6_ADDRSTRLEN + 1];
     if (ipv6_string_mapped(ip6_s, &ip_flow->ipv6_src)) {
+        static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(20, 40);
         VLOG_DBG_RL(&rl, "Received DHCPv6 advt from %s with aid %d"
                     " sending DHCPv6 request", ip6_s, aid);
     }
@@ -946,11 +946,11 @@ pinctrl_parse_dhcpv6_reply(struct dp_packet *pkt_in,
         in_dhcpv6_data += opt_len;
     }
     if (status) {
-        static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(20, 40);
         char prefix[INET6_ADDRSTRLEN + 1];
         char ip6_s[INET6_ADDRSTRLEN + 1];
         if (ipv6_string_mapped(ip6_s, &ip_flow->ipv6_src) &&
             ipv6_string_mapped(prefix, &ipv6)) {
+            static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(20, 40);
             VLOG_DBG_RL(&rl, "Received DHCPv6 reply from %s with prefix %s/%d"
                         " aid %d", ip6_s, prefix, prefix_len, aid);
         }
@@ -1243,13 +1243,11 @@ fill_ipv6_prefix_state(struct ovsdb_idl_txn
*ovnsb_idl_txn,
                 pfd->prefix = in6addr_any;
             }
         } else if (pfd->state == PREFIX_PENDING && ovnsb_idl_txn) {
-            static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(20, 40);
             char prefix_str[INET6_ADDRSTRLEN + 1] = {};
-            struct smap options;
-
             if (!ipv6_string_mapped(prefix_str, &pfd->prefix)) {
                 goto out;
             }
+            static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(20, 40);
             VLOG_DBG_RL(&rl, "updating port_binding for %s with prefix %s/%d"
                         " aid %d", pb->logical_port, prefix_str, pfd->plen,
                         pfd->aid);
@@ -1257,6 +1255,7 @@ fill_ipv6_prefix_state(struct ovsdb_idl_txn
*ovnsb_idl_txn,
             pfd->state = PREFIX_DONE;
             pfd->last_complete = time_msec();
             pfd->next_announce = pfd->last_complete + pfd->t1;
+            struct smap options;
             smap_clone(&options, &pb->options);
             smap_add_format(&options, "ipv6_ra_pd_list", "%d:%s/%d",
                             pfd->aid, prefix_str, pfd->plen);

-----------

Numan


>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to