Thread (196 messages) 196 messages, 20 authors, 2016-06-24

Re: [PATCH v2 3/5] virtio/vdev: add embeded device emulation

From: Tan, Jianfeng <hidden>
Date: 2016-02-16 02:47:41

Hi Tetsuya,

On 2/8/2016 2:59 PM, Tetsuya Mukawa wrote:
On 2016/02/05 20:20, Jianfeng Tan wrote:
quoted
To implement virtio vdev, we need way to interract with vhost backend.
And more importantly, needs way to emulate a device into DPDK. So this
patch acts as embedded device emulation.

Depends on the type of vhost file: vhost-user is used if the given
path points to a unix socket; vhost-net is used if the given path
points to a char device.

Signed-off-by: Huawei Xie <redacted>
Signed-off-by: Jianfeng Tan <redacted>
---
 
+void
+virtio_vdev_init(struct rte_eth_dev_data *data, char *path,
+		 int nb_rx, int nb_tx, int nb_cq __attribute__ ((unused)),
+		 int queue_num, char *mac, char *ifname)
+{
+	int i, r;
+	struct stat s;
+	uint32_t tmp[ETHER_ADDR_LEN];
+	struct virtio_hw *hw = data->dev_private;
+
+	hw->vtpci_ops = &vdev_ops;
+	hw->io_base  = 0;
+	hw->use_msix = 0;
+	hw->modern   = 0;
+
+	hw->data = data;
+	hw->path = strdup(path);
+	hw->max_rx_queues = nb_rx;
+	hw->max_tx_queues = nb_tx;
+	hw->queue_num = queue_num;
+	hw->mac_specified = 0;
+	if (mac) {
+		r = sscanf(mac, "%x:%x:%x:%x:%x:%x", &tmp[0],
+			   &tmp[1], &tmp[2], &tmp[3], &tmp[4], &tmp[5]);
+		if (r == ETHER_ADDR_LEN) {
+			for (i = 0; i < ETHER_ADDR_LEN; ++i)
+				hw->mac_addr[i] = (uint8_t)tmp[i];
+			hw->mac_specified = 1;
+		} else
+			PMD_DRV_LOG(WARN, "wrong format of mac: %s", mac);
It seems you cannot use 'WARN' here.
Thanks, I'll change it to ERR.

Thanks,
Jianfeng
Thanks,
Tetsuya
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help