blob: 26c6903290769c784c4cb73f0e0f931baff74915 [file] [log] [blame]
Pavel Kotucekd9aad292017-01-25 08:45:38 +01001/*
2 * Copyright (c) 2015-2016 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/** \brief Add/del policer
17 @param client_index - opaque cookie to identify the sender
18 @param context - sender context, to match reply w/ request
19 @param is_add - add policer if non-zero, else delete
20 @param name - policer name
21 @param cir - CIR
22 @param eir - EIR
23 @param cb - Committed Burst
24 @param eb - Excess or Peak Burst
25 @param rate_type - rate type
26 @param round_type - rounding type
27 @param type - policer algorithm
28 @param color_aware - 0=color-blind, 1=color-aware
29 @param conform_action_type - conform action type
30 @param conform_dscp - DSCP for conform mar-and-transmit action
31 @param exceed_action_type - exceed action type
32 @param exceed_dscp - DSCP for exceed mar-and-transmit action
33 @param violate_action_type - violate action type
34 @param violate_dscp - DSCP for violate mar-and-transmit action
35*/
36define policer_add_del
37{
38 u32 client_index;
39 u32 context;
40
41 u8 is_add;
42 u8 name[64];
43 u32 cir;
44 u32 eir;
45 u64 cb;
46 u64 eb;
47 u8 rate_type;
48 u8 round_type;
49 u8 type;
50 u8 color_aware;
51 u8 conform_action_type;
52 u8 conform_dscp;
53 u8 exceed_action_type;
54 u8 exceed_dscp;
55 u8 violate_action_type;
56 u8 violate_dscp;
57};
58
59/** \brief Add/del policer response
60 @param context - sender context, to match reply w/ request
61 @param retval - return value for request
62 @param policer_index - for add, returned index of the new policer
63*/
64define policer_add_del_reply
65{
66 u32 context;
67 i32 retval;
68 u32 policer_index;
69};
70
71/** \brief Get list of policers
72 @param client_index - opaque cookie to identify the sender
73 @param context - sender context, to match reply w/ request
74 @param match_name_valid - if 0 request all policers otherwise use match_name
75 @param match_name - policer name
76*/
77define policer_dump
78{
79 u32 client_index;
80 u32 context;
81
82 u8 match_name_valid;
83 u8 match_name[64];
84};
85
86/** \brief Policer operational state response.
87 @param context - sender context, to match reply w/ request
88 @param name - policer name
89 @param cir - CIR
90 @param eir - EIR
91 @param cb - Committed Burst
92 @param eb - Excess or Peak Burst
93 @param rate_type - rate type
94 @param round_type - rounding type
95 @param type - policer algorithm
96 @param conform_action_type - conform action type
97 @param conform_dscp - DSCP for conform mar-and-transmit action
98 @param exceed_action_type - exceed action type
99 @param exceed_dscp - DSCP for exceed mar-and-transmit action
100 @param violate_action_type - violate action type
101 @param violate_dscp - DSCP for violate mar-and-transmit action
102 @param single_rate - 1 = single rate policer, 0 = two rate policer
103 @param color_aware - for hierarchical policing
104 @param scale - power-of-2 shift amount for lower rates
105 @param cir_tokens_per_period - number of tokens for each period
106 @param pir_tokens_per_period - number of tokens for each period for 2-rate policer
107 @param current_limit - current limit
108 @param current_bucket - current bucket
109 @param extended_limit - extended limit
110 @param extended_bucket - extended bucket
111 @param last_update_time - last update time
112*/
113define policer_details
114{
115 u32 context;
116
117 u8 name[64];
118 u32 cir;
119 u32 eir;
120 u64 cb;
121 u64 eb;
122 u8 rate_type;
123 u8 round_type;
124 u8 type;
125 u8 conform_action_type;
126 u8 conform_dscp;
127 u8 exceed_action_type;
128 u8 exceed_dscp;
129 u8 violate_action_type;
130 u8 violate_dscp;
131 u8 single_rate;
132 u8 color_aware;
133 u32 scale;
134 u32 cir_tokens_per_period;
135 u32 pir_tokens_per_period;
136 u32 current_limit;
137 u32 current_bucket;
138 u32 extended_limit;
139 u32 extended_bucket;
140 u64 last_update_time;
141};
142
143/*
144 * Local Variables:
145 * eval: (c-set-style "gnu")
146 * End:
147 */