datapath: Remove implementation of port groups.
[sliver-openvswitch.git] / lib / dpif-provider.h
index 5cbefeb..5d651c6 100644 (file)
@@ -183,20 +183,6 @@ struct dpif_class {
      * value other than EAGAIN. */
     void (*port_poll_wait)(const struct dpif *dpif);
 
-    /* Stores in 'ports' the port numbers of up to 'n' ports that belong to
-     * 'group' in 'dpif'.  Returns the number of ports in 'group' (not the
-     * number stored), if successful, otherwise a negative errno value. */
-    int (*port_group_get)(const struct dpif *dpif, int group,
-                          uint16_t ports[], int n);
-
-    /* Changes port group 'group' in 'dpif' to consist of the 'n' ports whose
-     * numbers are given in 'ports'.
-     *
-     * Use the get_stats member function to obtain the number of supported port
-     * groups. */
-    int (*port_group_set)(struct dpif *dpif, int group,
-                          const uint16_t ports[], int n);
-
     /* For each flow 'flow' in the 'n' flows in 'flows':
      *
      * - If a flow matching 'flow->key' exists in 'dpif':
@@ -262,14 +248,8 @@ struct dpif_class {
     int (*flow_list)(const struct dpif *dpif, struct odp_flow flows[], int n);
 
     /* Performs the 'n_actions' actions in 'actions' on the Ethernet frame
-     * specified in 'packet'.
-     *
-     * Pretends that the frame was originally received on the port numbered
-     * 'in_port'.  This affects only ODPAT_OUTPUT_GROUP actions, which will not
-     * send a packet out their input port.  Specify the number of an unused
-     * port (e.g. UINT16_MAX is currently always unused) to avoid this
-     * behavior. */
-    int (*execute)(struct dpif *dpif, uint16_t in_port,
+     * specified in 'packet'. */
+    int (*execute)(struct dpif *dpif,
                    const union odp_action actions[], int n_actions,
                    const struct ofpbuf *packet);
 
@@ -302,6 +282,12 @@ struct dpif_class {
      * packet. */
     int (*set_sflow_probability)(struct dpif *dpif, uint32_t probability);
 
+    /* Translates OpenFlow queue ID 'queue_id' (in host byte order) into a
+     * priority value for use in the ODPAT_SET_PRIORITY action in
+     * '*priority'. */
+    int (*queue_to_priority)(const struct dpif *dpif, uint32_t queue_id,
+                             uint32_t *priority);
+
     /* Attempts to receive a message from 'dpif'.  If successful, stores the
      * message into '*packetp'.  The message, if one is received, must begin
      * with 'struct odp_msg' as a header, and must have at least
@@ -318,14 +304,6 @@ struct dpif_class {
     void (*recv_wait)(struct dpif *dpif);
 };
 
-/* Minimum number of bytes of headroom for a packet returned by the 'recv'
- * member function (see above).  This headroom allows "struct odp_msg" to be
- * replaced by "struct ofp_packet_in" without copying the buffer. */
-#define DPIF_RECV_MSG_PADDING (sizeof(struct ofp_packet_in) \
-                               - sizeof(struct odp_msg))
-BUILD_ASSERT_DECL(sizeof(struct ofp_packet_in) > sizeof(struct odp_msg));
-BUILD_ASSERT_DECL(DPIF_RECV_MSG_PADDING % 4 == 0);
-
 extern const struct dpif_class dpif_linux_class;
 extern const struct dpif_class dpif_netdev_class;