bd_config->feature_bitmap &= ~feature_bitmap;
}
- return 0;
+ return bd_config->feature_bitmap;
}
/**
}
/* set the bridge domain flag */
- if (bd_set_flags (vm, bd_index, L2_LEARN, enable))
- {
- error =
- clib_error_return (0, "bridge-domain id %d out of range", bd_index);
- goto done;
- }
+ bd_set_flags (vm, bd_index, L2_LEARN, enable);
done:
return error;
}
/* set the bridge domain flag */
- if (bd_set_flags (vm, bd_index, L2_FWD, enable))
- {
- error =
- clib_error_return (0, "bridge-domain id %d out of range", bd_index);
- goto done;
- }
+ bd_set_flags (vm, bd_index, L2_FWD, enable);
done:
return error;
}
/* set the bridge domain flag */
- if (bd_set_flags (vm, bd_index, L2_FLOOD, enable))
- {
- error =
- clib_error_return (0, "bridge-domain id %d out of range", bd_index);
- goto done;
- }
+ bd_set_flags (vm, bd_index, L2_FLOOD, enable);
done:
return error;
}
/* set the bridge domain flag */
- if (bd_set_flags (vm, bd_index, L2_UU_FLOOD, enable))
- {
- error =
- clib_error_return (0, "bridge-domain id %d out of range", bd_index);
- goto done;
- }
+ bd_set_flags (vm, bd_index, L2_UU_FLOOD, enable);
done:
return error;
enable = 0;
/* set the bridge domain flag */
- if (bd_set_flags (vm, bd_index, L2_ARP_TERM, enable))
- {
- error =
- clib_error_return (0, "bridge-domain id %d out of range", bd_index);
- goto done;
- }
+ bd_set_flags (vm, bd_index, L2_ARP_TERM, enable);
done:
return error;
{
printed = 1;
vlib_cli_output (vm,
- "%=5s %=7s %=4s %=9s %=9s %=9s %=9s %=9s %=9s %=9s",
- "ID", "Index", "BSN", "Age(min)", "Learning",
- "U-Forwrd", "UU-Flood", "Flooding", "ARP-Term",
- "BVI-Intf");
+ "%=8s %=7s %=4s %=9s %=9s %=9s %=9s %=9s %=9s %=9s",
+ "BD-ID", "Index", "BSN", "Age(min)",
+ "Learning", "U-Forwrd", "UU-Flood", "Flooding",
+ "ARP-Term", "BVI-Intf");
}
if (bd_config->mac_age)
else
as = format (as, "off");
vlib_cli_output (vm,
- "%=5d %=7d %=4d %=9v %=9s %=9s %=9s %=9s %=9s %=9U",
+ "%=8d %=7d %=4d %=9v %=9s %=9s %=9s %=9s %=9s %=9U",
bd_config->bd_id, bd_index, bd_config->seq_num, as,
bd_config->feature_bitmap & L2INPUT_FEAT_LEARN ?
"on" : "off",
{
l2_flood_member_t *member =
vec_elt_at_index (bd_config->members, i);
- l2_input_config_t *int_config =
- l2input_intf_config (member->sw_if_index);
+ u8 swif_seq_num = *l2fib_swif_seq_num (member->sw_if_index);
u32 vtr_opr, dot1q, tag1, tag2;
if (i == 0)
{
vlib_cli_output (vm, "%=30U%=7d%=5d%=5d%=5s%=9s%=30U",
format_vnet_sw_if_index_name, vnm,
member->sw_if_index, member->sw_if_index,
- int_config->seq_num, member->shg,
+ swif_seq_num, member->shg,
member->flags & L2_FLOOD_MEMBER_BVI ? "*" :
"-", i < bd_config->flood_count ? "*" : "-",
format_vtr, vtr_opr, dot1q, tag1, tag2);
{
if (bd_index != ~0)
return VNET_API_ERROR_BD_ALREADY_EXISTS;
+ if (a->bd_id > L2_BD_ID_MAX)
+ return VNET_API_ERROR_BD_ID_EXCEED_MAX;
bd_index = bd_add_bd_index (bdm, a->bd_id);
u32 enable_flags = 0, disable_flags = 0;
error = clib_error_return (0, "bridge domain in use - remove members");
goto done;
case VNET_API_ERROR_NO_SUCH_ENTRY:
- error = clib_error_return (0, "bridge domain id does not exist");
+ error = clib_error_return (0, "bridge domain ID does not exist");
goto done;
case VNET_API_ERROR_BD_NOT_MODIFIABLE:
error = clib_error_return (0, "bridge domain 0 can not be modified");
goto done;
+ case VNET_API_ERROR_BD_ID_EXCEED_MAX:
+ error = clib_error_return (0, "bridge domain ID exceed 16M limit");
+ goto done;
default:
error = clib_error_return (0, "bd_add_del returned %d", rv);
goto done;