Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Jun 2010 17:25:10 -0400
From:      Alexander Sack <pisymbol@gmail.com>
To:        Andrew Boyer <aboyer@averesystems.com>
Cc:        Juli Mallett <jmallett@freebsd.org>, freebsd-net@freebsd.org, Jack Vogel <jfvogel@gmail.com>
Subject:   Re: Dual-rate transceivers with ixgbe?
Message-ID:  <AANLkTikDM5l71isz28jJNv7nk9K-kmqTKptAC_yY3ACq@mail.gmail.com>
In-Reply-To: <82D310BD-48DE-4F79-84C6-356AB4F04C42@averesystems.com>
References:  <AANLkTinO9NZ8F9TeS68I2ULQgdlMGzlXkinCsywWosAM@mail.gmail.com> <AANLkTinS607kd3wc3F2WWmA6Zk9KL4GhscxEHPtcvxA5@mail.gmail.com> <AANLkTimkxOn9h6SAkTPDqfUM9kl2CZiFrZC_BuNDfRyB@mail.gmail.com> <AANLkTikcQMXk8UebmaynOeeInGiwx8yr0NMGE1yJfm8u@mail.gmail.com> <AANLkTil_YRvU54qHtIMO7mP4yYjojeHVrCHaRcl2K2Ug@mail.gmail.com> <AANLkTim5Ao9nSh6T6HF7NztLgvbTzxuVyr8lSXAJ7bMo@mail.gmail.com> <AANLkTim9-Za5mzLTw7MDAHY_TuIQsQ0SF0_1xpxyGY7v@mail.gmail.com> <AANLkTik-V2frmirwBLtg4RemdEVvPhUmVsOP7CqEkvUi@mail.gmail.com> <AANLkTikqjQic_M3mX7OTx-V0OJxbk4vzxajPmHmIUAKa@mail.gmail.com> <AANLkTikjs42mE5QHnSvZ9x9DI1xfYowvIES-DRORz6hH@mail.gmail.com> <AANLkTilqb4y0zEmom0jyg-HEi4yp8D3nkkbUWGHUjWPt@mail.gmail.com> <AANLkTinOnzvjrmmLb3w5jOYEk02CY2tWCwnKxTv8sHS8@mail.gmail.com> <82D310BD-48DE-4F79-84C6-356AB4F04C42@averesystems.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jun 10, 2010 at 5:12 PM, Andrew Boyer <aboyer@averesystems.com> wro=
te:
>
> On Jun 10, 2010, at 3:59 PM, Alexander Sack wrote:
>>
>>> One thing that the base driver probably ought to do is not fail in
>>> attach if there's an unrecognized SFP+ module. =A0Since we get
>>> interrupts on module change (although this doesn't seem to always work
>>> *entirely* right in the stock sources, mostly wrt stored values of
>>> AUTOC and the like) it should be possible to bring the interface up
>>> with the unsupported (and disabled) SFP+ module and do the SFP+ module
>>> probing we already do on hot-swap.
>>
>> Alright, let me see if I can test that. =A0Let me rephrase so I validate
>> what you are saying:
>>
>> The driver can come up with an unsupported module but disable the
>> interface (ifconfig shows the interface, etc.).
>>
>> If you then hot-swap a supported SFP, it should come up then with a
>> ifconfig down/up cycle. =A0Right?
>>
>> As it stand now, if you load the driver with an unsupported module, it
>> will not attach at all causing you to reload the entire driver OR
>> reboot the box to have it reattach to the other SFP.
>>
>
> We use this patch to allow the driver to attach when no module is install=
ed. =A0This might be a starting point for you. =A0I haven't tested it witho=
ut all of our other changes in place so my apologies if it doesn't quite wo=
rk. =A0We only have Intel modules around for testing.
>
> -Andrew
>
> --- ixgbe.c =A0 =A0 2010-06-10 16:53:08.000000000 -0400
> +++ ixgbe.c =A0 =A0 2010-06-10 16:55:26.000000000 -0400
> @@ -566,7 +566,7 @@
> =A0 =A0 =A0 =A0} else if (error =3D=3D IXGBE_ERR_SFP_NOT_SUPPORTED)
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0device_printf(dev,"Unsupported SFP+ Module=
\n");
>
> - =A0 =A0 =A0 if (error) {
> + =A0 =A0 =A0 if (error && error !=3D IXGBE_ERR_SFP_NOT_PRESENT) {
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0error =3D EIO;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0device_printf(dev,"Hardware Initialization=
 Failure\n");
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto err_late;
>
> --- ixgbe_82598.c =A0 =A0 =A0 2010-06-10 16:53:24.000000000 -0400
> +++ ixgbe_82598.c =A0 =A0 =A0 2010-06-10 16:56:31.000000000 -0400
> @@ -257,10 +257,6 @@
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ret_val =3D ixgbe_get_sfp_init_sequence_of=
fsets(hw,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0&list_offset,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0&data_offset);
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (ret_val !=3D IXGBE_SUCCESS) {
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ret_val =3D IXGBE_ERR_SFP_N=
OT_SUPPORTED;
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 goto out;
> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 }
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break;
> =A0 =A0 =A0 =A0default:
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break;

Thank you Andrew!  I am on the same path as above! (though I also had
82599 changes which may not be meaningful to your application).

I will have access to numerous SFP/SFP+ very soon (all Finisar based -
though I think the Intel supplied ones are Finisar too anyway).   I
will test the dual-rate as well with both 10G and 1G traffic.

Stay tuned, I want to test all of this in the lab.

-aps



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikDM5l71isz28jJNv7nk9K-kmqTKptAC_yY3ACq>