New upstream version 18.02
[deb_dpdk.git] / lib / librte_port / rte_port_sched.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2014 Intel Corporation
3  */
4
5 #ifndef __INCLUDE_RTE_PORT_SCHED_H__
6 #define __INCLUDE_RTE_PORT_SCHED_H__
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 /**
13  * @file
14  * RTE Port Hierarchical Scheduler
15  *
16  * sched_reader: input port built on top of pre-initialized rte_sched_port
17  * sched_writer: output port built on top of pre-initialized rte_sched_port
18  *
19  ***/
20
21 #include <stdint.h>
22
23 #include <rte_sched.h>
24
25 #include "rte_port.h"
26
27 /** sched_reader port parameters */
28 struct rte_port_sched_reader_params {
29         /** Underlying pre-initialized rte_sched_port */
30         struct rte_sched_port *sched;
31 };
32
33 /** sched_reader port operations */
34 extern struct rte_port_in_ops rte_port_sched_reader_ops;
35
36 /** sched_writer port parameters */
37 struct rte_port_sched_writer_params {
38         /** Underlying pre-initialized rte_sched_port */
39         struct rte_sched_port *sched;
40
41         /** Recommended burst size. The actual burst size can be bigger or
42         smaller than this value. */
43         uint32_t tx_burst_sz;
44 };
45
46 /** sched_writer port operations */
47 extern struct rte_port_out_ops rte_port_sched_writer_ops;
48
49 #ifdef __cplusplus
50 }
51 #endif
52
53 #endif