blob: bb3990c6fa44d5e383901824655c28befe6798d0 [file] [log] [blame]
Matus Fabianf468e232016-12-02 06:00:53 -08001/* Hey Emacs use -*- mode: C -*- */
2/*
3 * Copyright (c) 2016 Cisco and/or its affiliates.
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/** \brief Reply to l2_xconnect_dump
18 @param context - sender context which was passed in the request
19 @param rx_sw_if_index - Receive interface index
20 @param tx_sw_if_index - Transmit interface index
21 */
22define l2_xconnect_details
23{
24 u32 context;
25 u32 rx_sw_if_index;
26 u32 tx_sw_if_index;
27};
28
29/** \brief Dump L2 XConnects
30 @param client_index - opaque cookie to identify the sender
31 @param context - sender context, to match reply w/ request
32*/
33define l2_xconnect_dump
34{
35 u32 client_index;
36 u32 context;
37};
38
Ole Troan01384fe2017-05-12 11:55:35 +020039/** \brief l2 fib table details structure
Pavel Kotucek0f971d82017-01-03 10:48:54 +010040 @param bd_id - the l2 fib / bridge domain table id
41 @param mac - the entry's mac address
42 @param sw_if_index - index of the interface
43 @param static_mac - the entry is statically configured.
44 @param filter_mac - the entry is a mac filter entry.
45 @param bvi_mac - the mac address is a bridge virtual interface
46*/
Ole Troan01384fe2017-05-12 11:55:35 +020047define l2_fib_table_details
Pavel Kotucek0f971d82017-01-03 10:48:54 +010048{
49 u32 context;
50 u32 bd_id;
51 u64 mac;
52 u32 sw_if_index;
53 u8 static_mac;
54 u8 filter_mac;
55 u8 bvi_mac;
56};
57
58/** \brief Dump l2 fib (aka bridge domain) table
59 @param client_index - opaque cookie to identify the sender
60 @param bd_id - the l2 fib / bridge domain table identifier
61*/
62define l2_fib_table_dump
63{
64 u32 client_index;
65 u32 context;
66 u32 bd_id;
67};
68
69/** \brief L2 fib clear table request, clear all mac entries in the l2 fib
70 @param client_index - opaque cookie to identify the sender
71 @param context - sender context, to match reply w/ request
72*/
Dave Barach11b8dbf2017-04-24 10:46:54 -040073autoreply define l2_fib_clear_table
Pavel Kotucek0f971d82017-01-03 10:48:54 +010074{
75 u32 client_index;
76 u32 context;
77};
78
Eyal Bari7537e712017-04-27 14:07:55 +030079/** \brief L2 FIB flush all entries
80 @param client_index - opaque cookie to identify the sender
81 @param context - sender context, to match reply w/ request
82*/
83autoreply define l2fib_flush_all
84{
85 u32 client_index;
86 u32 context;
87};
88
Eyal Barif24991c2017-04-05 05:33:21 +030089/** \brief L2 FIB flush bridge domain entries
90 @param client_index - opaque cookie to identify the sender
91 @param context - sender context, to match reply w/ request
92 @param bd_id - the entry's bridge domain id
93*/
Dave Barach11b8dbf2017-04-24 10:46:54 -040094autoreply define l2fib_flush_bd
Eyal Barif24991c2017-04-05 05:33:21 +030095{
96 u32 client_index;
97 u32 context;
98 u32 bd_id;
99};
100
Eyal Barif24991c2017-04-05 05:33:21 +0300101/** \brief L2 FIB flush interface entries
102 @param client_index - opaque cookie to identify the sender
103 @param context - sender context, to match reply w/ request
104 @param bd_id - the entry's bridge domain id
105*/
Dave Barach11b8dbf2017-04-24 10:46:54 -0400106autoreply define l2fib_flush_int
Eyal Barif24991c2017-04-05 05:33:21 +0300107{
108 u32 client_index;
109 u32 context;
110 u32 sw_if_index;
111};
112
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100113/** \brief L2 FIB add entry request
114 @param client_index - opaque cookie to identify the sender
115 @param context - sender context, to match reply w/ request
116 @param mac - the entry's mac address
117 @param bd_id - the entry's bridge domain id
118 @param sw_if_index - the interface
119 @param is_add - If non zero add the entry, else delete it
120 @param static_mac -
121 @param filter_mac -
122*/
Dave Barach11b8dbf2017-04-24 10:46:54 -0400123autoreply define l2fib_add_del
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100124{
125 u32 client_index;
126 u32 context;
127 u64 mac;
128 u32 bd_id;
129 u32 sw_if_index;
130 u8 is_add;
131 u8 static_mac;
132 u8 filter_mac;
133 u8 bvi_mac;
134};
135
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100136/** \brief Set L2 flags request !!! TODO - need more info, feature bits in l2_input.h
137 @param client_index - opaque cookie to identify the sender
138 @param context - sender context, to match reply w/ request
139 @param sw_if_index - interface
140 @param is_set - if non-zero, set the bits, else clear them
141 @param feature_bitmap - non-zero bits to set or clear
142*/
143define l2_flags
144{
145 u32 client_index;
146 u32 context;
147 u32 sw_if_index;
148 u8 is_set;
149 u32 feature_bitmap;
150};
151
152/** \brief Set L2 bits response
153 @param context - sender context, to match reply w/ request
154 @param retval - return code for the set l2 bits request
155*/
156define l2_flags_reply
157{
158 u32 context;
159 i32 retval;
160 u32 resulting_feature_bitmap;
161};
162
Eyal Barifead6702017-04-04 04:46:32 +0300163/** \brief L2 bridge domain set mac age
164 @param client_index - opaque cookie to identify the sender
165 @param context - sender context, to match reply w/ request
166 @param bd_id - the bridge domain to create
167 @param mac_age - mac aging time in min, 0 for disabled
168*/
Dave Barach11b8dbf2017-04-24 10:46:54 -0400169autoreply define bridge_domain_set_mac_age
Eyal Barifead6702017-04-04 04:46:32 +0300170{
171 u32 client_index;
172 u32 context;
173 u32 bd_id;
174 u8 mac_age;
175};
176
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100177/** \brief L2 bridge domain add or delete request
178 @param client_index - opaque cookie to identify the sender
179 @param context - sender context, to match reply w/ request
180 @param bd_id - the bridge domain to create
181 @param flood - enable/disable bcast/mcast flooding in the bd
182 @param uu_flood - enable/disable uknown unicast flood in the bd
183 @param forward - enable/disable forwarding on all interfaces in the bd
184 @param learn - enable/disable learning on all interfaces in the bd
185 @param arp_term - enable/disable arp termination in the bd
186 @param mac_age - mac aging time in min, 0 for disabled
187 @param is_add - add or delete flag
188*/
Dave Barach11b8dbf2017-04-24 10:46:54 -0400189autoreply define bridge_domain_add_del
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100190{
191 u32 client_index;
192 u32 context;
193 u32 bd_id;
194 u8 flood;
195 u8 uu_flood;
196 u8 forward;
197 u8 learn;
198 u8 arp_term;
199 u8 mac_age;
200 u8 is_add;
201};
202
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100203/** \brief L2 bridge domain request operational state details
204 @param client_index - opaque cookie to identify the sender
205 @param context - sender context, to match reply w/ request
206 @param bd_id - the bridge domain id desired or ~0 to request all bds
207*/
208define bridge_domain_dump
209{
210 u32 client_index;
211 u32 context;
212 u32 bd_id;
213};
214
Ole Troan01384fe2017-05-12 11:55:35 +0200215/** \brief L2 bridge domain sw interface operational state response
216 @param bd_id - the bridge domain id
217 @param sw_if_index - sw_if_index in the domain
218 @param shg - split horizon group for the interface
219*/
220typeonly manual_print manual_endian define bridge_domain_sw_if
221{
222 u32 context;
223 u32 sw_if_index;
224 u8 shg;
225};
226
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100227/** \brief L2 bridge domain operational state response
228 @param bd_id - the bridge domain id
229 @param flood - bcast/mcast flooding state on all interfaces in the bd
230 @param uu_flood - uknown unicast flooding state on all interfaces in the bd
231 @param forward - forwarding state on all interfaces in the bd
232 @param learn - learning state on all interfaces in the bd
233 @param arp_term - arp termination state on all interfaces in the bd
234 @param mac_age - mac aging time in min, 0 for disabled
235 @param n_sw_ifs - number of sw_if_index's in the domain
236*/
Ole Troan01384fe2017-05-12 11:55:35 +0200237manual_print manual_endian define bridge_domain_details
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100238{
239 u32 context;
240 u32 bd_id;
241 u8 flood;
242 u8 uu_flood;
243 u8 forward;
244 u8 learn;
245 u8 arp_term;
246 u8 mac_age;
247 u32 bvi_sw_if_index;
248 u32 n_sw_ifs;
Ole Troan01384fe2017-05-12 11:55:35 +0200249 vl_api_bridge_domain_sw_if_t sw_if_details[n_sw_ifs];
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100250};
251
252/** \brief Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD,
253 L2_UU_FLOOD, or L2_ARP_TERM) request
254 @param client_index - opaque cookie to identify the sender
255 @param context - sender context, to match reply w/ request
256 @param bd_id - the bridge domain to set the flags for
257 @param is_set - if non-zero, set the flags, else clear them
258 @param feature_bitmap - bits that are non-zero to set or clear
259*/
260define bridge_flags
261{
262 u32 client_index;
263 u32 context;
264 u32 bd_id;
265 u8 is_set;
266 u32 feature_bitmap;
267};
268
269/** \brief Set bridge flags response
270 @param context - sender context, to match reply w/ request
271 @param retval - return code for the set bridge flags request
272 @param resulting_feature_bitmap - the feature bitmap value after the request is implemented
273*/
274define bridge_flags_reply
275{
276 u32 context;
277 i32 retval;
278 u32 resulting_feature_bitmap;
279};
280
Pavel Kotucekadec5872017-01-25 08:50:53 +0100281/** \brief L2 interface vlan tag rewrite configure request
282 @param client_index - opaque cookie to identify the sender
283 @param context - sender context, to match reply w/ request
284 @param sw_if_index - interface the operation is applied to
285 @param vtr_op - Choose from l2_vtr_op_t enum values
286 @param push_dot1q - first pushed flag dot1q id set, else dot1ad
287 @param tag1 - Needed for any push or translate vtr op
288 @param tag2 - Needed for any push 2 or translate x-2 vtr ops
289*/
Dave Barach11b8dbf2017-04-24 10:46:54 -0400290autoreply define l2_interface_vlan_tag_rewrite
Pavel Kotucekadec5872017-01-25 08:50:53 +0100291{
292 u32 client_index;
293 u32 context;
294 u32 sw_if_index;
295 u32 vtr_op;
296 u32 push_dot1q; // ethertype of first pushed tag is dot1q/dot1ad
297 u32 tag1; // first pushed tag
298 u32 tag2; // second pushed tag
299};
300
Pavel Kotucekadec5872017-01-25 08:50:53 +0100301/** \brief L2 interface pbb tag rewrite configure request
302 @param client_index - opaque cookie to identify the sender
303 @param context - sender context, to match reply w/ request
304 @param sw_if_index - interface the operation is applied to
305 @param vtr_op - Choose from l2_vtr_op_t enum values
306 @param inner_tag - needed for translate_qinq vtr op only
307 @param outer_tag - needed for translate_qinq vtr op only
308 @param b_dmac - B-tag remote mac address, needed for any push or translate_qinq vtr op
309 @param b_smac - B-tag local mac address, needed for any push or translate qinq vtr op
310 @param b_vlanid - B-tag vlanid, needed for any push or translate qinq vtr op
311 @param i_sid - I-tag service id, needed for any push or translate qinq vtr op
312*/
Dave Barach11b8dbf2017-04-24 10:46:54 -0400313autoreply define l2_interface_pbb_tag_rewrite
Pavel Kotucekadec5872017-01-25 08:50:53 +0100314{
315 u32 client_index;
316 u32 context;
317 u32 sw_if_index;
318 u32 vtr_op;
319 u16 outer_tag;
320 u8 b_dmac[6];
321 u8 b_smac[6];
322 u16 b_vlanid;
323 u32 i_sid;
324};
325
Pavel Kotucek0f971d82017-01-03 10:48:54 +0100326/*
327 * Local Variables:
328 * eval: (c-set-style "gnu")
329 * End:
330 */