The MAC addresses are generated in the same manner as in the TAP PMD,
where the address is based on the number of PCAP ports created.

Signed-off-by: Cian Ferriter <cian.ferri...@intel.com>
---
 drivers/net/pcap/rte_eth_pcap.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
index e8810a1..ced9cd9 100644
--- a/drivers/net/pcap/rte_eth_pcap.c
+++ b/drivers/net/pcap/rte_eth_pcap.c
@@ -417,11 +417,17 @@ struct pmd_devargs {
 static int
 eth_dev_start(struct rte_eth_dev *dev)
 {
+       static int iface_idx;
        unsigned int i;
        struct pmd_internals *internals = dev->data->dev_private;
        struct pcap_tx_queue *tx;
        struct pcap_rx_queue *rx;
 
+       /* Interface MAC = 00:70:63:61:70:<iface_idx> */
+       memcpy((char *)dev->data->mac_addrs->addr_bytes, "\0pcap",
+               ETHER_ADDR_LEN);
+       dev->data->mac_addrs->addr_bytes[ETHER_ADDR_LEN - 1] = iface_idx++;
+
        /* Special iface case. Single pcap is open and shared between tx/rx. */
        if (internals->single_iface) {
                tx = &internals->tx_queue[0];
-- 
1.7.0.7

Reply via email to