.. | .. |
---|
91 | 91 | * %ETHTOOL_GSET to get the current values before making specific |
---|
92 | 92 | * changes and then applying them with %ETHTOOL_SSET. |
---|
93 | 93 | * |
---|
94 | | - * Drivers that implement set_settings() should validate all fields |
---|
95 | | - * other than @cmd that are not described as read-only or deprecated, |
---|
96 | | - * and must ignore all fields described as read-only. |
---|
97 | | - * |
---|
98 | 94 | * Deprecated fields should be ignored by both users and drivers. |
---|
99 | 95 | */ |
---|
100 | 96 | struct ethtool_cmd { |
---|
.. | .. |
---|
256 | 252 | #define DOWNSHIFT_DEV_DEFAULT_COUNT 0xff |
---|
257 | 253 | #define DOWNSHIFT_DEV_DISABLE 0 |
---|
258 | 254 | |
---|
| 255 | +/* Time in msecs after which link is reported as down |
---|
| 256 | + * 0 = lowest time supported by the PHY |
---|
| 257 | + * 0xff = off, link down detection according to standard |
---|
| 258 | + */ |
---|
| 259 | +#define ETHTOOL_PHY_FAST_LINK_DOWN_ON 0 |
---|
| 260 | +#define ETHTOOL_PHY_FAST_LINK_DOWN_OFF 0xff |
---|
| 261 | + |
---|
| 262 | +/* Energy Detect Power Down (EDPD) is a feature supported by some PHYs, where |
---|
| 263 | + * the PHY's RX & TX blocks are put into a low-power mode when there is no |
---|
| 264 | + * link detected (typically cable is un-plugged). For RX, only a minimal |
---|
| 265 | + * link-detection is available, and for TX the PHY wakes up to send link pulses |
---|
| 266 | + * to avoid any lock-ups in case the peer PHY may also be running in EDPD mode. |
---|
| 267 | + * |
---|
| 268 | + * Some PHYs may support configuration of the wake-up interval for TX pulses, |
---|
| 269 | + * and some PHYs may support only disabling TX pulses entirely. For the latter |
---|
| 270 | + * a special value is required (ETHTOOL_PHY_EDPD_NO_TX) so that this can be |
---|
| 271 | + * configured from userspace (should the user want it). |
---|
| 272 | + * |
---|
| 273 | + * The interval units for TX wake-up are in milliseconds, since this should |
---|
| 274 | + * cover a reasonable range of intervals: |
---|
| 275 | + * - from 1 millisecond, which does not sound like much of a power-saver |
---|
| 276 | + * - to ~65 seconds which is quite a lot to wait for a link to come up when |
---|
| 277 | + * plugging a cable |
---|
| 278 | + */ |
---|
| 279 | +#define ETHTOOL_PHY_EDPD_DFLT_TX_MSECS 0xffff |
---|
| 280 | +#define ETHTOOL_PHY_EDPD_NO_TX 0xfffe |
---|
| 281 | +#define ETHTOOL_PHY_EDPD_DISABLE 0 |
---|
| 282 | + |
---|
259 | 283 | enum phy_tunable_id { |
---|
260 | 284 | ETHTOOL_PHY_ID_UNSPEC, |
---|
261 | 285 | ETHTOOL_PHY_DOWNSHIFT, |
---|
| 286 | + ETHTOOL_PHY_FAST_LINK_DOWN, |
---|
| 287 | + ETHTOOL_PHY_EDPD, |
---|
262 | 288 | /* |
---|
263 | 289 | * Add your fresh new phy tunable attribute above and remember to update |
---|
264 | 290 | * phy_tunable_strings[] in net/ethtool/common.c |
---|
.. | .. |
---|
553 | 579 | __u32 tx_pause; |
---|
554 | 580 | }; |
---|
555 | 581 | |
---|
| 582 | +/** |
---|
| 583 | + * enum ethtool_link_ext_state - link extended state |
---|
| 584 | + */ |
---|
| 585 | +enum ethtool_link_ext_state { |
---|
| 586 | + ETHTOOL_LINK_EXT_STATE_AUTONEG, |
---|
| 587 | + ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE, |
---|
| 588 | + ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH, |
---|
| 589 | + ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY, |
---|
| 590 | + ETHTOOL_LINK_EXT_STATE_NO_CABLE, |
---|
| 591 | + ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE, |
---|
| 592 | + ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE, |
---|
| 593 | + ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE, |
---|
| 594 | + ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED, |
---|
| 595 | + ETHTOOL_LINK_EXT_STATE_OVERHEAT, |
---|
| 596 | +}; |
---|
| 597 | + |
---|
| 598 | +/** |
---|
| 599 | + * enum ethtool_link_ext_substate_autoneg - more information in addition to |
---|
| 600 | + * ETHTOOL_LINK_EXT_STATE_AUTONEG. |
---|
| 601 | + */ |
---|
| 602 | +enum ethtool_link_ext_substate_autoneg { |
---|
| 603 | + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1, |
---|
| 604 | + ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED, |
---|
| 605 | + ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED, |
---|
| 606 | + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE, |
---|
| 607 | + ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE, |
---|
| 608 | + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD, |
---|
| 609 | +}; |
---|
| 610 | + |
---|
| 611 | +/** |
---|
| 612 | + * enum ethtool_link_ext_substate_link_training - more information in addition to |
---|
| 613 | + * ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE. |
---|
| 614 | + */ |
---|
| 615 | +enum ethtool_link_ext_substate_link_training { |
---|
| 616 | + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1, |
---|
| 617 | + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT, |
---|
| 618 | + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY, |
---|
| 619 | + ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT, |
---|
| 620 | +}; |
---|
| 621 | + |
---|
| 622 | +/** |
---|
| 623 | + * enum ethtool_link_ext_substate_logical_mismatch - more information in addition |
---|
| 624 | + * to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH. |
---|
| 625 | + */ |
---|
| 626 | +enum ethtool_link_ext_substate_link_logical_mismatch { |
---|
| 627 | + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1, |
---|
| 628 | + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK, |
---|
| 629 | + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS, |
---|
| 630 | + ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED, |
---|
| 631 | + ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED, |
---|
| 632 | +}; |
---|
| 633 | + |
---|
| 634 | +/** |
---|
| 635 | + * enum ethtool_link_ext_substate_bad_signal_integrity - more information in |
---|
| 636 | + * addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY. |
---|
| 637 | + */ |
---|
| 638 | +enum ethtool_link_ext_substate_bad_signal_integrity { |
---|
| 639 | + ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1, |
---|
| 640 | + ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE, |
---|
| 641 | +}; |
---|
| 642 | + |
---|
| 643 | +/** |
---|
| 644 | + * enum ethtool_link_ext_substate_cable_issue - more information in |
---|
| 645 | + * addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE. |
---|
| 646 | + */ |
---|
| 647 | +enum ethtool_link_ext_substate_cable_issue { |
---|
| 648 | + ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1, |
---|
| 649 | + ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE, |
---|
| 650 | +}; |
---|
| 651 | + |
---|
556 | 652 | #define ETH_GSTRING_LEN 32 |
---|
557 | 653 | |
---|
558 | 654 | /** |
---|
.. | .. |
---|
567 | 663 | * @ETH_SS_RSS_HASH_FUNCS: RSS hush function names |
---|
568 | 664 | * @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS |
---|
569 | 665 | * @ETH_SS_PHY_TUNABLES: PHY tunable names |
---|
| 666 | + * @ETH_SS_LINK_MODES: link mode names |
---|
| 667 | + * @ETH_SS_MSG_CLASSES: debug message class names |
---|
| 668 | + * @ETH_SS_WOL_MODES: wake-on-lan modes |
---|
| 669 | + * @ETH_SS_SOF_TIMESTAMPING: SOF_TIMESTAMPING_* flags |
---|
| 670 | + * @ETH_SS_TS_TX_TYPES: timestamping Tx types |
---|
| 671 | + * @ETH_SS_TS_RX_FILTERS: timestamping Rx filters |
---|
| 672 | + * @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types |
---|
570 | 673 | */ |
---|
571 | 674 | enum ethtool_stringset { |
---|
572 | 675 | ETH_SS_TEST = 0, |
---|
.. | .. |
---|
578 | 681 | ETH_SS_TUNABLES, |
---|
579 | 682 | ETH_SS_PHY_STATS, |
---|
580 | 683 | ETH_SS_PHY_TUNABLES, |
---|
| 684 | + ETH_SS_LINK_MODES, |
---|
| 685 | + ETH_SS_MSG_CLASSES, |
---|
| 686 | + ETH_SS_WOL_MODES, |
---|
| 687 | + ETH_SS_SOF_TIMESTAMPING, |
---|
| 688 | + ETH_SS_TS_TX_TYPES, |
---|
| 689 | + ETH_SS_TS_RX_FILTERS, |
---|
| 690 | + ETH_SS_UDP_TUNNEL_TYPES, |
---|
| 691 | + |
---|
| 692 | + /* add new constants above here */ |
---|
| 693 | + ETH_SS_COUNT |
---|
581 | 694 | }; |
---|
582 | 695 | |
---|
583 | 696 | /** |
---|
.. | .. |
---|
886 | 999 | __u32 location; |
---|
887 | 1000 | }; |
---|
888 | 1001 | |
---|
889 | | -/* How rings are layed out when accessing virtual functions or |
---|
| 1002 | +/* How rings are laid out when accessing virtual functions or |
---|
890 | 1003 | * offloaded queues is device specific. To allow users to do flow |
---|
891 | 1004 | * steering and specify these queues the ring cookie is partitioned |
---|
892 | 1005 | * into a 32bit queue index with an 8 bit virtual function id. |
---|
.. | .. |
---|
895 | 1008 | * devices start supporting PCIe w/ARI. However at the moment I |
---|
896 | 1009 | * do not know of any devices that support this so I do not reserve |
---|
897 | 1010 | * space for this at this time. If a future patch consumes the next |
---|
898 | | - * byte it should be aware of this possiblity. |
---|
| 1011 | + * byte it should be aware of this possibility. |
---|
899 | 1012 | */ |
---|
900 | 1013 | #define ETHTOOL_RX_FLOW_SPEC_RING 0x00000000FFFFFFFFLL |
---|
901 | 1014 | #define ETHTOOL_RX_FLOW_SPEC_RING_VF 0x000000FF00000000LL |
---|
.. | .. |
---|
1295 | 1408 | ETHTOOL_FEC_OFF_BIT, |
---|
1296 | 1409 | ETHTOOL_FEC_RS_BIT, |
---|
1297 | 1410 | ETHTOOL_FEC_BASER_BIT, |
---|
| 1411 | + ETHTOOL_FEC_LLRS_BIT, |
---|
1298 | 1412 | }; |
---|
1299 | 1413 | |
---|
1300 | 1414 | #define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT) |
---|
.. | .. |
---|
1302 | 1416 | #define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT) |
---|
1303 | 1417 | #define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT) |
---|
1304 | 1418 | #define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT) |
---|
| 1419 | +#define ETHTOOL_FEC_LLRS (1 << ETHTOOL_FEC_LLRS_BIT) |
---|
1305 | 1420 | |
---|
1306 | 1421 | /* CMDs currently supported */ |
---|
1307 | 1422 | #define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings. |
---|
.. | .. |
---|
1436 | 1551 | ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, |
---|
1437 | 1552 | ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, |
---|
1438 | 1553 | ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, |
---|
| 1554 | + |
---|
| 1555 | + /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit |
---|
| 1556 | + * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_* |
---|
| 1557 | + * macro for bits > 31. The only way to use indices > 31 is to |
---|
| 1558 | + * use the new ETHTOOL_GLINKSETTINGS/ETHTOOL_SLINKSETTINGS API. |
---|
| 1559 | + */ |
---|
| 1560 | + |
---|
1439 | 1561 | ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, |
---|
1440 | 1562 | ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, |
---|
1441 | 1563 | ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, |
---|
.. | .. |
---|
1457 | 1579 | ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, |
---|
1458 | 1580 | ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, |
---|
1459 | 1581 | ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, |
---|
1460 | | - |
---|
1461 | | - /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit |
---|
1462 | | - * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_* |
---|
1463 | | - * macro for bits > 31. The only way to use indices > 31 is to |
---|
1464 | | - * use the new ETHTOOL_GLINKSETTINGS/ETHTOOL_SLINKSETTINGS API. |
---|
1465 | | - */ |
---|
1466 | | - |
---|
1467 | | - __ETHTOOL_LINK_MODE_LAST |
---|
1468 | | - = ETHTOOL_LINK_MODE_FEC_BASER_BIT, |
---|
| 1582 | + ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52, |
---|
| 1583 | + ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53, |
---|
| 1584 | + ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54, |
---|
| 1585 | + ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55, |
---|
| 1586 | + ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56, |
---|
| 1587 | + ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57, |
---|
| 1588 | + ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58, |
---|
| 1589 | + ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59, |
---|
| 1590 | + ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60, |
---|
| 1591 | + ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61, |
---|
| 1592 | + ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62, |
---|
| 1593 | + ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63, |
---|
| 1594 | + ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, |
---|
| 1595 | + ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, |
---|
| 1596 | + ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, |
---|
| 1597 | + ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, |
---|
| 1598 | + ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, |
---|
| 1599 | + ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, |
---|
| 1600 | + ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, |
---|
| 1601 | + ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, |
---|
| 1602 | + ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, |
---|
| 1603 | + ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, |
---|
| 1604 | + ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, |
---|
| 1605 | + ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, |
---|
| 1606 | + ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, |
---|
| 1607 | + ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, |
---|
| 1608 | + ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, |
---|
| 1609 | + ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, |
---|
| 1610 | + ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, |
---|
| 1611 | + ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, |
---|
| 1612 | + ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, |
---|
| 1613 | + ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, |
---|
| 1614 | + ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, |
---|
| 1615 | + ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, |
---|
| 1616 | + ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, |
---|
| 1617 | + ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, |
---|
| 1618 | + ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, |
---|
| 1619 | + ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, |
---|
| 1620 | + ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, |
---|
| 1621 | + ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, |
---|
| 1622 | + /* must be last entry */ |
---|
| 1623 | + __ETHTOOL_LINK_MODE_MASK_NBITS |
---|
1469 | 1624 | }; |
---|
1470 | 1625 | |
---|
1471 | 1626 | #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \ |
---|
.. | .. |
---|
1573 | 1728 | #define SPEED_50000 50000 |
---|
1574 | 1729 | #define SPEED_56000 56000 |
---|
1575 | 1730 | #define SPEED_100000 100000 |
---|
| 1731 | +#define SPEED_200000 200000 |
---|
| 1732 | +#define SPEED_400000 400000 |
---|
1576 | 1733 | |
---|
1577 | 1734 | #define SPEED_UNKNOWN -1 |
---|
1578 | 1735 | |
---|
1579 | 1736 | static inline int ethtool_validate_speed(__u32 speed) |
---|
1580 | 1737 | { |
---|
1581 | | - return speed <= INT_MAX || speed == SPEED_UNKNOWN; |
---|
| 1738 | + return speed <= INT_MAX || speed == (__u32)SPEED_UNKNOWN; |
---|
1582 | 1739 | } |
---|
1583 | 1740 | |
---|
1584 | 1741 | /* Duplex, half or full. */ |
---|
.. | .. |
---|
1597 | 1754 | |
---|
1598 | 1755 | return 0; |
---|
1599 | 1756 | } |
---|
| 1757 | + |
---|
| 1758 | +#define MASTER_SLAVE_CFG_UNSUPPORTED 0 |
---|
| 1759 | +#define MASTER_SLAVE_CFG_UNKNOWN 1 |
---|
| 1760 | +#define MASTER_SLAVE_CFG_MASTER_PREFERRED 2 |
---|
| 1761 | +#define MASTER_SLAVE_CFG_SLAVE_PREFERRED 3 |
---|
| 1762 | +#define MASTER_SLAVE_CFG_MASTER_FORCE 4 |
---|
| 1763 | +#define MASTER_SLAVE_CFG_SLAVE_FORCE 5 |
---|
| 1764 | +#define MASTER_SLAVE_STATE_UNSUPPORTED 0 |
---|
| 1765 | +#define MASTER_SLAVE_STATE_UNKNOWN 1 |
---|
| 1766 | +#define MASTER_SLAVE_STATE_MASTER 2 |
---|
| 1767 | +#define MASTER_SLAVE_STATE_SLAVE 3 |
---|
| 1768 | +#define MASTER_SLAVE_STATE_ERR 4 |
---|
1600 | 1769 | |
---|
1601 | 1770 | /* Which connector port. */ |
---|
1602 | 1771 | #define PORT_TP 0x00 |
---|
.. | .. |
---|
1636 | 1805 | #define WAKE_MAGIC (1 << 5) |
---|
1637 | 1806 | #define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */ |
---|
1638 | 1807 | #define WAKE_FILTER (1 << 7) |
---|
| 1808 | + |
---|
| 1809 | +#define WOL_MODE_COUNT 8 |
---|
1639 | 1810 | |
---|
1640 | 1811 | /* L2-L4 network traffic flow types */ |
---|
1641 | 1812 | #define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */ |
---|
.. | .. |
---|
1690 | 1861 | #define ETH_MODULE_SFF_8636_LEN 256 |
---|
1691 | 1862 | #define ETH_MODULE_SFF_8436 0x4 |
---|
1692 | 1863 | #define ETH_MODULE_SFF_8436_LEN 256 |
---|
| 1864 | + |
---|
| 1865 | +#define ETH_MODULE_SFF_8636_MAX_LEN 640 |
---|
| 1866 | +#define ETH_MODULE_SFF_8436_MAX_LEN 640 |
---|
1693 | 1867 | |
---|
1694 | 1868 | /* Reset flags */ |
---|
1695 | 1869 | /* The reset() operation must clear the flags for the components which |
---|
.. | .. |
---|
1800 | 1974 | * rejected. |
---|
1801 | 1975 | * |
---|
1802 | 1976 | * Deprecated %ethtool_cmd fields transceiver, maxtxpkt and maxrxpkt |
---|
1803 | | - * are not available in %ethtool_link_settings. Until all drivers are |
---|
1804 | | - * converted to ignore them or to the new %ethtool_link_settings API, |
---|
1805 | | - * for both queries and changes, users should always try |
---|
1806 | | - * %ETHTOOL_GLINKSETTINGS first, and if it fails with -ENOTSUPP stick |
---|
1807 | | - * only to %ETHTOOL_GSET and %ETHTOOL_SSET consistently. If it |
---|
1808 | | - * succeeds, then users should stick to %ETHTOOL_GLINKSETTINGS and |
---|
1809 | | - * %ETHTOOL_SLINKSETTINGS (which would support drivers implementing |
---|
1810 | | - * either %ethtool_cmd or %ethtool_link_settings). |
---|
| 1977 | + * are not available in %ethtool_link_settings. These fields will be |
---|
| 1978 | + * always set to zero in %ETHTOOL_GSET reply and %ETHTOOL_SSET will |
---|
| 1979 | + * fail if any of them is set to non-zero value. |
---|
1811 | 1980 | * |
---|
1812 | 1981 | * Users should assume that all fields not marked read-only are |
---|
1813 | 1982 | * writable and subject to validation by the driver. They should use |
---|
.. | .. |
---|
1836 | 2005 | __u8 eth_tp_mdix_ctrl; |
---|
1837 | 2006 | __s8 link_mode_masks_nwords; |
---|
1838 | 2007 | __u8 transceiver; |
---|
1839 | | - __u8 reserved1[3]; |
---|
| 2008 | + __u8 master_slave_cfg; |
---|
| 2009 | + __u8 master_slave_state; |
---|
| 2010 | + __u8 reserved1[1]; |
---|
1840 | 2011 | __u32 reserved[7]; |
---|
1841 | 2012 | __u32 link_mode_masks[0]; |
---|
1842 | 2013 | /* layout of link_mode_masks fields: |
---|