It generates MAC addresses during host port initialization, which will be set as default MAC addresses for corresponding VFs.
Signed-off-by: Helin Zhang <helin.zhang at intel.com> --- app/test-pmd/testpmd.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 1319917..f7aac81 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -1762,6 +1762,23 @@ rxtx_port_config(struct rte_port *port) port->tx_conf.txq_flags = txq_flags; } +static void +generate_default_vf_mac_addr(portid_t pid, struct rte_vf_conf *vf_conf, + uint8_t vf_num) +{ + uint8_t i; + uint8_t addr[ETHER_ADDR_LEN] = {0x68, 0x05, 0xca, 0x25, 0x00, 0x00}; + + if (vf_num >= ETH_VF_NUM_MAX) + return; + + addr[4] = (uint8_t)pid; + for (i = 0; i < vf_num; i++) { + addr[5] = i; + memcpy(vf_conf[i].mac_addr.addr_bytes, addr, sizeof(addr)); + } +} + void init_port_config(void) { @@ -1772,6 +1789,8 @@ init_port_config(void) port = &ports[pid]; port->dev_conf.rxmode = rx_mode; port->dev_conf.fdir_conf = fdir_conf; + generate_default_vf_mac_addr(pid, port->dev_conf.vf_conf, 32); + if (nb_rxq > 1) { port->dev_conf.rx_adv_conf.rss_conf.rss_key = NULL; port->dev_conf.rx_adv_conf.rss_conf.rss_hf = rss_hf; -- 2.5.0