From owner-svn-src-user@freebsd.org Wed Mar 28 14:33:37 2018 Return-Path: <owner-svn-src-user@freebsd.org> Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 081A9F63AF8 for <svn-src-user@mailman.ysv.freebsd.org>; Wed, 28 Mar 2018 14:33:37 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ADCD16E2B1; Wed, 28 Mar 2018 14:33:36 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A80F94510; Wed, 28 Mar 2018 14:33:36 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SEXajP001212; Wed, 28 Mar 2018 14:33:36 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SEXaA6001209; Wed, 28 Mar 2018 14:33:36 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201803281433.w2SEXaA6001209@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston <markj@FreeBSD.org> Date: Wed, 28 Mar 2018 14:33:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r331677 - in user/markj/netdump: share/man/man4 sys/dev/bxe X-SVN-Group: user X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in user/markj/netdump: share/man/man4 sys/dev/bxe X-SVN-Commit-Revision: 331677 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" <svn-src-user.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-user>, <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/> List-Post: <mailto:svn-src-user@freebsd.org> List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-user>, <mailto:svn-src-user-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 28 Mar 2018 14:33:37 -0000 Author: markj Date: Wed Mar 28 14:33:35 2018 New Revision: 331677 URL: https://svnweb.freebsd.org/changeset/base/331677 Log: Add netdump support to bxe(4). Modified: user/markj/netdump/share/man/man4/netdump.4 user/markj/netdump/sys/dev/bxe/bxe.c user/markj/netdump/sys/dev/bxe/bxe.h Modified: user/markj/netdump/share/man/man4/netdump.4 ============================================================================== --- user/markj/netdump/share/man/man4/netdump.4 Wed Mar 28 14:32:24 2018 (r331676) +++ user/markj/netdump/share/man/man4/netdump.4 Wed Mar 28 14:33:35 2018 (r331677) @@ -105,6 +105,7 @@ message to the server. The following network drivers support netdump: .Xr alc 4 , .Xr bge 4 , +.Xr bxe 4 , .Xr cxgb 4 , .Xr em 4 , .Xr igb 4 , Modified: user/markj/netdump/sys/dev/bxe/bxe.c ============================================================================== --- user/markj/netdump/sys/dev/bxe/bxe.c Wed Mar 28 14:32:24 2018 (r331676) +++ user/markj/netdump/sys/dev/bxe/bxe.c Wed Mar 28 14:33:35 2018 (r331677) @@ -236,6 +236,8 @@ MODULE_DEPEND(bxe, pci, 1, 1, 1); MODULE_DEPEND(bxe, ether, 1, 1, 1); DRIVER_MODULE(bxe, pci, bxe_driver, bxe_devclass, 0, 0); +NETDUMP_DEFINE(bxe); + /* resources needed for unloading a previously loaded device */ #define BXE_PREV_WAIT_NEEDED 1 @@ -12767,6 +12769,9 @@ bxe_init_ifnet(struct bxe_softc *sc) /* attach to the Ethernet interface list */ ether_ifattach(ifp, sc->link_params.mac_addr); + /* Attach driver netdump methods. */ + NETDUMP_SET(ifp, bxe); + return (0); } @@ -19164,3 +19169,53 @@ bxe_eioctl(struct cdev *dev, u_long cmd, caddr_t data, return (rval); } + +#ifdef NETDUMP +static void +bxe_netdump_init(struct ifnet *ifp, int *nrxr) +{ + struct bxe_softc *sc; + + sc = if_getsoftc(ifp); + *nrxr = sc->num_queues; +} + +static void +bxe_netdump_event(struct ifnet *ifp __unused, enum netdump_ev event __unused) +{ +} + +static int +bxe_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + struct bxe_softc *sc; + int error; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING || !sc->link_vars.link_up) + return (ENOENT); + + error = bxe_tx_encap(&sc->fp[0], &m); + if (error != 0 && m != NULL) + m_freem(m); + return (error); +} + +static int +bxe_netdump_poll(struct ifnet *ifp, int count) +{ + struct bxe_softc *sc; + int i; + + sc = if_getsoftc(ifp); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0 || + !sc->link_vars.link_up) + return (ENOENT); + + for (i = 0; i < sc->num_queues; i++) + (void)bxe_rxeof(sc, &sc->fp[0]); + (void)bxe_txeof(sc, &sc->fp[0]); + return (0); +} +#endif /* NETDUMP */ Modified: user/markj/netdump/sys/dev/bxe/bxe.h ============================================================================== --- user/markj/netdump/sys/dev/bxe/bxe.h Wed Mar 28 14:32:24 2018 (r331676) +++ user/markj/netdump/sys/dev/bxe/bxe.h Wed Mar 28 14:33:35 2018 (r331677) @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include <netinet/ip6.h> #include <netinet/tcp.h> #include <netinet/udp.h> +#include <netinet/netdump/netdump.h> #include <dev/pci/pcireg.h> #include <dev/pci/pcivar.h>