shared/linux: update ethtool.h
This commit is contained in:
parent
714fdbad84
commit
7207d82c13
|
@ -263,10 +263,32 @@ struct ethtool_tunable {
|
|||
#define ETHTOOL_PHY_FAST_LINK_DOWN_ON 0
|
||||
#define ETHTOOL_PHY_FAST_LINK_DOWN_OFF 0xff
|
||||
|
||||
/* Energy Detect Power Down (EDPD) is a feature supported by some PHYs, where
|
||||
* the PHY's RX & TX blocks are put into a low-power mode when there is no
|
||||
* link detected (typically cable is un-plugged). For RX, only a minimal
|
||||
* link-detection is available, and for TX the PHY wakes up to send link pulses
|
||||
* to avoid any lock-ups in case the peer PHY may also be running in EDPD mode.
|
||||
*
|
||||
* Some PHYs may support configuration of the wake-up interval for TX pulses,
|
||||
* and some PHYs may support only disabling TX pulses entirely. For the latter
|
||||
* a special value is required (ETHTOOL_PHY_EDPD_NO_TX) so that this can be
|
||||
* configured from userspace (should the user want it).
|
||||
*
|
||||
* The interval units for TX wake-up are in milliseconds, since this should
|
||||
* cover a reasonable range of intervals:
|
||||
* - from 1 millisecond, which does not sound like much of a power-saver
|
||||
* - to ~65 seconds which is quite a lot to wait for a link to come up when
|
||||
* plugging a cable
|
||||
*/
|
||||
#define ETHTOOL_PHY_EDPD_DFLT_TX_MSECS 0xffff
|
||||
#define ETHTOOL_PHY_EDPD_NO_TX 0xfffe
|
||||
#define ETHTOOL_PHY_EDPD_DISABLE 0
|
||||
|
||||
enum phy_tunable_id {
|
||||
ETHTOOL_PHY_ID_UNSPEC,
|
||||
ETHTOOL_PHY_DOWNSHIFT,
|
||||
ETHTOOL_PHY_FAST_LINK_DOWN,
|
||||
ETHTOOL_PHY_EDPD,
|
||||
/*
|
||||
* Add your fresh new phy tunable attribute above and remember to update
|
||||
* phy_tunable_strings[] in net/core/ethtool.c
|
||||
|
@ -561,6 +583,76 @@ struct ethtool_pauseparam {
|
|||
__u32 tx_pause;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_state - link extended state
|
||||
*/
|
||||
enum ethtool_link_ext_state {
|
||||
ETHTOOL_LINK_EXT_STATE_AUTONEG,
|
||||
ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE,
|
||||
ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH,
|
||||
ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY,
|
||||
ETHTOOL_LINK_EXT_STATE_NO_CABLE,
|
||||
ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE,
|
||||
ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE,
|
||||
ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
|
||||
ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
|
||||
ETHTOOL_LINK_EXT_STATE_OVERHEAT,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_autoneg - more information in addition to
|
||||
* ETHTOOL_LINK_EXT_STATE_AUTONEG.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_autoneg {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_link_training - more information in addition to
|
||||
* ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_link_training {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_logical_mismatch - more information in addition
|
||||
* to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_link_logical_mismatch {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_bad_signal_integrity - more information in
|
||||
* addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_bad_signal_integrity {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_cable_issue - more information in
|
||||
* addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_cable_issue {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
|
||||
};
|
||||
|
||||
#define ETH_GSTRING_LEN 32
|
||||
|
||||
/**
|
||||
|
@ -575,6 +667,13 @@ struct ethtool_pauseparam {
|
|||
* @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
|
||||
* @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
|
||||
* @ETH_SS_PHY_TUNABLES: PHY tunable names
|
||||
* @ETH_SS_LINK_MODES: link mode names
|
||||
* @ETH_SS_MSG_CLASSES: debug message class names
|
||||
* @ETH_SS_WOL_MODES: wake-on-lan modes
|
||||
* @ETH_SS_SOF_TIMESTAMPING: SOF_TIMESTAMPING_* flags
|
||||
* @ETH_SS_TS_TX_TYPES: timestamping Tx types
|
||||
* @ETH_SS_TS_RX_FILTERS: timestamping Rx filters
|
||||
* @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types
|
||||
*/
|
||||
enum ethtool_stringset {
|
||||
ETH_SS_TEST = 0,
|
||||
|
@ -586,6 +685,16 @@ enum ethtool_stringset {
|
|||
ETH_SS_TUNABLES,
|
||||
ETH_SS_PHY_STATS,
|
||||
ETH_SS_PHY_TUNABLES,
|
||||
ETH_SS_LINK_MODES,
|
||||
ETH_SS_MSG_CLASSES,
|
||||
ETH_SS_WOL_MODES,
|
||||
ETH_SS_SOF_TIMESTAMPING,
|
||||
ETH_SS_TS_TX_TYPES,
|
||||
ETH_SS_TS_RX_FILTERS,
|
||||
ETH_SS_UDP_TUNNEL_TYPES,
|
||||
|
||||
/* add new constants above here */
|
||||
ETH_SS_COUNT
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1303,6 +1412,7 @@ enum ethtool_fec_config_bits {
|
|||
ETHTOOL_FEC_OFF_BIT,
|
||||
ETHTOOL_FEC_RS_BIT,
|
||||
ETHTOOL_FEC_BASER_BIT,
|
||||
ETHTOOL_FEC_LLRS_BIT,
|
||||
};
|
||||
|
||||
#define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT)
|
||||
|
@ -1310,6 +1420,7 @@ enum ethtool_fec_config_bits {
|
|||
#define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT)
|
||||
#define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT)
|
||||
#define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT)
|
||||
#define ETHTOOL_FEC_LLRS (1 << ETHTOOL_FEC_LLRS_BIT)
|
||||
|
||||
/* CMDs currently supported */
|
||||
#define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings.
|
||||
|
@ -1487,7 +1598,29 @@ enum ethtool_link_mode_bit_indices {
|
|||
ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64,
|
||||
ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65,
|
||||
ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
|
||||
|
||||
ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67,
|
||||
ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68,
|
||||
ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69,
|
||||
ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70,
|
||||
ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71,
|
||||
ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72,
|
||||
ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73,
|
||||
ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74,
|
||||
ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75,
|
||||
ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76,
|
||||
ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77,
|
||||
ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78,
|
||||
ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79,
|
||||
ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80,
|
||||
ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81,
|
||||
ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82,
|
||||
ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83,
|
||||
ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84,
|
||||
ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85,
|
||||
ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86,
|
||||
ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87,
|
||||
ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88,
|
||||
ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89,
|
||||
/* must be last entry */
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS
|
||||
};
|
||||
|
@ -1598,6 +1731,7 @@ enum ethtool_link_mode_bit_indices {
|
|||
#define SPEED_56000 56000
|
||||
#define SPEED_100000 100000
|
||||
#define SPEED_200000 200000
|
||||
#define SPEED_400000 400000
|
||||
|
||||
#define SPEED_UNKNOWN -1
|
||||
|
||||
|
@ -1623,6 +1757,18 @@ static inline int ethtool_validate_duplex(__u8 duplex)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#define MASTER_SLAVE_CFG_UNSUPPORTED 0
|
||||
#define MASTER_SLAVE_CFG_UNKNOWN 1
|
||||
#define MASTER_SLAVE_CFG_MASTER_PREFERRED 2
|
||||
#define MASTER_SLAVE_CFG_SLAVE_PREFERRED 3
|
||||
#define MASTER_SLAVE_CFG_MASTER_FORCE 4
|
||||
#define MASTER_SLAVE_CFG_SLAVE_FORCE 5
|
||||
#define MASTER_SLAVE_STATE_UNSUPPORTED 0
|
||||
#define MASTER_SLAVE_STATE_UNKNOWN 1
|
||||
#define MASTER_SLAVE_STATE_MASTER 2
|
||||
#define MASTER_SLAVE_STATE_SLAVE 3
|
||||
#define MASTER_SLAVE_STATE_ERR 4
|
||||
|
||||
/* Which connector port. */
|
||||
#define PORT_TP 0x00
|
||||
#define PORT_AUI 0x01
|
||||
|
@ -1662,6 +1808,8 @@ static inline int ethtool_validate_duplex(__u8 duplex)
|
|||
#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */
|
||||
#define WAKE_FILTER (1 << 7)
|
||||
|
||||
#define WOL_MODE_COUNT 8
|
||||
|
||||
/* L2-L4 network traffic flow types */
|
||||
#define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
|
||||
#define UDP_V4_FLOW 0x02 /* hash or spec (udp_ip4_spec) */
|
||||
|
@ -1859,7 +2007,9 @@ struct ethtool_link_settings {
|
|||
__u8 eth_tp_mdix_ctrl;
|
||||
__s8 link_mode_masks_nwords;
|
||||
__u8 transceiver;
|
||||
__u8 reserved1[3];
|
||||
__u8 master_slave_cfg;
|
||||
__u8 master_slave_state;
|
||||
__u8 reserved1[1];
|
||||
__u32 reserved[7];
|
||||
__u32 link_mode_masks[0];
|
||||
/* layout of link_mode_masks fields:
|
||||
|
|
Loading…
Reference in New Issue