From owner-freebsd-drivers@FreeBSD.ORG Wed Aug 17 15:58:40 2011 Return-Path: Delivered-To: freebsd-drivers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EB2E106566B; Wed, 17 Aug 2011 15:58:40 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from rfhvm034.hs-regensburg.de (rfhvm034.hs-regensburg.de [194.95.104.22]) by mx1.freebsd.org (Postfix) with ESMTP id 13EC78FC15; Wed, 17 Aug 2011 15:58:39 +0000 (UTC) Received: from rfhvm034.hs-regensburg.de (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 625561A96F1; Wed, 17 Aug 2011 17:42:32 +0200 (CEST) Received: from rfhrz076.fh-regensburg.de (rfhrz076.fh-regensburg.de [194.95.104.112]) by rfhvm034.hs-regensburg.de (Postfix) with ESMTP id 2C7F11A96EB; Wed, 17 Aug 2011 17:42:32 +0200 (CEST) Date: Wed, 17 Aug 2011 17:42:29 +0200 From: Marius Strobl To: Naresh Message-ID: <20110817174229.34215905@rfhrz076.fh-regensburg.de> In-Reply-To: <1A69CCCE-AF58-465E-87F5-BE3AF0BBAB19@gmail.com> References: <1A69CCCE-AF58-465E-87F5-BE3AF0BBAB19@gmail.com> X-Mailer: Claws Mail 3.7.5 (GTK+ 2.18.7; amd64-portbld-freebsd8.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2011.8.17.153016 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' MULTIPLE_RCPTS 0.1, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1400_1499 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, __ANY_URI 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __FRAUD_BODY_WEBMAIL 0, __FRAUD_WEBMAIL 0, __FW_1LN_BOT_MSGID 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __MULTIPLE_RCPTS_CC_X2 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __URI_NO_PATH 0, __URI_NO_WWW 0, __URI_NS ' Cc: freebsd-drivers@freebsd.org, yongari@freebsd.org Subject: Re: MAC and PHY loopback tests entrypoint for NIC controller X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Aug 2011 15:58:40 -0000 On Sat, 6 Aug 2011 23:39:38 +0530 Naresh wrote: > > Hi All, > > I am writing a 10Gb Ethernet driver. We have a requirement to support > Mac and PHY loopback test for the network controller. In Linux there > is a ethtool entrypoint which calls this feature. > > I wondering what will be the equivalent entry point in FreeBSD. I > tried looking in to other drivers, but not lucky enough to find one. > > It is much appreciated if some one could point me to MAC and PHY > loopback test entry point in FreeBSD. > I don't know what API Linux provides but I think the question is how to activate loopback mode from userland. Somewhere in your driver you'll add the supported media similar to the following: ifmedia_add(&sc->sc_media, IFM_ETHER | IFM_AUTO, 0, NULL); If there you also add media variants with option IFM_LOOP f.e. like so: ifmedia_add(&sc->sc_media, IFM_ETHER | IFM_1000_T | IFM_LOOP, 0, NULL); etc then from userland you can activate loopback mode via ifconfig(8) like so: ifconfig youdrv0 1000baseT mediaopt hw-loopback and deactivate if via: ifconfig youdrv0 1000baseT -mediaopt hw-loopback Current versions of FreeBSD also take "loopback" or even just "loop" as an alias for "hw-loopback". The media change handler of your driver of course needs to check whether the selected media has IFM_LOOP set and (de)activate loopback mode in the hardware as appropriate. Marius