ip: ipfix-export API update
[vpp.git] / src / vnet / ipfix-export / ipfix_export.api
1 /*
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 option version = "2.0.1";
17
18 import "vnet/ip/ip_types.api";
19
20 /** \brief Configure IPFIX exporter process request
21     @param client_index - opaque cookie to identify the sender
22     @param context - sender context, to match reply w/ request
23     @param collector_address - address of IPFIX collector
24     @param collector_port - port of IPFIX collector
25     @param src_address - address of IPFIX exporter
26     @param vrf_id - VRF / fib table ID
27     @param path_mtu - Path MTU between exporter and collector
28     @param template_interval - number of seconds after which to resend template
29     @param udp_checksum - UDP checksum calculation enable flag
30 */
31 autoreply define set_ipfix_exporter
32 {
33   u32 client_index;
34   u32 context;
35   vl_api_address_t collector_address;
36   u16 collector_port;
37   vl_api_address_t src_address;
38   u32 vrf_id;
39   u32 path_mtu;
40   u32 template_interval;
41   bool udp_checksum;
42 };
43
44 /** \brief IPFIX exporter dump request
45     @param client_index - opaque cookie to identify the sender
46     @param context - sender context, to match reply w/ request
47 */
48 define ipfix_exporter_dump
49 {
50   u32 client_index;
51   u32 context;
52 };
53
54 /** \brief Reply to IPFIX exporter dump request
55     @param context - sender context which was passed in the request
56     @param collector_address - address of IPFIX collector
57     @param collector_port - port of IPFIX collector
58     @param src_address - address of IPFIX exporter
59     @param fib_index - fib table index
60     @param path_mtu - Path MTU between exporter and collector
61     @param template_interval - number of seconds after which to resend template
62     @param udp_checksum - UDP checksum calculation enable flag
63 */
64 define ipfix_exporter_details
65 {
66   u32 context;
67   vl_api_address_t collector_address;
68   u16 collector_port;
69   vl_api_address_t src_address;
70   u32 vrf_id;
71   u32 path_mtu;
72   u32 template_interval;
73   bool udp_checksum;
74 };
75
76 /** \brief IPFIX classify stream configure request
77     @param client_index - opaque cookie to identify the sender
78     @param context - sender context, to match reply w/ request
79     @param domain_id - domain ID reported in IPFIX messages for classify stream
80     @param src_port - source port of UDP session for classify stream
81 */
82 autoreply define set_ipfix_classify_stream {
83     u32 client_index;
84     u32 context;
85     u32 domain_id;
86     u16 src_port;
87 };
88
89 /** \brief IPFIX classify stream dump request
90     @param client_index - opaque cookie to identify the sender
91     @param context - sender context, to match reply w/ request
92 */
93 define ipfix_classify_stream_dump {
94     u32 client_index;
95     u32 context;
96 };
97
98 /** \brief Reply to IPFIX classify stream dump request
99     @param context - sender context, to match reply w/ request
100     @param domain_id - domain ID reported in IPFIX messages for classify stream
101     @param src_port - source port of UDP session for classify stream
102 */
103 define ipfix_classify_stream_details {
104     u32 context;
105     u32 domain_id;
106     u16 src_port;
107 };
108
109 /** \brief IPFIX add or delete classifier table request
110     @param client_index - opaque cookie to identify the sender
111     @param context - sender context, to match reply w/ request
112     @param table_id - classifier table ID
113     @param ip_version - version of IP used in the classifier table
114     @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
115 */
116 autoreply define ipfix_classify_table_add_del {
117     u32 client_index;
118     u32 context;
119     u32 table_id;
120     vl_api_address_family_t ip_version;
121     vl_api_ip_proto_t transport_protocol;
122     bool is_add;
123 };
124
125 /** \brief IPFIX classify tables dump request
126     @param client_index - opaque cookie to identify the sender
127     @param context - sender context, to match reply w/ request
128 */
129 define ipfix_classify_table_dump {
130     u32 client_index;
131     u32 context;
132 };
133
134 /** \brief Reply to IPFIX classify tables dump request
135     @param context - sender context, to match reply w/ request
136     @param table_id - classifier table ID
137     @param ip_version - version of IP used in the classifier table
138     @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
139 */
140 define ipfix_classify_table_details {
141     u32 context;
142     u32 table_id;
143     vl_api_address_family_t ip_version;
144     vl_api_ip_proto_t transport_protocol;
145 };
146
147 autoreply define ipfix_flush {
148     u32 client_index;
149     u32 context;
150 };
151
152 /*
153  * Local Variables:
154  * eval: (c-set-style "gnu")
155  * End:
156  */