@@ -343,6 +343,8 @@ lib_libopenvswitch_la_SOURCES += \
lib/dpif-netlink.h \
lib/tc.h \
lib/tc.c \
+ lib/hw-offload-policy.c \
+ lib/hw-offload-policy.h \
lib/dpif-hw-acc.c \
lib/dpif-hw-acc.h \
lib/if-notifier.c \
@@ -42,6 +42,8 @@
#include "openvswitch/vlog.h"
#include "netdev-provider.h"
#include "dpif-hw-acc.h"
+#include "tc.h"
+#include "hw-offload-policy.h"
VLOG_DEFINE_THIS_MODULE(dpif_hw_acc);
@@ -31,5 +31,4 @@ struct ufid_handle_hash_data {
struct netdev *netdev;
odp_port_t port;
};
-
#endif
new file mode 100644
@@ -0,0 +1,23 @@
+#include <config.h>
+#include "dpif.h"
+#include "openvswitch/types.h"
+#include "hw-offload-policy.h"
+#include "dpif-hw-acc.h"
+
+enum dpif_hw_offload_policy
+HW_offload_test_put(struct dpif_hw_acc *dpif, struct dpif_flow_put *put)
+{
+ return DPIF_HW_OFFLOAD_ONLY;
+}
+
+enum dpif_hw_offload_policy
+HW_offload_test_del(struct dpif *dpif, struct dpif_flow_del *del)
+{
+ return DPIF_HW_OFFLOAD_ONLY;
+}
+
+enum dpif_hw_offload_policy
+HW_offload_test_get(struct dpif *dpif, struct dpif_flow_get *get)
+{
+ return DPIF_HW_OFFLOAD_ONLY;
+}
new file mode 100644
@@ -0,0 +1,20 @@
+
+#ifndef HW_OFFLOAD_POLICY_H
+#define HW_OFFLOAD_POLICY_H 1
+
+#include "dpif-hw-acc.h"
+
+enum dpif_hw_offload_policy {
+ DPIF_HW_NO_OFFLAOAD = 1, /* no offload - SW only */
+ DPIF_HW_OFFLOAD_ONLY, /* if fails fall back to SW */
+ DPIF_HW_OFFLOAD_SPLIT,
+};
+
+enum dpif_hw_offload_policy HW_offload_test_put(struct dpif_hw_acc *dpif,
+ struct dpif_flow_put *put);
+enum dpif_hw_offload_policy HW_offload_test_del(struct dpif *dpif,
+ struct dpif_flow_del *del);
+enum dpif_hw_offload_policy HW_offload_test_get(struct dpif *dpif,
+ struct dpif_flow_get *get);
+
+#endif