Set MAC address needs the HW interface index 63/8663/1
authorNeale Ranns <nranns@cisco.com>
Wed, 4 Oct 2017 09:29:07 +0000 (02:29 -0700)
committerNeale Ranns <nranns@cisco.com>
Wed, 4 Oct 2017 17:14:58 +0000 (17:14 +0000)
Change-Id: I7b175d57b85e626aab00221b6dac0498aebcbeae
Signed-off-by: Neale Ranns <nranns@cisco.com>
(cherry picked from commit d867a7cf6baffcebbf1b6e408272ec22dc55dd68)

src/vnet/interface_api.c
src/vnet/interface_cli.c

index 0731ab3..05d9f21 100644 (file)
@@ -864,6 +864,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;
@@ -877,7 +878,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;
index a6680c5..15dc7f8 100644 (file)
@@ -1198,6 +1198,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;
@@ -1214,7 +1215,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;
 }