From: Ethan Jackson Date: Mon, 3 Oct 2011 19:51:02 +0000 (-0700) Subject: ofproto-dpif: Revalidate on port additions and deletions. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f11c28c43f7a0260a7a9dcb26f369c53792b15ca;p=openvswitch ofproto-dpif: Revalidate on port additions and deletions. The addition of a new port to an ofproto-dpif may require revalidations in some cases. Notably if this new port is configured to participate in CFM, but a drop flow has already been installed in the datapath for CFM messages with the same in_port. Bug #7598. --- diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 761b5910..44c7e56d 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -758,6 +758,7 @@ port_construct(struct ofport *port_) struct ofport_dpif *port = ofport_dpif_cast(port_); struct ofproto_dpif *ofproto = ofproto_dpif_cast(port->up.ofproto); + ofproto->need_revalidate = true; port->odp_port = ofp_port_to_odp_port(port->up.ofp_port); port->bundle = NULL; port->cfm = NULL; @@ -778,6 +779,7 @@ port_destruct(struct ofport *port_) struct ofport_dpif *port = ofport_dpif_cast(port_); struct ofproto_dpif *ofproto = ofproto_dpif_cast(port->up.ofproto); + ofproto->need_revalidate = true; bundle_remove(port_); set_cfm(port_, NULL); if (ofproto->sflow) {