From owner-freebsd-net@FreeBSD.ORG Thu Jun 10 21:25:13 2010 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6EA91065672; Thu, 10 Jun 2010 21:25:13 +0000 (UTC) (envelope-from pisymbol@gmail.com) Received: from mail-gw0-f54.google.com (mail-gw0-f54.google.com [74.125.83.54]) by mx1.freebsd.org (Postfix) with ESMTP id 555FD8FC12; Thu, 10 Jun 2010 21:25:13 +0000 (UTC) Received: by gwj20 with SMTP id 20so415228gwj.13 for ; Thu, 10 Jun 2010 14:25:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=LRMzhV9XAheF0WwvsCO6HGeX/Skq4y0evTrrrNBWQAc=; b=h3THDjYbqNsjCl755bPy09B83e93gWV5RaJSf4IvlmXGOVVBpG01Nr2RzyaNFNZCyE 58ThOtuQkD/Ftz8+Ukj0PzFP0GjyU0o0wc+elZpvN0D74kQlrJsNs24X2o2C3rLf36Q9 RwRsO6045FSk7GyV1m+i/lqOQfSmi2IPGBNAg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=WfuwWwhhKDAVRF8MtWFAcrlrX9rzHl1nEgB8etBR06WAsmAkVKoRx0f1w3oT1aUhM9 n1WA0ARs9CwTcJcd4kCqhpgdsWmU3J0K3rGfksyJb/TS4j8tYGZ6sEXQ2jXxZUJGYQKW PSF/jkYBUsUg/sFRGyupUn1bJlD6mPpfqPbjE= MIME-Version: 1.0 Received: by 10.101.4.26 with SMTP id g26mr802239ani.157.1276205112324; Thu, 10 Jun 2010 14:25:12 -0700 (PDT) Received: by 10.100.137.4 with HTTP; Thu, 10 Jun 2010 14:25:10 -0700 (PDT) In-Reply-To: <82D310BD-48DE-4F79-84C6-356AB4F04C42@averesystems.com> References: <82D310BD-48DE-4F79-84C6-356AB4F04C42@averesystems.com> Date: Thu, 10 Jun 2010 17:25:10 -0400 Message-ID: From: Alexander Sack To: Andrew Boyer Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Juli Mallett , freebsd-net@freebsd.org, Jack Vogel Subject: Re: Dual-rate transceivers with ixgbe? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2010 21:25:13 -0000 On Thu, Jun 10, 2010 at 5:12 PM, Andrew Boyer 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