* limitations under the License.
*/
-#include <vnet/flow/flow_report.h>
+#include <vnet/ipfix-export/flow_report.h>
#include <ioam/analyse/ioam_summary_export.h>
#include <vnet/api_errno.h>
#include <ioam/udp-ping/udp_ping.h>
static u8 *
udp_ping_template_rewrite (flow_report_main_t * frm, flow_report_t * fr,
ip4_address_t * collector_address,
- ip4_address_t * src_address, u16 collector_port)
+ ip4_address_t * src_address, u16 collector_port,
+ ipfix_report_element_t * elts,
+ u32 n_elts, u32 * stream_index)
{
return ioam_template_rewrite (frm, fr, collector_address,
- src_address, collector_port);
+ src_address, collector_port, elts, n_elts,
+ stream_index);
}
static vlib_frame_t *
if (udp->checksum == 0)
udp->checksum = 0xffff;
- ASSERT (ip->checksum == ip4_header_checksum (ip));
+ ASSERT (ip4_header_checksum_is_valid (ip));
to_next[0] = bi0;
f->n_vectors++;
if (udp->checksum == 0)
udp->checksum = 0xffff;
- ASSERT (ip->checksum == ip4_header_checksum (ip));
+ ASSERT (ip4_header_checksum_is_valid (ip));
to_next[0] = bi0;
f->n_vectors++;
int rv;
u32 domain_id = 0;
flow_report_main_t *frm = &flow_report_main;
+ u16 template_id;
- memset (&args, 0, sizeof (args));
+ clib_memset (&args, 0, sizeof (args));
args.rewrite_callback = udp_ping_template_rewrite;
args.flow_data_callback = udp_ping_send_flows;
del ? (args.is_add = 0) : (args.is_add = 1);
args.domain_id = domain_id;
args.src_port = UDP_DST_PORT_ipfix;
- rv = vnet_flow_report_add_del (frm, &args);
+ rv = vnet_flow_report_add_del (frm, &args, &template_id);
switch (rv)
{
clib_error_t *
udp_ping_flow_report_init (vlib_main_t * vm)
{
- clib_error_t *error;
-
- if ((error = vlib_call_init_function (vm, flow_report_init)))
- return error;
-
return 0;
}
-VLIB_INIT_FUNCTION (udp_ping_flow_report_init);
+/* *INDENT-OFF* */
+VLIB_INIT_FUNCTION (udp_ping_flow_report_init) =
+{
+ .runs_after = VLIB_INITS ("flow_report_init"),
+};
+/* *INDENT-ON* */
+
/*
* fd.io coding-style-patch-verification: ON