static clib_error_t *
vnet_hw_interface_change_mac_address_helper (vnet_main_t * vnm,
- u32 hw_if_index, u64 mac_address)
+ u32 hw_if_index,
+ u8 * mac_address)
{
clib_error_t *error = 0;
vnet_hw_interface_t *hi = vnet_get_hw_interface (vnm, hw_if_index);
if (dev_class->mac_addr_change_function)
{
error =
- dev_class->mac_addr_change_function (hi, (char *) &mac_address);
+ dev_class->mac_addr_change_function (hi, (char *) mac_address);
}
if (!error)
{
hw_class = vnet_get_hw_interface_class (vnm, hi->hw_class_index);
if (NULL != hw_class->mac_addr_change_function)
- hw_class->mac_addr_change_function (hi, (char *) &mac_address);
+ hw_class->mac_addr_change_function (hi, (char *) mac_address);
}
else
{
clib_error_t *
vnet_hw_interface_change_mac_address (vnet_main_t * vnm, u32 hw_if_index,
- u64 mac_address)
+ u8 * mac_address)
{
return vnet_hw_interface_change_mac_address_helper
(vnm, hw_if_index, mac_address);
vnet_main_t *vnm = vnet_get_main ();
u32 sw_if_index = ntohl (mp->sw_if_index);
vnet_sw_interface_t *si;
- u64 mac;
clib_error_t *error;
int rv = 0;
VALIDATE_SW_IF_INDEX (mp);
- mac = ((u64) mp->mac_address[0] << (8 * 0)
- | (u64) mp->mac_address[1] << (8 * 1)
- | (u64) mp->mac_address[2] << (8 * 2)
- | (u64) mp->mac_address[3] << (8 * 3)
- | (u64) mp->mac_address[4] << (8 * 4)
- | (u64) mp->mac_address[5] << (8 * 5));
-
si = vnet_get_sw_interface (vnm, sw_if_index);
- error = vnet_hw_interface_change_mac_address (vnm, si->hw_if_index, mac);
+ error = vnet_hw_interface_change_mac_address (vnm, si->hw_if_index,
+ mp->mac_address);
if (error)
{
rv = VNET_API_ERROR_UNIMPLEMENTED;
vnet_sw_interface_t *si = NULL;
clib_error_t *error = 0;
u32 sw_if_index = ~0;
- u64 mac = 0;
+ u8 mac[6] = { 0 };
if (!unformat_user (input, unformat_vnet_sw_interface, vnm, &sw_if_index))
{
format_unformat_error, input);
goto done;
}
- if (!unformat_user (input, unformat_ethernet_address, &mac))
+ if (!unformat_user (input, unformat_ethernet_address, mac))
{
error = clib_error_return (0, "expected mac address `%U'",
format_unformat_error, input);
/* Change interface mac address*/
clib_error_t *vnet_hw_interface_change_mac_address (vnet_main_t * vnm,
u32 hw_if_index,
- u64 mac_address);
+ u8 * mac_address);
/* Change rx-mode */
clib_error_t *set_hw_interface_change_rx_mode (vnet_main_t * vnm,