aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2017-10-04 02:29:07 -0700
committerNeale Ranns <nranns@cisco.com>2017-10-04 17:15:16 +0000
commit348edb1c06c26bbb6f74ef91169cc5c8ce6cea37 (patch)
tree48112845aa85e4efcdaa41a9105e1fb31d915884
parentc5c77ae50a2483fc3d7dbdb495d55f8a4f0aba5a (diff)
Set MAC address needs the HW interface index
Change-Id: I7b175d57b85e626aab00221b6dac0498aebcbeae Signed-off-by: Neale Ranns <nranns@cisco.com> (cherry picked from commit d867a7cf6baffcebbf1b6e408272ec22dc55dd68)
-rw-r--r--src/vnet/interface_api.c4
-rw-r--r--src/vnet/interface_cli.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/vnet/interface_api.c b/src/vnet/interface_api.c
index 94e78f6d6f2..daf664e1722 100644
--- a/src/vnet/interface_api.c
+++ b/src/vnet/interface_api.c
@@ -740,6 +740,7 @@ static void vl_api_sw_interface_set_mac_address_t_handler
vl_api_sw_interface_set_mac_address_reply_t *rmp;
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;
@@ -753,7 +754,8 @@ static void vl_api_sw_interface_set_mac_address_t_handler
| (u64) mp->mac_address[4] << (8 * 4)
| (u64) mp->mac_address[5] << (8 * 5));
- error = vnet_hw_interface_change_mac_address (vnm, sw_if_index, mac);
+ si = vnet_get_sw_interface (vnm, sw_if_index);
+ error = vnet_hw_interface_change_mac_address (vnm, si->hw_if_index, mac);
if (error)
{
rv = VNET_API_ERROR_UNIMPLEMENTED;
diff --git a/src/vnet/interface_cli.c b/src/vnet/interface_cli.c
index fe7ae38f7cd..d68c6276bcc 100644
--- a/src/vnet/interface_cli.c
+++ b/src/vnet/interface_cli.c
@@ -1083,6 +1083,7 @@ set_interface_mac_address (vlib_main_t * vm, unformat_input_t * input,
vlib_cli_command_t * cmd)
{
vnet_main_t *vnm = vnet_get_main ();
+ vnet_sw_interface_t *si = NULL;
clib_error_t *error = 0;
u32 sw_if_index = ~0;
u64 mac = 0;
@@ -1099,7 +1100,8 @@ set_interface_mac_address (vlib_main_t * vm, unformat_input_t * input,
format_unformat_error, input);
goto done;
}
- error = vnet_hw_interface_change_mac_address (vnm, sw_if_index, mac);
+ si = vnet_get_sw_interface (vnm, sw_if_index);
+ error = vnet_hw_interface_change_mac_address (vnm, si->hw_if_index, mac);
done:
return error;
}