Setting tag sliver-openvswitch-2.2.90-1
[sliver-openvswitch.git] / ofproto / fail-open.h
index 900d587..725b82d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2009 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010, 2011, 2013 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 #include <stdbool.h>
 #include <stdint.h>
-#include "flow.h"
+#include "ofproto-provider.h"
 
+struct connmgr;
 struct fail_open;
 struct ofproto;
-struct rconn;
-struct switch_status;
 
 /* Priority of the rule added by the fail-open subsystem when a switch enters
  * fail-open mode.  This priority value uniquely identifies a fail-open flow
  * (OpenFlow priorities max out at 65535 and nothing else in Open vSwitch
- * creates flows with this priority). */
-#define FAIL_OPEN_PRIORITY 70000
+ * creates flows with this priority).  And "f0" is mnemonic for "fail open"! */
+#define FAIL_OPEN_PRIORITY 0xf0f0f0
 
-struct fail_open *fail_open_create(struct ofproto *, int trigger_duration,
-                                   struct switch_status *,
-                                   struct rconn *controller);
-void fail_open_set_trigger_duration(struct fail_open *, int trigger_duration);
-void fail_open_destroy(struct fail_open *);
+/* Returns true if 'rule' is one created by the "fail open" logic, false
+ * otherwise. */
+static inline bool
+is_fail_open_rule(const struct rule *rule)
+{
+    return rule->cr.priority == FAIL_OPEN_PRIORITY;
+}
+
+struct fail_open *fail_open_create(struct ofproto *, struct connmgr *);
+void fail_open_destroy(struct fail_open *) OVS_EXCLUDED(ofproto_mutex);
 void fail_open_wait(struct fail_open *);
 bool fail_open_is_active(const struct fail_open *);
 void fail_open_run(struct fail_open *);
-void fail_open_maybe_recover(struct fail_open *);
-void fail_open_flushed(struct fail_open *);
+void fail_open_maybe_recover(struct fail_open *) OVS_EXCLUDED(ofproto_mutex);
+void fail_open_flushed(struct fail_open *) OVS_EXCLUDED(ofproto_mutex);
 
 #endif /* fail-open.h */