if (frm->ipfix_collector.as_u32 == 0
|| frm->src_address.as_u32 == 0)
{
- clib_warning ("no collector: disabling flow collector process");
vlib_node_set_state (frm->vlib_main, flow_report_process_node.index,
VLIB_NODE_STATE_DISABLED);
return -1;
};
int vnet_flow_report_add_del (flow_report_main_t *frm,
- vnet_flow_report_add_del_args_t *a)
+ vnet_flow_report_add_del_args_t *a,
+ u16 *template_id)
{
int i;
int found_index = ~0;
&& fr->flow_data_callback == a->flow_data_callback)
{
found_index = i;
+ if (template_id)
+ *template_id = fr->template_id;
break;
}
}
fr->opaque = a->opaque;
fr->rewrite_callback = a->rewrite_callback;
fr->flow_data_callback = a->flow_data_callback;
-
+
+ if (template_id)
+ *template_id = fr->template_id;
+
return 0;
}
break;
}
- if (collector.as_u32 == 0)
- return clib_error_return (0, "collector address required");
-
- if (src.as_u32 == 0)
+ if (collector.as_u32 != 0 && src.as_u32 == 0)
return clib_error_return (0, "src address required");
if (path_mtu > 1450 /* vpp does not support fragmentation */)
frm->template_interval = template_interval;
frm->udp_checksum = udp_checksum;
- vlib_cli_output (vm, "Collector %U, src address %U, "
+ if (collector.as_u32)
+ vlib_cli_output (vm, "Collector %U, src address %U, "
"fib index %d, path MTU %u, "
"template resend interval %us, "
"udp checksum %s",
format_ip4_address, &frm->src_address,
fib_index, path_mtu, template_interval,
udp_checksum ? "enabled" : "disabled");
+ else
+ vlib_cli_output (vm, "IPFIX Collector is disabled");
/* Turn on the flow reporting process */
vlib_process_signal_event (vm, flow_report_process_node.index,