blob: 8a9d5b1312492e6d5da4508db38b3aa870895a7d [file] [log] [blame]
/*
* Copyright (c) 2015-2016 Cisco and/or its affiliates.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
option version = "2.0.3";
import "vnet/ip/ip_types.api";
/** \brief Configure IPFIX exporter process request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param collector_address - address of IPFIX collector
@param collector_port - port of IPFIX collector
@param src_address - address of IPFIX exporter
@param vrf_id - VRF / fib table ID
@param path_mtu - Path MTU between exporter and collector
@param template_interval - number of seconds after which to resend template
@param udp_checksum - UDP checksum calculation enable flag
*/
autoreply define set_ipfix_exporter
{
u32 client_index;
u32 context;
vl_api_address_t collector_address;
u16 collector_port;
vl_api_address_t src_address;
u32 vrf_id;
u32 path_mtu;
u32 template_interval;
bool udp_checksum;
};
/** \brief IPFIX exporter dump request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
*/
define ipfix_exporter_dump
{
u32 client_index;
u32 context;
};
/** \brief Reply to IPFIX exporter dump request
@param context - sender context which was passed in the request
@param collector_address - address of IPFIX collector
@param collector_port - port of IPFIX collector
@param src_address - address of IPFIX exporter
@param fib_index - fib table index
@param path_mtu - Path MTU between exporter and collector
@param template_interval - number of seconds after which to resend template
@param udp_checksum - UDP checksum calculation enable flag
*/
define ipfix_exporter_details
{
u32 context;
vl_api_address_t collector_address;
u16 collector_port;
vl_api_address_t src_address;
u32 vrf_id;
u32 path_mtu;
u32 template_interval;
bool udp_checksum;
};
/** Configure IPFIX exporter within the exporting process.
The exporting process can contain multiple independent exporters,
each of which have their own state. The collector_address is the key
field that identifies a unique exporter. The already existing API
'set_ipfix_exporter' is used to modify a single exporter (which will
always have stat index 0). If more than one exporter is required then
they can be created and deleted using this API.
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param is_create - True for create, False for delete
@param collector_address - address of IPFIX collector
@param collector_port - port of IPFIX collector
@param src_address - address of IPFIX exporter
@param vrf_id - VRF / fib table ID
@param path_mtu - Path MTU between exporter and collector
@param template_interval - number of seconds after which to resend template
@param udp_checksum - UDP checksum calculation enable flag
*/
define ipfix_exporter_create_delete {
u32 client_index;
u32 context;
bool is_create;
vl_api_address_t collector_address;
u16 collector_port;
vl_api_address_t src_address;
u32 vrf_id;
u32 path_mtu;
u32 template_interval;
bool udp_checksum;
};
define ipfix_exporter_create_delete_reply {
u32 context;
i32 retval;
u32 stat_index;
};
service {
rpc ipfix_all_exporter_get returns ipfix_all_exporter_get_reply
stream ipfix_all_exporter_details;
};
define ipfix_all_exporter_get
{
u32 client_index;
u32 context;
u32 cursor;
};
define ipfix_all_exporter_get_reply
{
u32 context;
i32 retval;
u32 cursor;
};
/** \brief Ipfix meter details in response to the get_meters command
@param context - sender context, to match reply w/ request
@param name The name of the ipfix meter
*/
define ipfix_all_exporter_details
{
u32 context;
vl_api_address_t collector_address;
u16 collector_port;
vl_api_address_t src_address;
u32 vrf_id;
u32 path_mtu;
u32 template_interval;
bool udp_checksum;
};
/** \brief IPFIX classify stream configure request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param domain_id - domain ID reported in IPFIX messages for classify stream
@param src_port - source port of UDP session for classify stream
*/
autoreply define set_ipfix_classify_stream {
u32 client_index;
u32 context;
u32 domain_id;
u16 src_port;
};
/** \brief IPFIX classify stream dump request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
*/
define ipfix_classify_stream_dump {
u32 client_index;
u32 context;
};
/** \brief Reply to IPFIX classify stream dump request
@param context - sender context, to match reply w/ request
@param domain_id - domain ID reported in IPFIX messages for classify stream
@param src_port - source port of UDP session for classify stream
*/
define ipfix_classify_stream_details {
u32 context;
u32 domain_id;
u16 src_port;
};
/** \brief IPFIX add or delete classifier table request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param table_id - classifier table ID
@param ip_version - version of IP used in the classifier table
@param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
*/
autoreply define ipfix_classify_table_add_del {
u32 client_index;
u32 context;
u32 table_id;
vl_api_address_family_t ip_version;
vl_api_ip_proto_t transport_protocol;
bool is_add;
};
/** \brief IPFIX classify tables dump request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
*/
define ipfix_classify_table_dump {
u32 client_index;
u32 context;
};
/** \brief Reply to IPFIX classify tables dump request
@param context - sender context, to match reply w/ request
@param table_id - classifier table ID
@param ip_version - version of IP used in the classifier table
@param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
*/
define ipfix_classify_table_details {
u32 context;
u32 table_id;
vl_api_address_family_t ip_version;
vl_api_ip_proto_t transport_protocol;
};
autoreply define ipfix_flush {
u32 client_index;
u32 context;
};
/*
* Local Variables:
* eval: (c-set-style "gnu")
* End:
*/