Dual-rate transceivers with ixgbe?

Alexander Sack pisymbol at gmail.com
Thu Jun 10 02:59:18 UTC 2010


On Wed, Jun 9, 2010 at 10:56 PM, Alexander Sack <pisymbol at gmail.com> wrote:
> 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?)

I apologize:

ix0 at pci0:10:0:0:	class=0x020000 card=0x000c8086 chip=0x10fb8086
rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    class      = network
    subclass   = ethernet
ix1 at pci0:10:0:1:	class=0x020000 card=0x000c8086 chip=0x10fb8086
rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    class      = network
    subclass   = ethernet

I am sure that would be helpful too.  Its a 7.2-amd64 + CURRENT driver
+ my little fixes to make it compile (minor nits).

-aps


More information about the freebsd-net mailing list