*/
vec_validate_init_empty ((*pinout_lc_index_by_sw_if_index), sw_if_index,
~0);
+ /* lookup context creation is to be done in global heap */
+ void *oldheap = clib_mem_set_heap (am->vlib_main->heap_base);
if (vec_len (vec_acl_list_index) > 0)
{
u32 lc_index = (*pinout_lc_index_by_sw_if_index)[sw_if_index];
(*pinout_lc_index_by_sw_if_index)[sw_if_index] = ~0;
}
}
+ clib_mem_set_heap (oldheap);
/* ensure ACL processing is enabled/disabled as needed */
acl_interface_inout_enable_disable (am, sw_if_index, is_input,
rules[rule_idx].is_permit = action;
}
else if (unformat (line_input, "src %U/%d",
- unformat_ip46_address, &src, &src_prefix_length))
+ unformat_ip46_address, &src, IP46_TYPE_ANY,
+ &src_prefix_length))
{
vec_validate_acl_rules (rules, rule_idx);
ip_address_encode (&src, IP46_TYPE_ANY,
rules[rule_idx].src_prefix.len = src_prefix_length;
}
else if (unformat (line_input, "dst %U/%d",
- unformat_ip46_address, &dst, &dst_prefix_length))
+ unformat_ip46_address, &dst, IP46_TYPE_ANY,
+ &dst_prefix_length))
{
vec_validate_acl_rules (rules, rule_idx);
ip_address_encode (&dst, IP46_TYPE_ANY,