Merge pull request #17185 from yuwata/ethtool-update
ethtool: add several link modes
This commit is contained in:
commit
943142a97d
|
@ -112,21 +112,44 @@ static const char* const ethtool_link_mode_bit_table[] = {
|
||||||
[ETHTOOL_LINK_MODE_FEC_NONE_BIT] = "fec-none",
|
[ETHTOOL_LINK_MODE_FEC_NONE_BIT] = "fec-none",
|
||||||
[ETHTOOL_LINK_MODE_FEC_RS_BIT] = "fec-rs",
|
[ETHTOOL_LINK_MODE_FEC_RS_BIT] = "fec-rs",
|
||||||
[ETHTOOL_LINK_MODE_FEC_BASER_BIT] = "fec-baser",
|
[ETHTOOL_LINK_MODE_FEC_BASER_BIT] = "fec-baser",
|
||||||
[ETHTOOL_LINK_MODE_50000baseKR_Full_BIT] = "50000basekr_full",
|
[ETHTOOL_LINK_MODE_50000baseKR_Full_BIT] = "50000basekr-full",
|
||||||
[ETHTOOL_LINK_MODE_50000baseSR_Full_BIT] = "50000basesr_full",
|
[ETHTOOL_LINK_MODE_50000baseSR_Full_BIT] = "50000basesr-full",
|
||||||
[ETHTOOL_LINK_MODE_50000baseCR_Full_BIT] = "50000basecr_full",
|
[ETHTOOL_LINK_MODE_50000baseCR_Full_BIT] = "50000basecr-full",
|
||||||
[ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT] = "50000baselr_er_fr_full",
|
[ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT] = "50000baselr-er-fr-full",
|
||||||
[ETHTOOL_LINK_MODE_50000baseDR_Full_BIT] = "50000basedr_full",
|
[ETHTOOL_LINK_MODE_50000baseDR_Full_BIT] = "50000basedr-full",
|
||||||
[ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT] = "100000basekr2_full",
|
[ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT] = "100000basekr2-full",
|
||||||
[ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT] = "100000basesr2_full",
|
[ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT] = "100000basesr2-full",
|
||||||
[ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT] = "100000basecr2_full",
|
[ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT] = "100000basecr2-full",
|
||||||
[ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT] = "100000baselr2_er2_fr2_full",
|
[ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT] = "100000baselr2-er2-fr2-full",
|
||||||
[ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT] = "100000basedr2_full",
|
[ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT] = "100000basedr2-full",
|
||||||
[ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT] = "200000basekr4_full",
|
[ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT] = "200000basekr4-full",
|
||||||
[ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT] = "200000basesr4_full",
|
[ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT] = "200000basesr4-full",
|
||||||
[ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT] = "200000basecr4_full",
|
[ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT] = "200000baselr4-er4-fr4-full",
|
||||||
[ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT] = "200000baselr4_er4_fr4_full",
|
[ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT] = "200000basedr4-full",
|
||||||
[ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT] = "200000basedr4_full",
|
[ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT] = "200000basecr4-full",
|
||||||
|
[ETHTOOL_LINK_MODE_100baseT1_Full_BIT] = "100baset1-full",
|
||||||
|
[ETHTOOL_LINK_MODE_1000baseT1_Full_BIT] = "1000baset1-full",
|
||||||
|
[ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT] = "400000basekr8-full",
|
||||||
|
[ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT] = "400000basesr8-full",
|
||||||
|
[ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT] = "400000baselr8-er8-fr8-full",
|
||||||
|
[ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT] = "400000basedr8-full",
|
||||||
|
[ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT] = "400000basecr8-full",
|
||||||
|
[ETHTOOL_LINK_MODE_FEC_LLRS_BIT] = "fec-llrs",
|
||||||
|
[ETHTOOL_LINK_MODE_100000baseKR_Full_BIT] = "100000basekr-full",
|
||||||
|
[ETHTOOL_LINK_MODE_100000baseSR_Full_BIT] = "100000basesr-full",
|
||||||
|
[ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT] = "100000baselr-er-fr-full",
|
||||||
|
[ETHTOOL_LINK_MODE_100000baseCR_Full_BIT] = "100000basecr-full",
|
||||||
|
[ETHTOOL_LINK_MODE_100000baseDR_Full_BIT] = "100000basedr-full",
|
||||||
|
[ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT] = "200000basekr2-full",
|
||||||
|
[ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT] = "200000basesr2-full",
|
||||||
|
[ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT] = "200000baselr2-er2-fr2-full",
|
||||||
|
[ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT] = "200000basedr2-full",
|
||||||
|
[ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT] = "200000basecr2-full",
|
||||||
|
[ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT] = "400000basekr4-full",
|
||||||
|
[ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT] = "400000basesr4-full",
|
||||||
|
[ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT] = "400000baselr4-er4-fr4-full",
|
||||||
|
[ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT] = "400000basedr4-full",
|
||||||
|
[ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT] = "400000basecr4-full",
|
||||||
};
|
};
|
||||||
/* Make sure the array is large enough to fit all bits */
|
/* Make sure the array is large enough to fit all bits */
|
||||||
assert_cc((ELEMENTSOF(ethtool_link_mode_bit_table)-1) / 32 < N_ADVERTISE);
|
assert_cc((ELEMENTSOF(ethtool_link_mode_bit_table)-1) / 32 < N_ADVERTISE);
|
||||||
|
|
|
@ -263,10 +263,32 @@ struct ethtool_tunable {
|
||||||
#define ETHTOOL_PHY_FAST_LINK_DOWN_ON 0
|
#define ETHTOOL_PHY_FAST_LINK_DOWN_ON 0
|
||||||
#define ETHTOOL_PHY_FAST_LINK_DOWN_OFF 0xff
|
#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 {
|
enum phy_tunable_id {
|
||||||
ETHTOOL_PHY_ID_UNSPEC,
|
ETHTOOL_PHY_ID_UNSPEC,
|
||||||
ETHTOOL_PHY_DOWNSHIFT,
|
ETHTOOL_PHY_DOWNSHIFT,
|
||||||
ETHTOOL_PHY_FAST_LINK_DOWN,
|
ETHTOOL_PHY_FAST_LINK_DOWN,
|
||||||
|
ETHTOOL_PHY_EDPD,
|
||||||
/*
|
/*
|
||||||
* Add your fresh new phy tunable attribute above and remember to update
|
* Add your fresh new phy tunable attribute above and remember to update
|
||||||
* phy_tunable_strings[] in net/core/ethtool.c
|
* phy_tunable_strings[] in net/core/ethtool.c
|
||||||
|
@ -561,6 +583,76 @@ struct ethtool_pauseparam {
|
||||||
__u32 tx_pause;
|
__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
|
#define ETH_GSTRING_LEN 32
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -575,6 +667,13 @@ struct ethtool_pauseparam {
|
||||||
* @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
|
* @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
|
||||||
* @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
|
* @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
|
||||||
* @ETH_SS_PHY_TUNABLES: PHY tunable names
|
* @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 {
|
enum ethtool_stringset {
|
||||||
ETH_SS_TEST = 0,
|
ETH_SS_TEST = 0,
|
||||||
|
@ -586,6 +685,16 @@ enum ethtool_stringset {
|
||||||
ETH_SS_TUNABLES,
|
ETH_SS_TUNABLES,
|
||||||
ETH_SS_PHY_STATS,
|
ETH_SS_PHY_STATS,
|
||||||
ETH_SS_PHY_TUNABLES,
|
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_OFF_BIT,
|
||||||
ETHTOOL_FEC_RS_BIT,
|
ETHTOOL_FEC_RS_BIT,
|
||||||
ETHTOOL_FEC_BASER_BIT,
|
ETHTOOL_FEC_BASER_BIT,
|
||||||
|
ETHTOOL_FEC_LLRS_BIT,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_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_OFF (1 << ETHTOOL_FEC_OFF_BIT)
|
||||||
#define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT)
|
#define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT)
|
||||||
#define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT)
|
#define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT)
|
||||||
|
#define ETHTOOL_FEC_LLRS (1 << ETHTOOL_FEC_LLRS_BIT)
|
||||||
|
|
||||||
/* CMDs currently supported */
|
/* CMDs currently supported */
|
||||||
#define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings.
|
#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_200000baseLR4_ER4_FR4_Full_BIT = 64,
|
||||||
ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65,
|
ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65,
|
||||||
ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
|
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 */
|
/* must be last entry */
|
||||||
__ETHTOOL_LINK_MODE_MASK_NBITS
|
__ETHTOOL_LINK_MODE_MASK_NBITS
|
||||||
};
|
};
|
||||||
|
@ -1598,6 +1731,7 @@ enum ethtool_link_mode_bit_indices {
|
||||||
#define SPEED_56000 56000
|
#define SPEED_56000 56000
|
||||||
#define SPEED_100000 100000
|
#define SPEED_100000 100000
|
||||||
#define SPEED_200000 200000
|
#define SPEED_200000 200000
|
||||||
|
#define SPEED_400000 400000
|
||||||
|
|
||||||
#define SPEED_UNKNOWN -1
|
#define SPEED_UNKNOWN -1
|
||||||
|
|
||||||
|
@ -1623,6 +1757,18 @@ static inline int ethtool_validate_duplex(__u8 duplex)
|
||||||
return 0;
|
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. */
|
/* Which connector port. */
|
||||||
#define PORT_TP 0x00
|
#define PORT_TP 0x00
|
||||||
#define PORT_AUI 0x01
|
#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_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */
|
||||||
#define WAKE_FILTER (1 << 7)
|
#define WAKE_FILTER (1 << 7)
|
||||||
|
|
||||||
|
#define WOL_MODE_COUNT 8
|
||||||
|
|
||||||
/* L2-L4 network traffic flow types */
|
/* L2-L4 network traffic flow types */
|
||||||
#define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
|
#define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
|
||||||
#define UDP_V4_FLOW 0x02 /* hash or spec (udp_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;
|
__u8 eth_tp_mdix_ctrl;
|
||||||
__s8 link_mode_masks_nwords;
|
__s8 link_mode_masks_nwords;
|
||||||
__u8 transceiver;
|
__u8 transceiver;
|
||||||
__u8 reserved1[3];
|
__u8 master_slave_cfg;
|
||||||
|
__u8 master_slave_state;
|
||||||
|
__u8 reserved1[1];
|
||||||
__u32 reserved[7];
|
__u32 reserved[7];
|
||||||
__u32 link_mode_masks[0];
|
__u32 link_mode_masks[0];
|
||||||
/* layout of link_mode_masks fields:
|
/* layout of link_mode_masks fields:
|
||||||
|
|
Loading…
Reference in a new issue