[1/2] common/sfc_efx/base: update MCDI headers for MAE privilege
Checks
Commit Message
VFs and unprivileged PFs should not be able to control MAE.
Add MAE privilege to MCDI headers in order to reflect that.
Fixes: 84d3fb7d7e1e ("common/sfc_efx/base: add MAE definitions to MCDI")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
---
drivers/common/sfc_efx/base/efx_regs_mcdi.h | 54 +++++++++++++--------
1 file changed, 34 insertions(+), 20 deletions(-)
Comments
On 12/11/20 6:34 PM, Ivan Malov wrote:
> VFs and unprivileged PFs should not be able to control MAE.
> Add MAE privilege to MCDI headers in order to reflect that.
>
> Fixes: 84d3fb7d7e1e ("common/sfc_efx/base: add MAE definitions to MCDI")
> Cc: stable@dpdk.org
>
> Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
On 12/11/2020 3:37 PM, Andrew Rybchenko wrote:
> On 12/11/20 6:34 PM, Ivan Malov wrote:
>> VFs and unprivileged PFs should not be able to control MAE.
>> Add MAE privilege to MCDI headers in order to reflect that.
>>
>> Fixes: 84d3fb7d7e1e ("common/sfc_efx/base: add MAE definitions to MCDI")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
>
> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
>
Series applied to dpdk-next-net/main, thanks.
@@ -20349,6 +20349,8 @@
* SF-117064-DG for background).
*/
#define MC_CMD_PRIVILEGE_MASK_IN_GRP_ADMIN_TSA_UNBOUND 0x8000
+/* enum: Control the Match-Action Engine if present. See mcdi_mae.yml. */
+#define MC_CMD_PRIVILEGE_MASK_IN_GRP_MAE 0x10000
/* enum: Set this bit to indicate that a new privilege mask is to be set,
* otherwise the command will only read the existing mask.
*/
@@ -26823,7 +26825,7 @@
#define MC_CMD_MAE_GET_AR_CAPS 0x141
#undef MC_CMD_0x141_PRIVILEGE_CTG
-#define MC_CMD_0x141_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x141_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_GET_AR_CAPS_IN msgrequest */
#define MC_CMD_MAE_GET_AR_CAPS_IN_LEN 0
@@ -26855,7 +26857,7 @@
#define MC_CMD_MAE_GET_OR_CAPS 0x142
#undef MC_CMD_0x142_PRIVILEGE_CTG
-#define MC_CMD_0x142_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x142_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_GET_OR_CAPS_IN msgrequest */
#define MC_CMD_MAE_GET_OR_CAPS_IN_LEN 0
@@ -26885,7 +26887,7 @@
#define MC_CMD_MAE_COUNTER_ALLOC 0x143
#undef MC_CMD_0x143_PRIVILEGE_CTG
-#define MC_CMD_0x143_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x143_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_COUNTER_ALLOC_IN msgrequest */
#define MC_CMD_MAE_COUNTER_ALLOC_IN_LEN 4
@@ -26928,7 +26930,7 @@
#define MC_CMD_MAE_COUNTER_FREE 0x144
#undef MC_CMD_0x144_PRIVILEGE_CTG
-#define MC_CMD_0x144_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x144_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_COUNTER_FREE_IN msgrequest */
#define MC_CMD_MAE_COUNTER_FREE_IN_LENMIN 8
@@ -26993,6 +26995,9 @@
* delivering packets to the current queue first.
*/
#define MC_CMD_MAE_COUNTERS_STREAM_START 0x151
+#undef MC_CMD_0x151_PRIVILEGE_CTG
+
+#define MC_CMD_0x151_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_COUNTERS_STREAM_START_IN msgrequest */
#define MC_CMD_MAE_COUNTERS_STREAM_START_IN_LEN 8
@@ -27026,6 +27031,9 @@
* Stop streaming counter values to the specified RxQ.
*/
#define MC_CMD_MAE_COUNTERS_STREAM_STOP 0x152
+#undef MC_CMD_0x152_PRIVILEGE_CTG
+
+#define MC_CMD_0x152_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_COUNTERS_STREAM_STOP_IN msgrequest */
#define MC_CMD_MAE_COUNTERS_STREAM_STOP_IN_LEN 2
@@ -27052,6 +27060,9 @@
* MAE_COUNTERS_PACKETISER_STREAM_START/PACKET_SIZE and rung the doorbell.
*/
#define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS 0x153
+#undef MC_CMD_0x153_PRIVILEGE_CTG
+
+#define MC_CMD_0x153_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN msgrequest */
#define MC_CMD_MAE_COUNTERS_STREAM_GIVE_CREDITS_IN_LEN 4
@@ -27070,7 +27081,7 @@
#define MC_CMD_MAE_ENCAP_HEADER_ALLOC 0x148
#undef MC_CMD_0x148_PRIVILEGE_CTG
-#define MC_CMD_0x148_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x148_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN msgrequest */
#define MC_CMD_MAE_ENCAP_HEADER_ALLOC_IN_LENMIN 4
@@ -27103,7 +27114,7 @@
#define MC_CMD_MAE_ENCAP_HEADER_UPDATE 0x149
#undef MC_CMD_0x149_PRIVILEGE_CTG
-#define MC_CMD_0x149_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x149_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN msgrequest */
#define MC_CMD_MAE_ENCAP_HEADER_UPDATE_IN_LENMIN 8
@@ -27132,7 +27143,7 @@
#define MC_CMD_MAE_ENCAP_HEADER_FREE 0x14a
#undef MC_CMD_0x14a_PRIVILEGE_CTG
-#define MC_CMD_0x14a_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x14a_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_ENCAP_HEADER_FREE_IN msgrequest */
#define MC_CMD_MAE_ENCAP_HEADER_FREE_IN_LENMIN 4
@@ -27170,7 +27181,7 @@
#define MC_CMD_MAE_MAC_ADDR_ALLOC 0x15e
#undef MC_CMD_0x15e_PRIVILEGE_CTG
-#define MC_CMD_0x15e_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x15e_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_MAC_ADDR_ALLOC_IN msgrequest */
#define MC_CMD_MAE_MAC_ADDR_ALLOC_IN_LEN 6
@@ -27195,7 +27206,7 @@
#define MC_CMD_MAE_MAC_ADDR_FREE 0x15f
#undef MC_CMD_0x15f_PRIVILEGE_CTG
-#define MC_CMD_0x15f_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x15f_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_MAC_ADDR_FREE_IN msgrequest */
#define MC_CMD_MAE_MAC_ADDR_FREE_IN_LENMIN 4
@@ -27232,7 +27243,7 @@
#define MC_CMD_MAE_ACTION_SET_ALLOC 0x14d
#undef MC_CMD_0x14d_PRIVILEGE_CTG
-#define MC_CMD_0x14d_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x14d_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_ACTION_SET_ALLOC_IN msgrequest */
#define MC_CMD_MAE_ACTION_SET_ALLOC_IN_LEN 44
@@ -27317,7 +27328,7 @@
#define MC_CMD_MAE_ACTION_SET_FREE 0x14e
#undef MC_CMD_0x14e_PRIVILEGE_CTG
-#define MC_CMD_0x14e_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x14e_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_ACTION_SET_FREE_IN msgrequest */
#define MC_CMD_MAE_ACTION_SET_FREE_IN_LENMIN 4
@@ -27355,7 +27366,7 @@
#define MC_CMD_MAE_ACTION_SET_LIST_ALLOC 0x14f
#undef MC_CMD_0x14f_PRIVILEGE_CTG
-#define MC_CMD_0x14f_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x14f_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN msgrequest */
#define MC_CMD_MAE_ACTION_SET_LIST_ALLOC_IN_LENMIN 8
@@ -27398,7 +27409,7 @@
#define MC_CMD_MAE_ACTION_SET_LIST_FREE 0x150
#undef MC_CMD_0x150_PRIVILEGE_CTG
-#define MC_CMD_0x150_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x150_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_ACTION_SET_LIST_FREE_IN msgrequest */
#define MC_CMD_MAE_ACTION_SET_LIST_FREE_IN_LENMIN 4
@@ -27435,7 +27446,7 @@
#define MC_CMD_MAE_OUTER_RULE_INSERT 0x15a
#undef MC_CMD_0x15a_PRIVILEGE_CTG
-#define MC_CMD_0x15a_PRIVILEGE_CTG SRIOV_CTG_ADMIN
+#define MC_CMD_0x15a_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_OUTER_RULE_INSERT_IN msgrequest */
#define MC_CMD_MAE_OUTER_RULE_INSERT_IN_LENMIN 16
@@ -27495,7 +27506,7 @@
#define MC_CMD_MAE_OUTER_RULE_REMOVE 0x15b
#undef MC_CMD_0x15b_PRIVILEGE_CTG
-#define MC_CMD_0x15b_PRIVILEGE_CTG SRIOV_CTG_ADMIN
+#define MC_CMD_0x15b_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_OUTER_RULE_REMOVE_IN msgrequest */
#define MC_CMD_MAE_OUTER_RULE_REMOVE_IN_LENMIN 4
@@ -27577,7 +27588,7 @@
#define MC_CMD_MAE_ACTION_RULE_INSERT 0x15c
#undef MC_CMD_0x15c_PRIVILEGE_CTG
-#define MC_CMD_0x15c_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x15c_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_ACTION_RULE_INSERT_IN msgrequest */
#define MC_CMD_MAE_ACTION_RULE_INSERT_IN_LENMIN 28
@@ -27618,7 +27629,7 @@
#define MC_CMD_MAE_ACTION_RULE_UPDATE 0x15d
#undef MC_CMD_0x15d_PRIVILEGE_CTG
-#define MC_CMD_0x15d_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x15d_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_ACTION_RULE_UPDATE_IN msgrequest */
#define MC_CMD_MAE_ACTION_RULE_UPDATE_IN_LEN 24
@@ -27639,7 +27650,7 @@
#define MC_CMD_MAE_ACTION_RULE_DELETE 0x155
#undef MC_CMD_0x155_PRIVILEGE_CTG
-#define MC_CMD_0x155_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x155_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_ACTION_RULE_DELETE_IN msgrequest */
#define MC_CMD_MAE_ACTION_RULE_DELETE_IN_LENMIN 4
@@ -27696,7 +27707,7 @@
#define MC_CMD_MAE_MPORT_ALLOC 0x163
#undef MC_CMD_0x163_PRIVILEGE_CTG
-#define MC_CMD_0x163_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x163_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_MPORT_ALLOC_IN msgrequest */
#define MC_CMD_MAE_MPORT_ALLOC_IN_LEN 20
@@ -27803,7 +27814,7 @@
#define MC_CMD_MAE_MPORT_FREE 0x164
#undef MC_CMD_0x164_PRIVILEGE_CTG
-#define MC_CMD_0x164_PRIVILEGE_CTG SRIOV_CTG_GENERAL
+#define MC_CMD_0x164_PRIVILEGE_CTG SRIOV_CTG_MAE
/* MC_CMD_MAE_MPORT_FREE_IN msgrequest */
#define MC_CMD_MAE_MPORT_FREE_IN_LEN 4
@@ -27907,6 +27918,9 @@
/* MC_CMD_MAE_MPORT_ENUMERATE
*/
#define MC_CMD_MAE_MPORT_ENUMERATE 0x17c
+#undef MC_CMD_0x17c_PRIVILEGE_CTG
+
+#define MC_CMD_0x17c_PRIVILEGE_CTG SRIOV_CTG_GENERAL
/* MC_CMD_MAE_MPORT_ENUMERATE_IN msgrequest */
#define MC_CMD_MAE_MPORT_ENUMERATE_IN_LEN 0