1 /* SPDX-License-Identifier: BSD-3-Clause 2 * 3 * Copyright(c) 2019-2021 Xilinx, Inc. 4 * Copyright(c) 2017-2019 Solarflare Communications Inc. 5 * 6 * This software was jointly developed between OKTET Labs (under contract 7 * for Solarflare) and Solarflare Communications, Inc. 8 */ 9 10 #ifndef _SFC_FILTER_H 11 #define _SFC_FILTER_H 12 13 #include "efx.h" 14 15 #include "sfc_flow.h" 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 struct sfc_filter { 22 /** Number of elements in match_supported array */ 23 size_t supported_match_num; 24 /** Driver cache of supported filter match masks */ 25 uint32_t *supported_match; 26 /** 27 * Supports any of ip_proto, remote host or local host 28 * filters. This flag is used for filter match exceptions 29 */ 30 boolean_t supports_ip_proto_or_addr_filter; 31 /** 32 * Supports any of remote port or local port filters. 33 * This flag is used for filter match exceptions 34 */ 35 boolean_t supports_rem_or_local_port_filter; 36 }; 37 38 struct sfc_adapter; 39 40 int sfc_filter_attach(struct sfc_adapter *sa); 41 void sfc_filter_detach(struct sfc_adapter *sa); 42 43 boolean_t sfc_filter_is_match_supported(struct sfc_adapter *sa, uint32_t match); 44 45 #ifdef __cplusplus 46 } 47 #endif 48 #endif /* _SFC_FILTER_H */ 49