span: API cleanup
[vpp.git] / src / vnet / span / span.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 option version = "2.0.0";
18
19 import "vnet/interface_types.api";
20
21 enum span_state
22 {
23         SPAN_STATE_API_DISABLED = 0,
24         SPAN_STATE_API_RX = 1,
25         SPAN_STATE_API_TX = 2,
26         SPAN_STATE_API_RX_TX = 3,
27 };
28
29  /** \brief Enable/Disable span to mirror traffic from one interface to another
30     @param client_index - opaque cookie to identify the sender
31     @param context - sender context which was passed in the request
32     @param sw_if_index_from - interface to be mirrored
33     @param sw_if_index_to - interface where the traffic is mirrored
34     @param state - 0 = disabled, 1 = rx enabled, 2 = tx enabled, 3 tx & rx enabled
35     @param is_l2 - 0 = mirror at hw device level, 1 = mirror at L2
36 */
37 autoreply define sw_interface_span_enable_disable {
38     u32 client_index;
39     u32 context;
40     vl_api_interface_index_t sw_if_index_from;
41     vl_api_interface_index_t sw_if_index_to;
42     vl_api_span_state_t state;
43     bool is_l2;
44 };
45
46 /** \brief SPAN dump request
47     @param client_index - opaque cookie to identify the sender
48     @param context - sender context, to match reply w/ request
49     @param is_l2 - 0 = hw device level, 1 = L2
50 */
51 define sw_interface_span_dump {
52     u32 client_index;
53     u32 context;
54     bool is_l2;
55 };
56
57 /** \brief Reply to SPAN dump request
58     @param context - sender context which was passed in the request
59     @param sw_if_index_from - mirrored interface
60     @param sw_if_index_to - interface where the traffic is mirrored
61     @param state - 0 = disabled, 1 = rx enabled, 2 = tx enabled, 3 tx & rx enabled
62     @param is_l2 - 0 = mirrored at hw device level, 1 = mirrored at l2
63 */
64 define sw_interface_span_details {
65     u32 context;
66     vl_api_interface_index_t sw_if_index_from;
67     vl_api_interface_index_t sw_if_index_to;
68     vl_api_span_state_t state;
69     bool is_l2;
70 };