diff options
author | melifaro <melifaro@FreeBSD.org> | 2015-08-15 17:52:55 +0000 |
---|---|---|
committer | melifaro <melifaro@FreeBSD.org> | 2015-08-15 17:52:55 +0000 |
commit | a91e3ef58a004aace2995a6dec20856019ce1c7d (patch) | |
tree | 4967ce2037181c1c3c7c88c9a7aecee6aa00726f /sys/dev/ixgbe | |
parent | 69ac9bf2f90b9e49030d2ebb15aab28098b15cf3 (diff) | |
download | FreeBSD-src-a91e3ef58a004aace2995a6dec20856019ce1c7d.zip FreeBSD-src-a91e3ef58a004aace2995a6dec20856019ce1c7d.tar.gz |
MFC r270064,r270068,r270069,r270115,r270129,r270287,r270822,r271014,
r271524,r273541,r282967,r283009,r283364.
Add support for reading i2c SFP/SFP+ data from NIC driver and
presenting most interesting fields via ifconfig -v.
This version supports Intel ixgbe driver only.
Tested on: Cisco,Intel,Mellanox,ModuleTech,Molex transceivers
* Add new net/sff8436.h containing constants used to access
QSFP+ data via i2c inteface. These constants has been taken
from SFF-8436 "QSFP+ 10 Gbs 4X PLUGGABLE TRANSCEIVER" standard
rev 4.8.
* Add support for printing QSFP+ information from 40G NICs
such as Chelsio T5.
Example:
cxl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=ec07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,.....>
ether 00:07:43:28:ad:08
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet 40Gbase-LR4 <full-duplex>
status: active
plugged: QSFP+ 40GBASE-LR4 (MPO Parallel Optic)
vendor: OEM PN: OP-QSFP-40G-LR4 SN: 20140318001 DATE: 2014-03-18
module temperature: 64.06 C voltage: 3.26 Volts
lane 1: RX: 0.47 mW (-3.21 dBm) TX: 2.78 mW (4.46 dBm)
lane 2: RX: 0.20 mW (-6.94 dBm) TX: 2.80 mW (4.47 dBm)
lane 3: RX: 0.18 mW (-7.38 dBm) TX: 2.79 mW (4.47 dBm)
lane 4: RX: 0.90 mW (-0.45 dBm) TX: 2.80 mW (4.48 dBm)
Tested on: Chelsio T5
Tested on: Mellanox/Huawei passive/active cables/transceivers.
Sponsored by: Yandex LLC
Diffstat (limited to 'sys/dev/ixgbe')
-rw-r--r-- | sys/dev/ixgbe/if_ix.c | 2 | ||||
-rw-r--r-- | sys/dev/ixgbe/ixgbe.h | 9 |
2 files changed, 1 insertions, 10 deletions
diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c index bc251be..9b405c0 100644 --- a/sys/dev/ixgbe/if_ix.c +++ b/sys/dev/ixgbe/if_ix.c @@ -872,7 +872,7 @@ ixgbe_ioctl(struct ifnet * ifp, u_long command, caddr_t data) VLAN_CAPABILITIES(ifp); break; } -#if __FreeBSD_version >= 1100036 +#if __FreeBSD_version >= 1002500 case SIOCGI2C: { struct ixgbe_hw *hw = &adapter->hw; diff --git a/sys/dev/ixgbe/ixgbe.h b/sys/dev/ixgbe/ixgbe.h index 0023517..a28bdc8 100644 --- a/sys/dev/ixgbe/ixgbe.h +++ b/sys/dev/ixgbe/ixgbe.h @@ -260,15 +260,6 @@ typedef struct _ixgbe_vendor_info_t { unsigned int index; } ixgbe_vendor_info_t; - -/* This is used to get SFP+ module data */ -struct ixgbe_i2c_req { - u8 dev_addr; - u8 offset; - u8 len; - u8 data[8]; -}; - struct ixgbe_tx_buf { union ixgbe_adv_tx_desc *eop; struct mbuf *m_head; |