Dual-rate transceivers with ixgbe?
Alexander Sack
pisymbol at gmail.com
Thu Jun 10 02:56:22 UTC 2010
On Fri, May 28, 2010 at 5:12 PM, Juli Mallett <jmallett at freebsd.org> wrote:
> On Wed, May 19, 2010 at 00:26, Jack Vogel <jfvogel at gmail.com> wrote:
>> Hmmm, this is odd, I'm sure that was tested by my validation engineer.
>> Tell me what the hardware looks like, ie what the 1G link partner is
>> and I'll have him check into it... it SHOULD work.
>
> It's plugged in to an Extreme Networks gigabit switch with Finisar SFP
> transceivers. The Intel NIC is populated with an Intel-branded
> Finisar dual-rate SFP+ transceiver, model #FTLX8571D3BCV.
>
> Here's pciconf -lv:
> ix0 at pci0:8:0:0: class=0x020000 card=0x00038086 chip=0x10fb8086 rev=0x01 hdr=0x00
> vendor = 'Intel Corporation'
> class = network
> subclass = ethernet
> ix1 at pci0:8:0:1: class=0x020000 card=0x00038086 chip=0x10fb8086 rev=0x01 hdr=0x00
> vendor = 'Intel Corporation'
> class = network
> subclass = ethernet
>
> Is there anything it would help for me to instrument in the driver?
>
>> You could just ask me you know :)
>
> I think E-Mails from me are getting caught in your spam filter unless
> they go through a list :(
>
> Thanks!
> Juli.
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>
Jack:
I am running into a slightly different issue after back porting ixgbe
driver to 7.x (btw you are missing DEBUGOUT6 from your #ifdef and the
build logic for the buf_ring's stuff is a little off I think).
I am using a Finisar multi-mode transceiver connected to an IxIa 10G
traffic generator (I don't know the model number, let me know if you
absolutely need it) and everything seems to be working until I hit
this block of code:
ixgbe_phy.c:
1125 if (!(enforce_sfp & IXGBE_DEVICE_CAPS_ALLOW_ANY_SFP)) {
1126 /* Make sure we're a supported PHY type */
1127 if (hw->phy.type == ixgbe_phy_sfp_intel) {
1128 status = IXGBE_SUCCESS;
1129 } else {
1130 DEBUGOUT("SFP+ module not supported\n");
1131 hw->phy.type = ixgbe_phy_sfp_unsupported;
1132 status = IXGBE_ERR_SFP_NOT_SUPPORTED;
1133 }
1134 } else {
1135 status = IXGBE_SUCCESS;
1136 }
Some more goodies:
comp_codes_1g 0
comp_codes_10g 20
cable_tech 0
sfp_type: 6
vendor_oui: 906500
device caps: 0xfffc
What's interesting is that according to the datasheet, 0x2C of the
EEPROM is software reserved (Intel black magic!). Based on the logic,
it seems if its an Intel SFP, its okay otherwise claim its not
supported.
If I #ifdef out this code, the driver comes up but does not
autonegotiate on the first shot. If I then do ifconfig ix0 up/down
everything comes up and I can use it. I noticed that there has been
some churn in this area of recognizing SFPs between 7.x - CURRENT.
(obviously Juli's issue might be related to this as well).
$ ifconfig ix1
ix1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=5bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,LRO>
ether 00:1b:21:40:4b:2d
media: Ethernet autoselect
status: no carrier
# ifconfig ix1 down
# ifconfig ix1 up
# ifconfig ix1
ix1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=5bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,LRO>
ether 00:1b:21:40:4b:2d
media: Ethernet autoselect (10Gbase-SR <full-duplex>)
status: active
Jack, any idea on what's going on? (and what the heck is 0x2C in the EEPROM?)
Thanks!
-aps
More information about the freebsd-net
mailing list