]> git.proxmox.com Git - mirror_ovs.git/blob - lib/netdev-dpdk.h
netdev-offload-tc: Use single 'once' variable for probing tc features
[mirror_ovs.git] / lib / netdev-dpdk.h
1 /*
2 * Copyright (c) 2014, 2015, 2016 Nicira, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #ifndef NETDEV_DPDK_H
18 #define NETDEV_DPDK_H
19
20 #include <config.h>
21
22 #include "openvswitch/compiler.h"
23
24 struct dp_packet;
25 struct netdev;
26
27 #ifdef DPDK_NETDEV
28
29 struct rte_flow;
30 struct rte_flow_error;
31 struct rte_flow_attr;
32 struct rte_flow_item;
33 struct rte_flow_action;
34 struct rte_flow_query_count;
35
36 void netdev_dpdk_register(void);
37 void free_dpdk_buf(struct dp_packet *);
38
39 bool netdev_dpdk_flow_api_supported(struct netdev *);
40
41 int
42 netdev_dpdk_rte_flow_destroy(struct netdev *netdev,
43 struct rte_flow *rte_flow,
44 struct rte_flow_error *error);
45 struct rte_flow *
46 netdev_dpdk_rte_flow_create(struct netdev *netdev,
47 const struct rte_flow_attr *attr,
48 const struct rte_flow_item *items,
49 const struct rte_flow_action *actions,
50 struct rte_flow_error *error);
51 int
52 netdev_dpdk_rte_flow_query_count(struct netdev *netdev,
53 struct rte_flow *rte_flow,
54 struct rte_flow_query_count *query,
55 struct rte_flow_error *error);
56 int
57 netdev_dpdk_get_port_id(struct netdev *netdev);
58
59 #else
60
61 static inline void
62 netdev_dpdk_register(void)
63 {
64 /* Nothing */
65 }
66 static inline void
67 free_dpdk_buf(struct dp_packet *buf OVS_UNUSED)
68 {
69 /* Nothing */
70 }
71
72 #endif
73
74 #endif /* netdev-dpdk.h */