diff options
-rw-r--r-- | src/vnet/devices/virtio/vhost_user_api.c | 1 | ||||
-rw-r--r-- | test/test_vhost.py | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/vnet/devices/virtio/vhost_user_api.c b/src/vnet/devices/virtio/vhost_user_api.c index df6768d4cde..6dd9da08a23 100644 --- a/src/vnet/devices/virtio/vhost_user_api.c +++ b/src/vnet/devices/virtio/vhost_user_api.c @@ -168,6 +168,7 @@ vl_api_create_vhost_user_if_v2_t_handler (vl_api_create_vhost_user_if_v2_t * if (mp->use_custom_mac) mac_address_decode (mp->mac_address, (mac_address_t *) args.hwaddr); + args.use_custom_mac = mp->use_custom_mac; args.is_server = mp->is_server; args.sock_filename = (char *) mp->sock_filename; args.renumber = mp->renumber; diff --git a/test/test_vhost.py b/test/test_vhost.py index e8cb27d6ed4..aefae90f2f6 100644 --- a/test/test_vhost.py +++ b/test/test_vhost.py @@ -119,5 +119,33 @@ class TesVhostInterface(VppTestCase): events = self.vapi.collect_events() self.assert_equal(len(events), 0, "number of events") + def test_vhost_interface_custom_mac_addr(self): + """ Vhost User interface custom mac address test """ + + mac_addr = "aa:bb:cc:dd:ee:ff" + vhost_if = VppVhostInterface(self, + sock_filename='/tmp/sock1', + use_custom_mac=1, + mac_address=mac_addr) + + # create vhost interface + vhost_if.add_vpp_config() + self.sleep(0.1) + + # verify mac in the dump + if_dump_list = self.vapi.sw_interface_dump( + sw_if_index=vhost_if.sw_if_index + ) + self.assert_equal(len(if_dump_list), 1, "if dump length") + + [if_dump] = if_dump_list + self.assert_equal( + if_dump.l2_address.mac_string, mac_addr, "MAC Address" + ) + + # delete VirtualEthernet + self.logger.info("Deleting VirtualEthernet") + vhost_if.remove_vpp_config() + if __name__ == '__main__': unittest.main(testRunner=VppTestRunner) |