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