@@ -1536,6 +1536,8 @@ static __inline__ int ethtool_validate_duplex(__u8 duplex)
#define XCVR_DUMMY1 0x02
#define XCVR_DUMMY2 0x03
#define XCVR_DUMMY3 0x04
+#define XCVR_EXTERNAL_ABSENT 0x05
+#define XCVR_EXTERNAL_PRESENT 0x06
/* Enable or disable autonegotiation. */
#define AUTONEG_DISABLE 0x00
@@ -811,6 +811,12 @@ dump_link_usettings(const struct ethtool_link_usettings *link_usettings)
case XCVR_EXTERNAL:
fprintf(stdout, "external\n");
break;
+ case XCVR_EXTERNAL_PRESENT:
+ fprintf(stdout, "external(present)\n");
+ break;
+ case XCVR_EXTERNAL_ABSENT:
+ fprintf(stdout, "external(absent)\n");
+ break;
default:
fprintf(stdout, "Unknown!\n");
break;
When the the fiber transceiver of the ixgbe NIC is external, sometimes it is necessary to get the present/absent status of the fiber transceiver of the ixgbe NIC. The steps to get the present/absent status: The NIC enp1s0f0 is an external ixgbe fiber NIC. ethtool enp1s0f0 ... Port: FIBRE PHYAD: 0 Transceiver: external(present) <---The transceiver is present. Auto-negotiation: on Supports Wake-on: d ... Or ... Port: FIBRE PHYAD: 0 Transceiver: external(absent) <---The transceiver is absent Auto-negotiation: on Supports Wake-on: d ... Signed-off-by: Zhu Yanjun <yanjun.zhu@oracle.com> --- ethtool-copy.h | 2 ++ ethtool.c | 6 ++++++ 2 files changed, 8 insertions(+)