net/octeontx2: add flow MCAM utility functions
[dpdk.git] / drivers / net / sfc / base / ef10_filter.c
index a4d97f9..e4f8de5 100644 (file)
@@ -7,7 +7,7 @@
 #include "efx.h"
 #include "efx_impl.h"
 
-#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD || EFSYS_OPT_MEDFORD2
+#if EFX_OPTS_EF10()
 
 #if EFSYS_OPT_FILTER
 
@@ -94,9 +94,7 @@ ef10_filter_init(
        efx_rc_t rc;
        ef10_filter_table_t *eftp;
 
-       EFSYS_ASSERT(enp->en_family == EFX_FAMILY_HUNTINGTON ||
-           enp->en_family == EFX_FAMILY_MEDFORD ||
-           enp->en_family == EFX_FAMILY_MEDFORD2);
+       EFSYS_ASSERT(EFX_FAMILY_IS_EF10(enp));
 
 #define        MATCH_MASK(match) (EFX_MASK32(match) << EFX_LOW_BIT(match))
        EFX_STATIC_ASSERT(EFX_FILTER_MATCH_REM_HOST ==
@@ -154,9 +152,7 @@ fail1:
 ef10_filter_fini(
        __in            efx_nic_t *enp)
 {
-       EFSYS_ASSERT(enp->en_family == EFX_FAMILY_HUNTINGTON ||
-           enp->en_family == EFX_FAMILY_MEDFORD ||
-           enp->en_family == EFX_FAMILY_MEDFORD2);
+       EFSYS_ASSERT(EFX_FAMILY_IS_EF10(enp));
 
        if (enp->en_filter.ef_ef10_filter_table != NULL) {
                EFSYS_KMEM_FREE(enp->en_esip, sizeof (ef10_filter_table_t),
@@ -172,12 +168,11 @@ efx_mcdi_filter_op_add(
        __inout         ef10_filter_handle_t *handle)
 {
        efx_mcdi_req_t req;
-       uint8_t payload[MAX(MC_CMD_FILTER_OP_V3_IN_LEN,
-                           MC_CMD_FILTER_OP_EXT_OUT_LEN)];
+       EFX_MCDI_DECLARE_BUF(payload, MC_CMD_FILTER_OP_V3_IN_LEN,
+               MC_CMD_FILTER_OP_EXT_OUT_LEN);
        efx_filter_match_flags_t match_flags;
        efx_rc_t rc;
 
-       memset(payload, 0, sizeof (payload));
        req.emr_cmd = MC_CMD_FILTER_OP;
        req.emr_in_buf = payload;
        req.emr_in_length = MC_CMD_FILTER_OP_V3_IN_LEN;
@@ -207,8 +202,7 @@ efx_mcdi_filter_op_add(
                goto fail1;
        }
 
-       MCDI_IN_SET_DWORD(req, FILTER_OP_EXT_IN_PORT_ID,
-           EVB_PORT_ID_ASSIGNED);
+       MCDI_IN_SET_DWORD(req, FILTER_OP_EXT_IN_PORT_ID, enp->en_vport_id);
        MCDI_IN_SET_DWORD(req, FILTER_OP_EXT_IN_MATCH_FIELDS,
            match_flags);
        if (spec->efs_dmaq_id == EFX_FILTER_SPEC_RX_DMAQ_ID_DROP) {
@@ -376,11 +370,10 @@ efx_mcdi_filter_op_delete(
        __inout         ef10_filter_handle_t *handle)
 {
        efx_mcdi_req_t req;
-       uint8_t payload[MAX(MC_CMD_FILTER_OP_EXT_IN_LEN,
-                           MC_CMD_FILTER_OP_EXT_OUT_LEN)];
+       EFX_MCDI_DECLARE_BUF(payload, MC_CMD_FILTER_OP_EXT_IN_LEN,
+               MC_CMD_FILTER_OP_EXT_OUT_LEN);
        efx_rc_t rc;
 
-       memset(payload, 0, sizeof (payload));
        req.emr_cmd = MC_CMD_FILTER_OP;
        req.emr_in_buf = payload;
        req.emr_in_length = MC_CMD_FILTER_OP_EXT_IN_LEN;
@@ -547,9 +540,7 @@ ef10_filter_restore(
        efsys_lock_state_t state;
        efx_rc_t rc;
 
-       EFSYS_ASSERT(enp->en_family == EFX_FAMILY_HUNTINGTON ||
-           enp->en_family == EFX_FAMILY_MEDFORD ||
-           enp->en_family == EFX_FAMILY_MEDFORD2);
+       EFSYS_ASSERT(EFX_FAMILY_IS_EF10(enp));
 
        for (tbl_id = 0; tbl_id < EFX_EF10_FILTER_TBL_ROWS; tbl_id++) {
 
@@ -623,9 +614,7 @@ ef10_filter_add_internal(
        efsys_lock_state_t state;
        boolean_t locked = B_FALSE;
 
-       EFSYS_ASSERT(enp->en_family == EFX_FAMILY_HUNTINGTON ||
-           enp->en_family == EFX_FAMILY_MEDFORD ||
-           enp->en_family == EFX_FAMILY_MEDFORD2);
+       EFSYS_ASSERT(EFX_FAMILY_IS_EF10(enp));
 
        hash = ef10_filter_hash(spec);
 
@@ -896,9 +885,7 @@ ef10_filter_delete(
        efsys_lock_state_t state;
        boolean_t locked = B_FALSE;
 
-       EFSYS_ASSERT(enp->en_family == EFX_FAMILY_HUNTINGTON ||
-           enp->en_family == EFX_FAMILY_MEDFORD ||
-           enp->en_family == EFX_FAMILY_MEDFORD2);
+       EFSYS_ASSERT(EFX_FAMILY_IS_EF10(enp));
 
        hash = ef10_filter_hash(spec);
 
@@ -950,13 +937,12 @@ efx_mcdi_get_parser_disp_info(
        __out                           size_t *list_lengthp)
 {
        efx_mcdi_req_t req;
-       uint8_t payload[MAX(MC_CMD_GET_PARSER_DISP_INFO_IN_LEN,
-                           MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX)];
+       EFX_MCDI_DECLARE_BUF(payload, MC_CMD_GET_PARSER_DISP_INFO_IN_LEN,
+               MC_CMD_GET_PARSER_DISP_INFO_OUT_LENMAX);
        size_t matches_count;
        size_t list_size;
        efx_rc_t rc;
 
-       (void) memset(payload, 0, sizeof (payload));
        req.emr_cmd = MC_CMD_GET_PARSER_DISP_INFO;
        req.emr_in_buf = payload;
        req.emr_in_length = MC_CMD_GET_PARSER_DISP_INFO_IN_LEN;
@@ -1581,7 +1567,7 @@ ef10_filter_reconfigure(
        /*
         * Insert or renew unicast filters.
         *
-        * Frimware does not perform chaining on unicast filters. As traffic is
+        * Firmware does not perform chaining on unicast filters. As traffic is
         * therefore only delivered to the first matching filter, we should
         * always insert the specific filter for our MAC address, to try and
         * ensure we get that traffic.
@@ -1776,4 +1762,4 @@ ef10_filter_default_rxq_clear(
 
 #endif /* EFSYS_OPT_FILTER */
 
-#endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD || EFSYS_OPT_MEDFORD2 */
+#endif /* EFX_OPTS_EF10() */