API refactoring : l2, mpls, sr
[vpp.git] / src / vnet / l2 / l2.api
1 /* 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  */
22 define 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 */
33 define l2_xconnect_dump
34 {
35   u32 client_index;
36   u32 context;
37 };
38
39 /** \brief l2 fib table entry structure
40     @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 */
47 define l2_fib_table_entry
48 {
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 */
62 define 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 */
73 define l2_fib_clear_table
74 {
75   u32 client_index;
76   u32 context;
77 };
78
79 /** \brief L2 fib clear table response
80     @param context - sender context, to match reply w/ request
81     @param retval - return code for the request
82 */
83 define l2_fib_clear_table_reply
84 {
85   u32 context;
86   i32 retval;
87 };
88
89 /** \brief L2 FIB add entry request
90     @param client_index - opaque cookie to identify the sender
91     @param context - sender context, to match reply w/ request
92     @param mac - the entry's mac address
93     @param bd_id - the entry's bridge domain id
94     @param sw_if_index - the interface
95     @param is_add - If non zero add the entry, else delete it
96     @param static_mac - 
97     @param filter_mac -
98 */
99 define l2fib_add_del
100 {
101   u32 client_index;
102   u32 context;
103   u64 mac;
104   u32 bd_id;
105   u32 sw_if_index;
106   u8 is_add;
107   u8 static_mac;
108   u8 filter_mac;
109   u8 bvi_mac;
110 };
111
112 /** \brief L2 FIB add entry response
113     @param context - sender context, to match reply w/ request
114     @param retval - return code for the add l2fib entry request
115 */
116 define l2fib_add_del_reply
117 {
118   u32 context;
119   i32 retval;
120 };
121
122 /** \brief Set L2 flags request !!! TODO - need more info, feature bits in l2_input.h
123     @param client_index - opaque cookie to identify the sender
124     @param context - sender context, to match reply w/ request
125     @param sw_if_index - interface 
126     @param is_set - if non-zero, set the bits, else clear them
127     @param feature_bitmap - non-zero bits to set or clear
128 */
129 define l2_flags
130 {
131   u32 client_index;
132   u32 context;
133   u32 sw_if_index;
134   u8 is_set;
135   u32 feature_bitmap;
136 };
137
138 /** \brief Set L2 bits response
139     @param context - sender context, to match reply w/ request
140     @param retval - return code for the set l2 bits request
141 */
142 define l2_flags_reply
143 {
144   u32 context;
145   i32 retval;
146   u32 resulting_feature_bitmap;
147 };
148
149 /** \brief L2 bridge domain add or delete request
150     @param client_index - opaque cookie to identify the sender
151     @param context - sender context, to match reply w/ request
152     @param bd_id - the bridge domain to create
153     @param flood - enable/disable bcast/mcast flooding in the bd
154     @param uu_flood - enable/disable uknown unicast flood in the bd
155     @param forward - enable/disable forwarding on all interfaces in the bd
156     @param learn - enable/disable learning on all interfaces in the bd
157     @param arp_term - enable/disable arp termination in the bd
158     @param mac_age - mac aging time in min, 0 for disabled
159     @param is_add - add or delete flag
160 */
161 define bridge_domain_add_del
162 {
163   u32 client_index;
164   u32 context;
165   u32 bd_id;
166   u8 flood;
167   u8 uu_flood;
168   u8 forward;
169   u8 learn;
170   u8 arp_term;
171   u8 mac_age;
172   u8 is_add;
173 };
174
175 /** \brief L2 bridge domain add or delete response
176     @param context - sender context, to match reply w/ request
177     @param retval - return code for the set bridge flags request
178 */
179 define bridge_domain_add_del_reply
180 {
181   u32 context;
182   i32 retval;
183 };
184
185 /** \brief L2 bridge domain request operational state details
186     @param client_index - opaque cookie to identify the sender
187     @param context - sender context, to match reply w/ request
188     @param bd_id - the bridge domain id desired or ~0 to request all bds
189 */
190 define bridge_domain_dump
191 {
192   u32 client_index;
193   u32 context;
194   u32 bd_id;
195 };
196
197 /** \brief L2 bridge domain operational state response
198     @param bd_id - the bridge domain id
199     @param flood - bcast/mcast flooding state on all interfaces in the bd
200     @param uu_flood - uknown unicast flooding state on all interfaces in the bd
201     @param forward - forwarding state on all interfaces in the bd
202     @param learn - learning state on all interfaces in the bd
203     @param arp_term - arp termination state on all interfaces in the bd
204     @param mac_age - mac aging time in min, 0 for disabled
205     @param n_sw_ifs - number of sw_if_index's in the domain
206 */
207 define bridge_domain_details
208 {
209   u32 context;
210   u32 bd_id;
211   u8 flood;
212   u8 uu_flood;
213   u8 forward;
214   u8 learn;
215   u8 arp_term;
216   u8 mac_age;
217   u32 bvi_sw_if_index;
218   u32 n_sw_ifs;
219 };
220
221 /** \brief L2 bridge domain sw interface operational state response
222     @param bd_id - the bridge domain id
223     @param sw_if_index - sw_if_index in the domain
224     @param shg - split horizon group for the interface
225 */
226 define bridge_domain_sw_if_details
227 {
228   u32 context;
229   u32 bd_id;
230   u32 sw_if_index;
231   u8 shg;
232 };
233
234 /** \brief Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD, 
235     L2_UU_FLOOD, or L2_ARP_TERM) request
236     @param client_index - opaque cookie to identify the sender
237     @param context - sender context, to match reply w/ request
238     @param bd_id - the bridge domain to set the flags for
239     @param is_set - if non-zero, set the flags, else clear them
240     @param feature_bitmap - bits that are non-zero to set or clear
241 */
242 define bridge_flags
243 {
244   u32 client_index;
245   u32 context;
246   u32 bd_id;
247   u8 is_set;
248   u32 feature_bitmap;
249 };
250
251 /** \brief Set bridge flags response
252     @param context - sender context, to match reply w/ request
253     @param retval - return code for the set bridge flags request
254     @param resulting_feature_bitmap - the feature bitmap value after the request is implemented
255 */
256 define bridge_flags_reply
257 {
258   u32 context;
259   i32 retval;
260   u32 resulting_feature_bitmap;
261 };
262
263 /*
264  * Local Variables:
265  * eval: (c-set-style "gnu")
266  * End:
267  */