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

Function rte_eth_rx_metadata_negotiate

dpdk/lib/ethdev/rte_ethdev.c:6684–6717  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6682}
6683
6684int
6685rte_eth_rx_metadata_negotiate(uint16_t port_id, uint64_t *features)
6686{
6687 struct rte_eth_dev *dev;
6688 int ret;
6689
6690 RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
6691 dev = &rte_eth_devices[port_id];
6692
6693 if (dev->data->dev_configured != 0) {
6694 RTE_ETHDEV_LOG(ERR,
6695 "The port (ID=%"PRIu16") is already configured\n",
6696 port_id);
6697 return -EBUSY;
6698 }
6699
6700 if (features == NULL) {
6701 RTE_ETHDEV_LOG(ERR, "Invalid features (NULL)\n");
6702 return -EINVAL;
6703 }
6704
6705 if ((*features & RTE_ETH_RX_METADATA_TUNNEL_ID) != 0 &&
6706 rte_flow_restore_info_dynflag_register() < 0)
6707 *features &= ~RTE_ETH_RX_METADATA_TUNNEL_ID;
6708
6709 if (*dev->dev_ops->rx_metadata_negotiate == NULL)
6710 return -ENOTSUP;
6711 ret = eth_err(port_id,
6712 (*dev->dev_ops->rx_metadata_negotiate)(dev, features));
6713
6714 rte_eth_trace_rx_metadata_negotiate(port_id, *features, ret);
6715
6716 return ret;
6717}
6718
6719int
6720rte_eth_ip_reassembly_capability_get(uint16_t port_id,

Callers 2

init_portFunction · 0.85

Calls 2

eth_errFunction · 0.85

Tested by 1