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

Function fs_eth_dev_create

dpdk/drivers/net/failsafe/failsafe.c:158–300  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

156}
157
158static int
159fs_eth_dev_create(struct rte_vdev_device *vdev)
160{
161 struct rte_eth_dev *dev;
162 struct rte_ether_addr *mac;
163 struct fs_priv *priv;
164 struct sub_device *sdev;
165 const char *params;
166 unsigned int socket_id;
167 uint8_t i;
168 int ret;
169
170 dev = NULL;
171 priv = NULL;
172 socket_id = rte_socket_id();
173 INFO("Creating fail-safe device on NUMA socket %u", socket_id);
174 params = rte_vdev_device_args(vdev);
175 if (params == NULL) {
176 ERROR("This PMD requires sub-devices, none provided");
177 return -1;
178 }
179 dev = rte_eth_vdev_allocate(vdev, sizeof(*priv));
180 if (dev == NULL) {
181 ERROR("Unable to allocate rte_eth_dev");
182 return -1;
183 }
184 priv = PRIV(dev);
185 priv->data = dev->data;
186 priv->rxp = FS_RX_PROXY_INIT;
187 dev->dev_ops = &failsafe_ops;
188 dev->data->mac_addrs = &PRIV(dev)->mac_addrs[0];
189 dev->data->dev_link = eth_link;
190 PRIV(dev)->nb_mac_addr = 1;
191 TAILQ_INIT(&PRIV(dev)->flow_list);
192 dev->rx_pkt_burst = (eth_rx_burst_t)&failsafe_rx_burst;
193 dev->tx_pkt_burst = (eth_tx_burst_t)&failsafe_tx_burst;
194 ret = fs_sub_device_alloc(dev, params);
195 if (ret) {
196 ERROR("Could not allocate sub_devices");
197 goto free_dev;
198 }
199 ret = failsafe_args_parse(dev, params);
200 if (ret)
201 goto free_subs;
202 ret = rte_eth_dev_owner_new(&priv->my_owner.id);
203 if (ret) {
204 ERROR("Failed to get unique owner identifier");
205 goto free_args;
206 }
207 snprintf(priv->my_owner.name, sizeof(priv->my_owner.name),
208 FAILSAFE_OWNER_NAME);
209 DEBUG("Failsafe port %u owner info: %s_%016"PRIX64, dev->data->port_id,
210 priv->my_owner.name, priv->my_owner.id);
211 ret = rte_eth_dev_callback_register(RTE_ETH_ALL, RTE_ETH_EVENT_NEW,
212 failsafe_eth_new_event_callback,
213 dev);
214 if (ret) {
215 ERROR("Failed to register NEW callback");

Callers 1

rte_pmd_failsafe_probeFunction · 0.85

Calls 15

rte_socket_idFunction · 0.85
rte_vdev_device_argsFunction · 0.85
rte_eth_vdev_allocateFunction · 0.85
fs_sub_device_allocFunction · 0.85
failsafe_args_parseFunction · 0.85
rte_eth_dev_owner_newFunction · 0.85
snprintfFunction · 0.85
failsafe_eal_initFunction · 0.85
fs_mutex_initFunction · 0.85
FOREACH_SUBDEV_STATEFunction · 0.85

Tested by

no test coverage detected