[ovs-dev] [PATCH] bfd: Increase configuration efficiency.
Ben Pfaff
blp at nicira.com
Wed Aug 14 20:49:05 UTC 2013
I don't understand bfd well enough to understand this comment. Do you
mean that this patch fixes such a bug or that it introduces such a
bug?
Thanks,
Ben.
On Tue, Aug 13, 2013 at 04:33:42PM -0700, Alex Wang wrote:
> This can be a bug, when we configure bfd:min_rx and bfd:decay_min_rx
> together. (at the time we are in decay)
>
>
>
> On Tue, Aug 13, 2013 at 4:51 PM, Alex Wang <alexw at nicira.com> wrote:
>
> > Currently, when there are multiple bfd configuration changes,
> > the bfd_poll() will only update one change at a time with the
> > other side. This commit moves the call to bfd_poll() at the
> > end of configuration processing function, so that bfd_poll()
> > will update all configuration changes together.
> >
> > Signed-off-by: Alex Wang <alexw at nicira.com>
> > ---
> > lib/bfd.c | 11 +++++++----
> > 1 file changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/lib/bfd.c b/lib/bfd.c
> > index 7c7c0b7..de85c7f 100644
> > --- a/lib/bfd.c
> > +++ b/lib/bfd.c
> > @@ -261,7 +261,7 @@ bfd_configure(struct bfd *bfd, const char *name, const
> > struct smap *cfg)
> > static atomic_uint16_t udp_src = ATOMIC_VAR_INIT(0);
> >
> > long long int min_tx, min_rx;
> > - bool cpath_down;
> > + bool cpath_down, need_poll = false;
> > const char *hwaddr;
> > uint8_t ea[ETH_ADDR_LEN];
> >
> > @@ -315,7 +315,7 @@ bfd_configure(struct bfd *bfd, const char *name, const
> > struct smap *cfg)
> > || (!bfd_in_poll(bfd) && bfd->cfg_min_tx < bfd->min_tx)) {
> > bfd->min_tx = bfd->cfg_min_tx;
> > }
> > - bfd_poll(bfd);
> > + need_poll = true;
> > }
> >
> > min_rx = smap_get_int(cfg, "min_rx", 1000);
> > @@ -326,7 +326,7 @@ bfd_configure(struct bfd *bfd, const char *name, const
> > struct smap *cfg)
> > || (!bfd_in_poll(bfd) && bfd->cfg_min_rx > bfd->min_rx)) {
> > bfd->min_rx = bfd->cfg_min_rx;
> > }
> > - bfd_poll(bfd);
> > + need_poll = true;
> > }
> >
> > cpath_down = smap_get_bool(cfg, "cpath_down", false);
> > @@ -335,7 +335,7 @@ bfd_configure(struct bfd *bfd, const char *name, const
> > struct smap *cfg)
> > if (bfd->diag == DIAG_NONE || bfd->diag == DIAG_CPATH_DOWN) {
> > bfd_set_state(bfd, bfd->state, DIAG_NONE);
> > }
> > - bfd_poll(bfd);
> > + need_poll = true;
> > }
> >
> > hwaddr = smap_get(cfg, "bfd_dst_mac");
> > @@ -347,6 +347,9 @@ bfd_configure(struct bfd *bfd, const char *name, const
> > struct smap *cfg)
> > bfd->eth_dst_set = false;
> > }
> >
> > + if (need_poll) {
> > + bfd_poll(bfd);
> > + }
> > ovs_mutex_unlock(&mutex);
> > return bfd;
> > }
> > --
> > 1.7.9.5
> >
> >
More information about the dev
mailing list