xref: /dpdk/drivers/common/cnxk/roc_features.h (revision fca0bae93126541c90173d84dae1ead2fe9eeacc)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2022 Marvell.
3  */
4 #ifndef _ROC_FEATURES_H_
5 #define _ROC_FEATURES_H_
6 
7 static inline bool
8 roc_feature_sso_has_stash(void)
9 {
10 	return (roc_model_is_cn10kb() | roc_model_is_cn10ka_b0()) ? true : false;
11 }
12 
13 static inline bool
14 roc_feature_nix_has_inl_ipsec_mseg(void)
15 {
16 	return (roc_model_is_cn10kb() || roc_model_is_cn10ka_b0());
17 }
18 
19 static inline bool
20 roc_feature_nix_has_drop_re_mask(void)
21 {
22 	return (roc_model_is_cn10kb() || roc_model_is_cn10ka_b0());
23 }
24 
25 static inline bool
26 roc_feature_nix_has_inl_rq_mask(void)
27 {
28 	return (roc_model_is_cn10kb() || roc_model_is_cn10ka_b0());
29 }
30 
31 static inline bool
32 roc_feature_nix_has_own_meta_aura(void)
33 {
34 	return (roc_model_is_cn10kb() || roc_model_is_cn10ka_b0());
35 }
36 
37 static inline bool
38 roc_feature_nix_has_late_bp(void)
39 {
40 	return (roc_model_is_cn10kb() || roc_model_is_cn10ka_b0());
41 }
42 
43 static inline bool
44 roc_feature_nix_has_reass(void)
45 {
46 	return roc_model_is_cn10ka();
47 }
48 
49 static inline bool
50 roc_feature_nix_has_cqe_stash(void)
51 {
52 	return roc_model_is_cn10ka_b0();
53 }
54 
55 static inline bool
56 roc_feature_nix_has_rxchan_multi_bpid(void)
57 {
58 	if (roc_model_is_cn10kb() || roc_model_is_cn10ka_b0())
59 		return true;
60 	return false;
61 }
62 
63 static inline bool
64 roc_feature_nix_has_age_drop_stats(void)
65 {
66 	return (roc_model_is_cn10kb() || roc_model_is_cn10ka_b0());
67 }
68 
69 static inline bool
70 roc_feature_nix_has_macsec(void)
71 {
72 	return roc_model_is_cn10kb();
73 }
74 
75 static inline bool
76 roc_feature_bphy_has_macsec(void)
77 {
78 	return roc_model_is_cnf10kb();
79 }
80 
81 static inline bool
82 roc_feature_nix_has_inl_ipsec(void)
83 {
84 	return !roc_model_is_cnf10kb();
85 }
86 
87 static inline bool
88 roc_feature_nix_has_rx_inject(void)
89 {
90 	return (roc_model_is_cn10ka_b0() || roc_model_is_cn10kb());
91 }
92 
93 static inline bool
94 roc_feature_nix_has_second_pass_drop(void)
95 {
96 	return 0;
97 }
98 
99 static inline bool
100 roc_feature_dpi_has_priority(void)
101 {
102 	return roc_model_is_cn10k();
103 }
104 
105 #endif
106