bundle: Allow OFPP_NONE in bundle actions.
authorEthan Jackson <ethan@nicira.com>
Wed, 26 Oct 2011 23:10:26 +0000 (16:10 -0700)
committerEthan Jackson <ethan@nicira.com>
Thu, 27 Oct 2011 17:53:37 +0000 (10:53 -0700)
This patch special cases OFPP_NONE to be always up in bundle
actions.  Presumably, if a controller put OFPP_NONE in their bundle
action, they want it to be an available choice.

This patch also adds documentation to the bundle action about slave
liveness.

include/openflow/nicira-ext.h
ofproto/ofproto-dpif.c

index aeb1a31c8d3bd3f60916c740363e316273260267..ad6dd116358003cb9f4811a110eebf333a5ea7ba 100644 (file)
@@ -936,6 +936,13 @@ OFP_ASSERT(sizeof(struct nx_action_autopath) == 24);
  * slave.  If the switch does not support the specified 'algorithm' parameter,
  * it should reject the action.
  *
+ * Several algorithms take into account liveness when selecting slaves.  The
+ * liveness of a slave is implementation defined (with one exception), but will
+ * generally take into account things like its carrier status and the results
+ * of any link monitoring protocols which happen to be running on it.  In order
+ * to give controllers a place-holder value, the OFPP_NONE port is always
+ * considered live.
+ *
  * Some slave selection strategies require the use of a hash function, in which
  * case the 'fields' and 'basis' parameters should be populated.  The 'fields'
  * parameter (one of NX_HASH_FIELDS_*) designates which parts of the flow to
index b53452d14703d89c7f680d2a616983196a7ab67c..39b83ef3b0da5229f14172d3195bec73d11625bb 100644 (file)
@@ -4047,6 +4047,7 @@ slave_enabled_cb(uint16_t ofp_port, void *ofproto_)
     case OFPP_FLOOD:
     case OFPP_ALL:
     case OFPP_LOCAL:
+    case OFPP_NONE:
         return true;
     case OFPP_CONTROLLER: /* Not supported by the bundle action. */
         return false;