sfxge(4): provide information about supported tunnels
VXLAN/NVGRE (and Geneve) support is available on SFN8xxx with full-feature firmware variant running. Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18071
This commit is contained in:
parent
6c3839dc7c
commit
23174883ee
@ -1075,6 +1075,16 @@ ef10_get_datapath_caps(
|
||||
encp->enc_mac_stats_40g_tx_size_bins =
|
||||
CAP_FLAG2(flags2, MAC_STATS_40G_TX_SIZE_BINS) ? B_TRUE : B_FALSE;
|
||||
|
||||
/*
|
||||
* Check if firmware supports VXLAN and NVGRE tunnels.
|
||||
* The capability indicates Geneve protocol support as well.
|
||||
*/
|
||||
if (CAP_FLAG(flags, VXLAN_NVGRE))
|
||||
encp->enc_tunnel_encapsulations_supported =
|
||||
(1u << EFX_TUNNEL_PROTOCOL_VXLAN) |
|
||||
(1u << EFX_TUNNEL_PROTOCOL_GENEVE) |
|
||||
(1u << EFX_TUNNEL_PROTOCOL_NVGRE);
|
||||
|
||||
#undef CAP_FLAG
|
||||
#undef CAP_FLAG2
|
||||
|
||||
|
@ -1095,6 +1095,14 @@ efx_bist_stop(
|
||||
#define EFX_FEATURE_FW_ASSISTED_TSO_V2 0x00002000
|
||||
#define EFX_FEATURE_PACKED_STREAM 0x00004000
|
||||
|
||||
typedef enum efx_tunnel_protocol_e {
|
||||
EFX_TUNNEL_PROTOCOL_NONE = 0,
|
||||
EFX_TUNNEL_PROTOCOL_VXLAN,
|
||||
EFX_TUNNEL_PROTOCOL_GENEVE,
|
||||
EFX_TUNNEL_PROTOCOL_NVGRE,
|
||||
EFX_TUNNEL_NPROTOS
|
||||
} efx_tunnel_protocol_t;
|
||||
|
||||
typedef struct efx_nic_cfg_s {
|
||||
uint32_t enc_board_type;
|
||||
uint32_t enc_phy_type;
|
||||
@ -1194,6 +1202,7 @@ typedef struct efx_nic_cfg_s {
|
||||
boolean_t enc_rx_var_packed_stream_supported;
|
||||
boolean_t enc_pm_and_rxdp_counters;
|
||||
boolean_t enc_mac_stats_40g_tx_size_bins;
|
||||
uint32_t enc_tunnel_encapsulations_supported;
|
||||
/* External port identifier */
|
||||
uint8_t enc_external_port;
|
||||
uint32_t enc_mcdi_max_payload_length;
|
||||
|
Loading…
Reference in New Issue
Block a user