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 dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev