FD.io VPP  v21.06
Vector Packet Processing
policer.api
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2020 Cisco and/or its affiliates.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at:
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 option version = "2.0.0";
17 
18 import "vnet/interface_types.api";
19 import "vnet/policer/policer_types.api";
20 
21 /** \brief policer bind: Associate/disassociate a policer with a worker thread.
22  @param client_index - opaque cookie to identify the sender
23  @param context - sender context, to match reply w/ request
24  @param name - policer name to bind
25  @param worker_index - the worker thread to bind to
26  @param bind_enable - Associate/disassociate
27 */
28 autoreply define policer_bind
29 {
32 
33  string name[64];
36 };
37 
38 /** \brief policer input: Apply policer as an input feature.
39  @param client_index - opaque cookie to identify the sender
40  @param context - sender context, to match reply w/ request
41  @param name - policer name
42  @param sw_if_index - interface to apply the policer
43  @param apply - Apply/remove
44 */
45 autoreply define policer_input
46 {
49 
50  string name[64];
51  vl_api_interface_index_t sw_if_index;
52  bool apply;
53 };
54 
55 /** \brief Add/del policer
56  @param client_index - opaque cookie to identify the sender
57  @param context - sender context, to match reply w/ request
58  @param is_add - add policer if non-zero, else delete
59  @param name - policer name
60  @param cir - CIR
61  @param eir - EIR
62  @param cb - Committed Burst
63  @param eb - Excess or Peak Burst
64  @param rate_type - rate type
65  @param round_type - rounding type
66  @param type - policer algorithm
67  @param color_aware - 0=color-blind, 1=color-aware
68  @param conform_action - conform action
69  @param exceed_action - exceed action type
70  @param violate_action - violate action type
71 */
73 {
76 
77  bool is_add;
78  string name[64];
83  vl_api_sse2_qos_rate_type_t rate_type;
84  vl_api_sse2_qos_round_type_t round_type;
85  vl_api_sse2_qos_policer_type_t type;
87  vl_api_sse2_qos_action_t conform_action;
88  vl_api_sse2_qos_action_t exceed_action;
89  vl_api_sse2_qos_action_t violate_action;
90 };
91 
92 /** \brief Add/del policer response
93  @param context - sender context, to match reply w/ request
94  @param retval - return value for request
95  @param policer_index - for add, returned index of the new policer
96 */
97 define policer_add_del_reply
98 {
102 };
103 
104 /** \brief Get list of policers
105  @param client_index - opaque cookie to identify the sender
106  @param context - sender context, to match reply w/ request
107  @param match_name_valid - if 0 request all policers otherwise use match_name
108  @param match_name - policer name
109 */
110 define policer_dump
111 {
114 
116  string match_name[64];
117 };
118 
119 /** \brief Policer operational state response.
120  @param context - sender context, to match reply w/ request
121  @param name - policer name
122  @param cir - CIR
123  @param eir - EIR
124  @param cb - Committed Burst
125  @param eb - Excess or Peak Burst
126  @param rate_type - rate type
127  @param round_type - rounding type
128  @param type - policer algorithm
129  @param conform_action - conform action
130  @param exceed_action - exceed action
131  @param violate_action - violate action
132  @param single_rate - 1 = single rate policer, 0 = two rate policer
133  @param color_aware - for hierarchical policing
134  @param scale - power-of-2 shift amount for lower rates
135  @param cir_tokens_per_period - number of tokens for each period
136  @param pir_tokens_per_period - number of tokens for each period for 2-rate policer
137  @param current_limit - current limit
138  @param current_bucket - current bucket
139  @param extended_limit - extended limit
140  @param extended_bucket - extended bucket
141  @param last_update_time - last update time
142 */
143 define policer_details
144 {
146 
147  string name[64];
152  vl_api_sse2_qos_rate_type_t rate_type;
153  vl_api_sse2_qos_round_type_t round_type;
154  vl_api_sse2_qos_policer_type_t type;
155  vl_api_sse2_qos_action_t conform_action;
156  vl_api_sse2_qos_action_t exceed_action;
157  vl_api_sse2_qos_action_t violate_action;
168 };
169 
170 /*
171  * Local Variables:
172  * eval: (c-set-style "gnu")
173  * End:
174  */
vl_api_sse2_qos_policer_type_t type
Definition: policer.api:85
int policer_input(u8 *name, u32 sw_if_index, bool apply)
Definition: policer.c:169
unsigned long u64
Definition: types.h:89
option version
Definition: policer.api:16
vl_api_sse2_qos_rate_type_t rate_type
Definition: policer.api:152
string name[64]
Definition: fib.api:25
unsigned int u32
Definition: types.h:88
vl_api_sse2_qos_action_t exceed_action
Definition: policer.api:88
vl_api_interface_index_t sw_if_index
Definition: policer.api:51
vl_api_sse2_qos_policer_type_t type
Definition: policer.api:154
clib_error_t * policer_add_del(vlib_main_t *vm, u8 *name, qos_pol_cfg_params_st *cfg, u32 *policer_index, u8 is_add)
Definition: policer.c:53
vl_api_sse2_qos_action_t violate_action
Definition: policer.api:89
vl_api_sse2_qos_action_t conform_action
Definition: policer.api:87
signed int i32
Definition: types.h:77
vl_api_sse2_qos_round_type_t round_type
Definition: policer.api:84
vl_api_sse2_qos_rate_type_t rate_type
Definition: policer.api:83
vl_api_sse2_qos_action_t exceed_action
Definition: policer.api:156
vl_api_sse2_qos_action_t violate_action
Definition: policer.api:157
vl_api_sse2_qos_action_t conform_action
Definition: policer.api:155
vl_api_sse2_qos_round_type_t round_type
Definition: policer.api:153