blob: 18f5bb42fad00897f93de3850edddf70bea32241 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2010-2015 Intel Corporation
*/
#ifndef __INCLUDE_PIPELINE_FLOW_CLASSIFICATION_BE_H__
#define __INCLUDE_PIPELINE_FLOW_CLASSIFICATION_BE_H__
#include "pipeline_common_be.h"
enum pipeline_fc_msg_req_type {
PIPELINE_FC_MSG_REQ_FLOW_ADD = 0,
PIPELINE_FC_MSG_REQ_FLOW_ADD_BULK,
PIPELINE_FC_MSG_REQ_FLOW_DEL,
PIPELINE_FC_MSG_REQ_FLOW_ADD_DEFAULT,
PIPELINE_FC_MSG_REQ_FLOW_DEL_DEFAULT,
PIPELINE_FC_MSG_REQS,
};
#ifndef PIPELINE_FC_FLOW_KEY_MAX_SIZE
#define PIPELINE_FC_FLOW_KEY_MAX_SIZE 64
#endif
/*
* MSG ADD
*/
struct pipeline_fc_add_msg_req {
enum pipeline_msg_req_type type;
enum pipeline_fc_msg_req_type subtype;
uint8_t key[PIPELINE_FC_FLOW_KEY_MAX_SIZE];
uint32_t port_id;
uint32_t flow_id;
};
struct pipeline_fc_add_msg_rsp {
int status;
int key_found;
void *entry_ptr;
};
/*
* MSG ADD BULK
*/
struct pipeline_fc_add_bulk_flow_req {
uint8_t key[PIPELINE_FC_FLOW_KEY_MAX_SIZE];
uint32_t port_id;
uint32_t flow_id;
};
struct pipeline_fc_add_bulk_flow_rsp {
int key_found;
void *entry_ptr;
};
struct pipeline_fc_add_bulk_msg_req {
enum pipeline_msg_req_type type;
enum pipeline_fc_msg_req_type subtype;
struct pipeline_fc_add_bulk_flow_req *req;
struct pipeline_fc_add_bulk_flow_rsp *rsp;
uint32_t n_keys;
};
struct pipeline_fc_add_bulk_msg_rsp {
uint32_t n_keys;
};
/*
* MSG DEL
*/
struct pipeline_fc_del_msg_req {
enum pipeline_msg_req_type type;
enum pipeline_fc_msg_req_type subtype;
uint8_t key[PIPELINE_FC_FLOW_KEY_MAX_SIZE];
};
struct pipeline_fc_del_msg_rsp {
int status;
int key_found;
};
/*
* MSG ADD DEFAULT
*/
struct pipeline_fc_add_default_msg_req {
enum pipeline_msg_req_type type;
enum pipeline_fc_msg_req_type subtype;
uint32_t port_id;
};
struct pipeline_fc_add_default_msg_rsp {
int status;
void *entry_ptr;
};
/*
* MSG DEL DEFAULT
*/
struct pipeline_fc_del_default_msg_req {
enum pipeline_msg_req_type type;
enum pipeline_fc_msg_req_type subtype;
};
struct pipeline_fc_del_default_msg_rsp {
int status;
};
extern struct pipeline_be_ops pipeline_flow_classification_be_ops;
#endif
|