diff options
author | lic121 <lic121@chinatelecom.cn> | 2022-05-26 14:25:14 +0000 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2022-06-28 12:06:23 +0200 |
commit | 29a2f183543b2d5bdcc958952afdcc55f520ad2d (patch) | |
tree | 5a3dc29449ec21f5b9e5848efea66796e96dbaa4 /ofproto | |
parent | 509c32765a3218aafc44b036b1fd4e8e6c4d2d51 (diff) | |
download | openvswitch-29a2f183543b2d5bdcc958952afdcc55f520ad2d.tar.gz |
ofproto-dpif: Avoid unneccesary backer revalidation.
If lldp didn't change, we are not supposed to trigger backer
revalidation.
Without this patch, bridge_reconfigure() always trigger udpif
revalidator because of lldp.
Signed-off-by: lic121 <lic121@chinatelecom.cn>
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
Co-authored-by: Eelco Chaudron <echaudro@redhat.com>
Acked-by: Paolo Valerio <pvalerio@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'ofproto')
-rw-r--r-- | ofproto/ofproto-dpif.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 28dcb8f86..f9562dee8 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -2491,11 +2491,11 @@ set_lldp(struct ofport *ofport_, { struct ofport_dpif *ofport = ofport_dpif_cast(ofport_); struct ofproto_dpif *ofproto = ofproto_dpif_cast(ofport->up.ofproto); + bool old_enable = lldp_is_enabled(ofport->lldp); int error = 0; - if (cfg) { + if (cfg && !smap_is_empty(cfg)) { if (!ofport->lldp) { - ofproto->backer->need_revalidate = REV_RECONFIGURE; ofport->lldp = lldp_create(ofport->up.netdev, ofport_->mtu, cfg); } @@ -2507,6 +2507,9 @@ set_lldp(struct ofport *ofport_, } else if (ofport->lldp) { lldp_unref(ofport->lldp); ofport->lldp = NULL; + } + + if (lldp_is_enabled(ofport->lldp) != old_enable) { ofproto->backer->need_revalidate = REV_RECONFIGURE; } |