net/sfc/base: import loopback control
[dpdk.git] / drivers / net / sfc / base / ef10_impl.h
index 9d24651..01c48c8 100644 (file)
@@ -259,6 +259,16 @@ extern                     void
 ef10_mac_filter_default_rxq_clear(
        __in            efx_nic_t *enp);
 
+#if EFSYS_OPT_LOOPBACK
+
+extern __checkReturn   efx_rc_t
+ef10_mac_loopback_set(
+       __in            efx_nic_t *enp,
+       __in            efx_link_mode_t link_mode,
+       __in            efx_loopback_type_t loopback_type);
+
+#endif /* EFSYS_OPT_LOOPBACK */
+
 #if EFSYS_OPT_MAC_STATS
 
 extern __checkReturn                   efx_rc_t
@@ -337,6 +347,9 @@ typedef struct ef10_link_state_s {
        uint32_t                els_lp_cap_mask;
        unsigned int            els_fcntl;
        efx_link_mode_t         els_link_mode;
+#if EFSYS_OPT_LOOPBACK
+       efx_loopback_type_t     els_loopback;
+#endif
        boolean_t               els_mac_up;
 } ef10_link_state_t;
 
@@ -581,6 +594,35 @@ ef10_rx_scatter_enable(
 #endif /* EFSYS_OPT_RX_SCATTER */
 
 
+#if EFSYS_OPT_RX_SCALE
+
+extern __checkReturn   efx_rc_t
+ef10_rx_scale_mode_set(
+       __in            efx_nic_t *enp,
+       __in            efx_rx_hash_alg_t alg,
+       __in            efx_rx_hash_type_t type,
+       __in            boolean_t insert);
+
+extern __checkReturn   efx_rc_t
+ef10_rx_scale_key_set(
+       __in            efx_nic_t *enp,
+       __in_ecount(n)  uint8_t *key,
+       __in            size_t n);
+
+extern __checkReturn   efx_rc_t
+ef10_rx_scale_tbl_set(
+       __in            efx_nic_t *enp,
+       __in_ecount(n)  unsigned int *table,
+       __in            size_t n);
+
+extern __checkReturn   uint32_t
+ef10_rx_prefix_hash(
+       __in            efx_nic_t *enp,
+       __in            efx_rx_hash_alg_t func,
+       __in            uint8_t *buffer);
+
+#endif /* EFSYS_OPT_RX_SCALE */
+
 extern __checkReturn   efx_rc_t
 ef10_rx_prefix_pktlen(
        __in            efx_nic_t *enp,