X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Fethdev%2Fethdev_driver.h;h=69d9dc21d8c4e642cfa0dc13862e46cb70f2c342;hb=93e1ea6dfa99dea359b8d66123576a395c2c0acd;hp=a9929396c3e5bb6f8bbb64b0dc94a0cf0ad4a2fc;hpb=a75ab6e519431fcd00ba435fdb7de8dac516e081;p=dpdk.git diff --git a/lib/ethdev/ethdev_driver.h b/lib/ethdev/ethdev_driver.h index a9929396c3..69d9dc21d8 100644 --- a/lib/ethdev/ethdev_driver.h +++ b/lib/ethdev/ethdev_driver.h @@ -5,6 +5,10 @@ #ifndef _RTE_ETHDEV_DRIVER_H_ #define _RTE_ETHDEV_DRIVER_H_ +#ifdef __cplusplus +extern "C" { +#endif + /** * @file * @@ -138,7 +142,12 @@ struct rte_eth_dev_data { * Indicates whether the device is configured: * CONFIGURED(1) / NOT CONFIGURED(0) */ - dev_configured : 1; + dev_configured : 1, + /** + * Indicates whether the flow engine is configured: + * CONFIGURED(1) / NOT CONFIGURED(0) + */ + flow_configured : 1; /** Queues state: HAIRPIN(2) / STARTED(1) / STOPPED(0) */ uint8_t rx_queue_state[RTE_MAX_QUEUES_PER_PORT]; @@ -1045,6 +1054,25 @@ typedef int (*eth_ip_reassembly_conf_get_t)(struct rte_eth_dev *dev, typedef int (*eth_ip_reassembly_conf_set_t)(struct rte_eth_dev *dev, const struct rte_eth_ip_reassembly_params *conf); +/** + * @internal + * Dump private info from device to a file. + * + * @param dev + * Port (ethdev) handle. + * @param file + * A pointer to a file for output. + * + * @return + * Negative value on error, 0 on success. + * + * @retval 0 + * Success + * @retval -EINVAL + * Invalid file + */ +typedef int (*eth_dev_priv_dump_t)(struct rte_eth_dev *dev, FILE *file); + /** * @internal A structure containing the functions exported by an Ethernet driver. */ @@ -1252,6 +1280,9 @@ struct eth_dev_ops { eth_ip_reassembly_conf_get_t ip_reassembly_conf_get; /** Set IP reassembly configuration */ eth_ip_reassembly_conf_set_t ip_reassembly_conf_set; + + /** Dump private info from device */ + eth_dev_priv_dump_t eth_dev_priv_dump; }; /** @@ -1487,6 +1518,23 @@ rte_eth_linkstatus_get(const struct rte_eth_dev *dev, *dst = __atomic_load_n(src, __ATOMIC_SEQ_CST); } +/** + * @internal + * Dummy DPDK callback for Rx/Tx packet burst. + * + * @param queue + * Pointer to Rx/Tx queue + * @param pkts + * Packet array + * @param nb_pkts + * Number of packets in packet array + */ +__rte_internal +uint16_t +rte_eth_pkt_burst_dummy(void *queue __rte_unused, + struct rte_mbuf **pkts __rte_unused, + uint16_t nb_pkts __rte_unused); + /** * Allocate an unique switch domain identifier. * @@ -1736,6 +1784,14 @@ int rte_eth_hairpin_queue_peer_unbind(uint16_t cur_port, uint16_t cur_queue, uint32_t direction); +/** + * @internal + * Register mbuf dynamic field and flag for IP reassembly incomplete case. + */ +__rte_internal +int +rte_eth_ip_reassembly_dynfield_register(int *field_offset, int *flag); + /* * Legacy ethdev API used internally by drivers. @@ -1834,4 +1890,8 @@ struct rte_eth_tunnel_filter_conf { uint16_t queue_id; /**< Queue assigned to if match */ }; +#ifdef __cplusplus +} +#endif + #endif /* _RTE_ETHDEV_DRIVER_H_ */