18153bc6fSChaoyong He /* SPDX-License-Identifier: BSD-3-Clause 28153bc6fSChaoyong He * Copyright (c) 2023 Corigine, Inc. 38153bc6fSChaoyong He * All rights reserved. 48153bc6fSChaoyong He */ 58153bc6fSChaoyong He 68153bc6fSChaoyong He #ifndef __NFP_NET_FLOW_H__ 78153bc6fSChaoyong He #define __NFP_NET_FLOW_H__ 88153bc6fSChaoyong He 98153bc6fSChaoyong He #include "nfp_net_common.h" 108153bc6fSChaoyong He 118153bc6fSChaoyong He struct nfp_net_flow_payload { 128153bc6fSChaoyong He uint16_t cmsg_type; 138153bc6fSChaoyong He uint8_t match_len; 148153bc6fSChaoyong He uint8_t action_len; 158153bc6fSChaoyong He char *match_data; 168153bc6fSChaoyong He char *action_data; 178153bc6fSChaoyong He }; 188153bc6fSChaoyong He 198153bc6fSChaoyong He struct rte_flow { 208153bc6fSChaoyong He struct nfp_net_flow_payload payload; 218153bc6fSChaoyong He uint32_t hash_key; 228153bc6fSChaoyong He uint32_t port_id; 23*0b9079d2SChaoyong He uint32_t position; /**< Use as priority */ 248153bc6fSChaoyong He }; 258153bc6fSChaoyong He 268153bc6fSChaoyong He int nfp_net_flow_priv_init(struct nfp_pf_dev *pf_dev, uint16_t port); 278153bc6fSChaoyong He void nfp_net_flow_priv_uninit(struct nfp_pf_dev *pf_dev, uint16_t port); 28*0b9079d2SChaoyong He int nfp_net_flow_ops_get(struct rte_eth_dev *dev, const struct rte_flow_ops **ops); 298153bc6fSChaoyong He 308153bc6fSChaoyong He #endif /* __NFP_NET_FLOW_H__ */ 31