net/sfc/base: add API to control UDP tunnel ports
[dpdk.git] / drivers / net / sfc / base / efx_mcdi.h
index a62e921..a95cdc0 100644 (file)
@@ -51,7 +51,7 @@ struct efx_mcdi_req_s {
        unsigned int    emr_cmd;
        uint8_t         *emr_in_buf;
        size_t          emr_in_length;
-       /* Outputs: retcode, buffer, length, and length used*/
+       /* Outputs: retcode, buffer, length, and length used */
        efx_rc_t        emr_rc;
        uint8_t         *emr_out_buf;
        size_t          emr_out_length;
@@ -135,6 +135,15 @@ efx_mcdi_version(
        __out_opt               uint32_t *buildp,
        __out_opt               efx_mcdi_boot_t *statusp);
 
+extern __checkReturn   efx_rc_t
+efx_mcdi_get_capabilities(
+       __in            efx_nic_t *enp,
+       __out_opt       uint32_t *flagsp,
+       __out_opt       uint16_t *rx_dpcpu_fw_idp,
+       __out_opt       uint16_t *tx_dpcpu_fw_idp,
+       __out_opt       uint32_t *flags2p,
+       __out_opt       uint32_t *tso2ncp);
+
 extern __checkReturn           efx_rc_t
 efx_mcdi_read_assertion(
        __in                    efx_nic_t *enp);
@@ -180,6 +189,18 @@ efx_mcdi_mac_spoofing_supported(
        __out                   boolean_t *supportedp);
 
 
+#if EFSYS_OPT_BIST
+#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD
+extern __checkReturn           efx_rc_t
+efx_mcdi_bist_enable_offline(
+       __in                    efx_nic_t *enp);
+#endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD */
+extern __checkReturn           efx_rc_t
+efx_mcdi_bist_start(
+       __in                    efx_nic_t *enp,
+       __in                    efx_bist_type_t type);
+#endif /* EFSYS_OPT_BIST */
+
 extern __checkReturn           efx_rc_t
 efx_mcdi_get_resource_limits(
        __in                    efx_nic_t *enp,
@@ -204,10 +225,16 @@ extern    __checkReturn   efx_rc_t
 efx_mcdi_mac_stats_periodic(
        __in            efx_nic_t *enp,
        __in            efsys_mem_t *esmp,
-       __in            uint16_t period,
+       __in            uint16_t period_ms,
        __in            boolean_t events);
 
 
+#if EFSYS_OPT_LOOPBACK
+extern __checkReturn   efx_rc_t
+efx_mcdi_get_loopback_modes(
+       __in            efx_nic_t *enp);
+#endif /* EFSYS_OPT_LOOPBACK */
+
 extern __checkReturn   efx_rc_t
 efx_mcdi_phy_module_get_info(
        __in                    efx_nic_t *enp,
@@ -355,6 +382,10 @@ efx_mcdi_phy_module_get_info(
        EFX_WORD_FIELD(*MCDI_OUT2(_emr, efx_word_t, _ofst),             \
                    EFX_WORD_0)
 
+#define        MCDI_OUT_WORD_FIELD(_emr, _ofst, _field)                        \
+       EFX_WORD_FIELD(*MCDI_OUT2(_emr, efx_word_t, _ofst),             \
+                      MC_CMD_ ## _field)
+
 #define        MCDI_OUT_DWORD(_emr, _ofst)                                     \
        EFX_DWORD_FIELD(*MCDI_OUT2(_emr, efx_dword_t, _ofst),           \
                        EFX_DWORD_0)