MCPcopy Create free account
hub / github.com/F-Stack/f-stack / idpf_dev_vport_init

Function idpf_dev_vport_init

dpdk/drivers/net/idpf/idpf_ethdev.c:1259–1308  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1257}
1258
1259static int
1260idpf_dev_vport_init(struct rte_eth_dev *dev, void *init_params)
1261{
1262 struct idpf_vport *vport = dev->data->dev_private;
1263 struct idpf_vport_param *param = init_params;
1264 struct idpf_adapter_ext *adapter = param->adapter;
1265 /* for sending create vport virtchnl msg prepare */
1266 struct virtchnl2_create_vport create_vport_info;
1267 int ret = 0;
1268
1269 dev->dev_ops = &idpf_eth_dev_ops;
1270 vport->adapter = &adapter->base;
1271 vport->sw_idx = param->idx;
1272 vport->devarg_id = param->devarg_id;
1273
1274 memset(&create_vport_info, 0, sizeof(create_vport_info));
1275 ret = idpf_vport_info_init(vport, &create_vport_info);
1276 if (ret != 0) {
1277 PMD_INIT_LOG(ERR, "Failed to init vport req_info.");
1278 goto err;
1279 }
1280
1281 ret = idpf_vport_init(vport, &create_vport_info, dev->data);
1282 if (ret != 0) {
1283 PMD_INIT_LOG(ERR, "Failed to init vports.");
1284 goto err;
1285 }
1286
1287 dev->data->mac_addrs = rte_zmalloc(NULL, RTE_ETHER_ADDR_LEN, 0);
1288 if (dev->data->mac_addrs == NULL) {
1289 PMD_INIT_LOG(ERR, "Cannot allocate mac_addr memory.");
1290 ret = -ENOMEM;
1291 goto err_mac_addrs;
1292 }
1293
1294 rte_ether_addr_copy((struct rte_ether_addr *)vport->default_mac_addr,
1295 &dev->data->mac_addrs[0]);
1296
1297 adapter->vports[param->idx] = vport;
1298 adapter->cur_vports |= RTE_BIT32(param->devarg_id);
1299 adapter->cur_vport_nb++;
1300
1301 return 0;
1302
1303err_mac_addrs:
1304 adapter->vports[param->idx] = NULL; /* reset */
1305 idpf_vport_deinit(vport);
1306err:
1307 return ret;
1308}
1309
1310static const struct rte_pci_id pci_id_idpf_map[] = {
1311 { RTE_PCI_DEVICE(IDPF_INTEL_VENDOR_ID, IDPF_DEV_ID_PF) },

Callers

nothing calls this directly

Calls 6

memsetFunction · 0.85
idpf_vport_info_initFunction · 0.85
idpf_vport_initFunction · 0.85
rte_zmallocFunction · 0.85
rte_ether_addr_copyFunction · 0.85
idpf_vport_deinitFunction · 0.85

Tested by

no test coverage detected