1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright 2018-2022 Advanced Micro Devices, Inc. 3 */ 4 5 #ifndef _IONIC_ETHDEV_H_ 6 #define _IONIC_ETHDEV_H_ 7 8 #include <rte_ethdev.h> 9 10 #define IONIC_ETH_RSS_OFFLOAD_ALL ( \ 11 RTE_ETH_RSS_IPV4 | \ 12 RTE_ETH_RSS_NONFRAG_IPV4_TCP | \ 13 RTE_ETH_RSS_NONFRAG_IPV4_UDP | \ 14 RTE_ETH_RSS_IPV6 | \ 15 RTE_ETH_RSS_NONFRAG_IPV6_TCP | \ 16 RTE_ETH_RSS_NONFRAG_IPV6_UDP) 17 18 #define IONIC_ETH_DEV_TO_LIF(eth_dev) ((struct ionic_lif *) \ 19 (eth_dev)->data->dev_private) 20 21 struct ionic_bars; 22 struct ionic_dev_intf; 23 24 int eth_ionic_dev_probe(void *bus_dev, struct rte_device *rte_dev, 25 struct ionic_bars *bars, const struct ionic_dev_intf *intf, 26 uint16_t device_id, uint16_t vendor_id); 27 int eth_ionic_dev_remove(struct rte_device *rte_dev); 28 29 void ionic_dev_interrupt_handler(void *param); 30 int ionic_dev_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete); 31 32 #endif /* _IONIC_ETHDEV_H_ */ 33