aboutsummaryrefslogtreecommitdiff
path: root/ofproto
diff options
context:
space:
mode:
authorEthan Jackson <ethan@nicira.com>2011-10-03 12:51:02 -0700
committerEthan Jackson <ethan@nicira.com>2011-10-03 13:12:52 -0700
commitf11c28c43f7a0260a7a9dcb26f369c53792b15ca (patch)
tree9c184f963a297fa075711be2688e38fd8c8c3237 /ofproto
parent029b26f3924eb7c28614a1c3df284e817904daf1 (diff)
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.
Diffstat (limited to 'ofproto')
-rw-r--r--ofproto/ofproto-dpif.c2
1 files changed, 2 insertions, 0 deletions
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) {