Hi,
I've been playing around with OVS 1.1 and have a question regarding
emergency mode specified in OpenFlow 1.0.
The specification says,
4.3 Connection Interruption
...
All normal entries are deleted when entering emergency mode.
but if I set a flow with no timeout, it doesn't get deleted.
I went through the code below, and IIUC, fail_open_run() in connmgr.c
seems to clean up the remaining flows, but I realized that
mgr->fail_open was NULL in my environmet.
void
connmgr_run(struct connmgr *mgr,
void (*handle_openflow)(struct ofconn *, struct ofpbuf *ofp_msg))
{
...
/* Fail-open maintenance. Do this after processing the ofconns since
* fail-open checks the status of the controller rconn. */
if (mgr->fail_open) {
fail_open_run(mgr->fail_open);
}
I'm running the controller in secure mode, and IIUC, the following
code in connmgr.c seems to responsible for this behavior.
static void
update_fail_open(struct connmgr *mgr)
{
if (connmgr_has_controllers(mgr)
&& mgr->fail_mode == OFPROTO_FAIL_STANDALONE) {
if (!mgr->fail_open) {
mgr->fail_open = fail_open_create(mgr->ofproto, mgr);
}
} else {
fail_open_destroy(mgr->fail_open);
mgr->fail_open = NULL;
}
}
Is OVS intended to delete flows only if the controller is running in
standalone mode, and not in secure mode? If so, what are the reasons
for it?
Thanks,
Yoshi
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev