wdp-xflow: Remove wx structure from global list when closing.
[sliver-openvswitch.git] / lib / xfif-provider.h
index 31de0ac..baf8bc9 100644 (file)
 #define XFIF_PROVIDER_H 1
 
 /* Provider interface to xfifs, which provide an interface to an Open vSwitch
- * datapath. */
+ * datapath.  A datapath is a collection of physical or virtual ports that are
+ * exposed over OpenFlow as a single switch.  Datapaths and the collections of
+ * ports that they contain may be fixed or dynamic. */
 
 #include <assert.h>
+#include "openflow/openflow.h"
 #include "xfif.h"
+#include "util.h"
 
 #ifdef  __cplusplus
 extern "C" {
@@ -300,10 +304,18 @@ struct xfif_class {
      * packet. */
     int (*set_sflow_probability)(struct xfif *xfif, uint32_t probability);
 
+    /* Translates OpenFlow queue ID 'queue_id' (in host byte order) into a
+     * priority value for use in the XFLOWAT_SET_PRIORITY action in
+     * '*priority'. */
+    int (*queue_to_priority)(const struct xfif *xfif, uint32_t queue_id,
+                             uint32_t *priority);
+
     /* Attempts to receive a message from 'xfif'.  If successful, stores the
      * message into '*packetp'.  The message, if one is received, must begin
-     * with 'struct xflow_msg' as a header.  Only messages of the types
-     * selected with the recv_set_mask member function should be received.
+     * with 'struct xflow_msg' as a header, and must have at least
+     * XFIF_RECV_MSG_PADDING bytes of headroom (allocated using
+     * e.g. ofpbuf_reserve()).  Only messages of the types selected with the
+     * set_listen_mask member function should be received.
      *
      * This function must not block.  If no message is ready to be received
      * when it is called, it should return EAGAIN without blocking. */