From owner-svn-soc-all@freebsd.org Sun Jun 12 23:22:42 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8F1C1AF08CC for <svn-soc-all@mailman.ysv.freebsd.org>; Sun, 12 Jun 2016 23:22:42 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7598D2B34 for <svn-soc-all@FreeBSD.org>; Sun, 12 Jun 2016 23:22:42 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5CNMgjo098523 for <svn-soc-all@FreeBSD.org>; Sun, 12 Jun 2016 23:22:42 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5CNMfRa098521 for svn-soc-all@FreeBSD.org; Sun, 12 Jun 2016 23:22:41 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Sun, 12 Jun 2016 23:22:41 GMT Message-Id: <201606122322.u5CNMfRa098521@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305116 - soc2016/yuanxunzhang/head/usr.sbin/eaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sun, 12 Jun 2016 23:22:42 -0000 Author: yuanxunzhang Date: Sun Jun 12 23:22:41 2016 New Revision: 305116 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305116 Log: EAPS: Create EAPS interface Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Sun Jun 12 22:55:50 2016 (r305115) +++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Sun Jun 12 23:22:41 2016 (r305116) @@ -31,9 +31,12 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include <net/if.h> #include <sys/param.h> #include <sys/file.h> #include <sys/queue.h> +#include <sys/socket.h> +#include <sys/sockio.h> #include <ctype.h> #include <err.h> #include <errno.h> @@ -94,16 +97,24 @@ static void createdomain(int argc, char **argv) { - int error = 0; + int error = 0, s; struct eaps_d *eaps_new; char *domain_name = *(++argv); printf("Create eaps domain %s!\n", domain_name); - eaps_new = (struct eaps_d *) malloc (sizeof(struct eaps_d)); - strlcpy(eaps_new->eaps_name, domain_name, sizeof(eaps_new->eaps_name)); - /* Add to eaps list */ - SLIST_INSERT_HEAD(&head, eaps_new, eaps_entries); + // Create EAPS interface + s = socket(AF_LOCAL, SOCK_DGRAM, 0); + if (s == -1) + err(1, "socket(AF_LOCAL,SOCK_DGRAM)"); + + struct ifreq ifr; + + memset(&ifr, 0, sizeof(ifr)); + (void) strlcpy(ifr.ifr_name, domain_name, sizeof(ifr.ifr_name)); + + if (ioctl(s, SIOCIFCREATE2, &ifr) < 0) + err(1, "SIOCIFCREATE2"); exit(error); } @@ -126,11 +137,6 @@ printf("No eaps Configuration!\n"); } - /* Display EAPS information*/ - SLIST_FOREACH(eaps, &head, eaps_entries) { - printf("\t%s:\n", eaps->eaps_name); - } - exit(error); } From owner-svn-soc-all@freebsd.org Sun Jun 12 23:24:35 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F838AF0923 for <svn-soc-all@mailman.ysv.freebsd.org>; Sun, 12 Jun 2016 23:24:35 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 736002B5A for <svn-soc-all@FreeBSD.org>; Sun, 12 Jun 2016 23:24:35 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5CNOZwV001137 for <svn-soc-all@FreeBSD.org>; Sun, 12 Jun 2016 23:24:35 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5CNOYpi001134 for svn-soc-all@FreeBSD.org; Sun, 12 Jun 2016 23:24:34 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Sun, 12 Jun 2016 23:24:34 GMT Message-Id: <201606122324.u5CNOYpi001134@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305117 - soc2016/yuanxunzhang/head/usr.sbin/eaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sun, 12 Jun 2016 23:24:35 -0000 Author: yuanxunzhang Date: Sun Jun 12 23:24:34 2016 New Revision: 305117 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305117 Log: EAPS: Create EAPS interface Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Sun Jun 12 23:22:41 2016 (r305116) +++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Sun Jun 12 23:24:34 2016 (r305117) @@ -133,10 +133,6 @@ int error = 0; struct eaps_d *eaps; - if (SLIST_EMPTY(&head)) { - printf("No eaps Configuration!\n"); - } - exit(error); } From owner-svn-soc-all@freebsd.org Sun Jun 12 23:25:38 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 338DEAF095B for <svn-soc-all@mailman.ysv.freebsd.org>; Sun, 12 Jun 2016 23:25:38 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 27B6F2B72 for <svn-soc-all@FreeBSD.org>; Sun, 12 Jun 2016 23:25:38 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5CNPcYU002602 for <svn-soc-all@FreeBSD.org>; Sun, 12 Jun 2016 23:25:38 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5CNPbpL002585 for svn-soc-all@FreeBSD.org; Sun, 12 Jun 2016 23:25:37 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Sun, 12 Jun 2016 23:25:37 GMT Message-Id: <201606122325.u5CNPbpL002585@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305118 - soc2016/yuanxunzhang/head/usr.sbin/eaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sun, 12 Jun 2016 23:25:38 -0000 Author: yuanxunzhang Date: Sun Jun 12 23:25:37 2016 New Revision: 305118 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305118 Log: EAPS: Create EAPS interface Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Sun Jun 12 23:24:34 2016 (r305117) +++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Sun Jun 12 23:25:37 2016 (r305118) @@ -98,7 +98,6 @@ createdomain(int argc, char **argv) { int error = 0, s; - struct eaps_d *eaps_new; char *domain_name = *(++argv); printf("Create eaps domain %s!\n", domain_name); @@ -131,7 +130,6 @@ displayeaps(int argc, char **argv) { int error = 0; - struct eaps_d *eaps; exit(error); } From owner-svn-soc-all@freebsd.org Sun Jun 12 23:47:07 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F0306AF0E33 for <svn-soc-all@mailman.ysv.freebsd.org>; Sun, 12 Jun 2016 23:47:07 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E41172471 for <svn-soc-all@FreeBSD.org>; Sun, 12 Jun 2016 23:47:07 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5CNl7ru045390 for <svn-soc-all@FreeBSD.org>; Sun, 12 Jun 2016 23:47:07 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5CNl7ZJ045388 for svn-soc-all@FreeBSD.org; Sun, 12 Jun 2016 23:47:07 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Sun, 12 Jun 2016 23:47:07 GMT Message-Id: <201606122347.u5CNl7ZJ045388@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305119 - soc2016/yuanxunzhang/head/usr.sbin/eaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sun, 12 Jun 2016 23:47:08 -0000 Author: yuanxunzhang Date: Sun Jun 12 23:47:06 2016 New Revision: 305119 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305119 Log: EAPS: Create EAPS interface Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Sun Jun 12 23:25:37 2016 (r305118) +++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Sun Jun 12 23:47:06 2016 (r305119) @@ -75,14 +75,18 @@ int main(int argc, char **argv) { - int retval = 0; + int retval = 0, s; if (argc < 2) usage(NULL); + s = socket(AF_LOCAL, SOCK_DGRAM, 0); + if (s == -1) + err(1, "socket(AF_LOCAL,SOCK_DGRAM)"); + if (*(++argv) != NULL) switch (keyword(*argv)) { case K_CREATE: - createdomain(argc, argv); + createdomain(argc, argv, s); case K_DELETE: deletedomain(argc, argv); @@ -95,22 +99,18 @@ } static void -createdomain(int argc, char **argv) +createdomain(int argc, char **argv, int s) { - int error = 0, s; + int error = 0; char *domain_name = *(++argv); - printf("Create eaps domain %s!\n", domain_name); + printf("Create eaps %s!\n", domain_name); // Create EAPS interface - s = socket(AF_LOCAL, SOCK_DGRAM, 0); - if (s == -1) - err(1, "socket(AF_LOCAL,SOCK_DGRAM)"); - struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - (void) strlcpy(ifr.ifr_name, domain_name, sizeof(ifr.ifr_name)); + (void) strlcpy(ifr.ifr_name, "bridge", sizeof(ifr.ifr_name)); if (ioctl(s, SIOCIFCREATE2, &ifr) < 0) err(1, "SIOCIFCREATE2"); From owner-svn-soc-all@freebsd.org Sun Jun 12 23:47:40 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1AFBDAF0E4F for <svn-soc-all@mailman.ysv.freebsd.org>; Sun, 12 Jun 2016 23:47:40 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0F065248A for <svn-soc-all@FreeBSD.org>; Sun, 12 Jun 2016 23:47:40 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5CNldQA045981 for <svn-soc-all@FreeBSD.org>; Sun, 12 Jun 2016 23:47:39 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5CNldx8045949 for svn-soc-all@FreeBSD.org; Sun, 12 Jun 2016 23:47:39 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Sun, 12 Jun 2016 23:47:39 GMT Message-Id: <201606122347.u5CNldx8045949@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305120 - soc2016/yuanxunzhang/head/usr.sbin/eaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sun, 12 Jun 2016 23:47:40 -0000 Author: yuanxunzhang Date: Sun Jun 12 23:47:38 2016 New Revision: 305120 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305120 Log: EAPS: Create EAPS interface Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Sun Jun 12 23:47:06 2016 (r305119) +++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Sun Jun 12 23:47:38 2016 (r305120) @@ -67,7 +67,7 @@ }; int keyword(const char *); -static void createdomain(int, char **); +static void createdomain(int, char **, int); static void deletedomain(int, char **); static void displayeaps(int, char **); static void usage(const char *); From owner-svn-soc-all@freebsd.org Mon Jun 13 05:08:40 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EE6B5AF1D4D for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 05:08:40 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D4A222B13 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 05:08:40 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D58evh014134 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 05:08:40 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D58dcq014065 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 05:08:39 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 05:08:39 GMT Message-Id: <201606130508.u5D58dcq014065@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305133 - in soc2016/yuanxunzhang/head: sys/net usr.sbin/eaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 05:08:41 -0000 Author: yuanxunzhang Date: Mon Jun 13 05:08:38 2016 New Revision: 305133 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305133 Log: EAPS: Create EAPS interface Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c soc2016/yuanxunzhang/head/sys/net/eaps.h soc2016/yuanxunzhang/head/sys/net/if_types.h soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 03:45:08 2016 (r305132) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 05:08:38 2016 (r305133) @@ -34,6 +34,8 @@ #include <sys/param.h> #include <sys/file.h> #include <sys/queue.h> +#include <sys/lock.h> +#include <sys/mutex.h> #include <ctype.h> #include <err.h> #include <errno.h> @@ -52,5 +54,59 @@ /* * EAPS Protocol Module */ +static int eaps_clone_create(struct if_clone *, int, caddr_t); +static void eaps_clone_destroy(struct ifnet *); + +static VNET_DEFINE(struct if_clone *, eaps_cloner); +#define V_eaps_cloner VNET(V_eaps_cloner) + +static const char eaps_name[] = "EAPS"; + +SYSCTL_DECL(_net_link); +static SYSCTL_NODE(_net_link, IFT_EAPS, eaps, CTLFLAG_RW, 0, "EAPS"); + +static VNET_DEFINE(LIST_HEAD(, eaps_softc), eaps_list); +#define V_eaps_list VNET(eaps_list) +static VNET_DEFINE(struct mtx, eaps_list_mtx); +#define V_eaps_list_mtx VNET(eaps_list_mtx) +#define EAPS_LIST_LOCK_INIT(x) mtx_init(&V_eaps_list_mtx, \ + "EAPS interface list", NULL, MTX_DEF) +#define EAPS_LIST_LOCK_DESTROY(x) mtx_destroy(&V_eaps_list_mtx) +#define EAPS_LIST_LOCK(x) mtx_lock(&V_eaps_list_mtx) +#define EAPS_LIST_UNLOCK(x) mtx_unlock(&V_eaps_list_mtx) + +static void +vnet_eaps_init(const void *unused __unused) +{ + + EAPS_LIST_LOCK_INIT(); + LIST_INIT(&V_eaps_list); + V_eaps_cloner = if_clone_simple(eaps_name, + eaps_clone_create, eaps_clone_destroy, 0); +} +VNET_SYSINIT(vnet_eaps_init, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY, + vnet_eaps_init, NULL); + + +/* + * eaps_clone_create: + * + * Create a new eaps instance. + */ +static int +eaps_clone_create(struct if_clone *ifc, int unit, caddr_t params) +{ + return (0); +} + +/* + * eaps_clone_destroy: + * + * Destroy a eaps instance. + */ +static void +eaps_clone_destroy(struct ifnet *ifp) +{ + +} -static SLIST_HEAD(slisthead, eaps_d) head = SLIST_HEAD_INITIALIZER(head); Modified: soc2016/yuanxunzhang/head/sys/net/eaps.h ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.h Mon Jun 13 03:45:08 2016 (r305132) +++ soc2016/yuanxunzhang/head/sys/net/eaps.h Mon Jun 13 05:08:38 2016 (r305133) @@ -31,11 +31,15 @@ #ifndef _NET_EAPS_H_ #define _NET_EAPS_H_ + #ifdef _KERNEL -struct eaps_d { - char eaps_name[32]; /* name of the EAPS domain */ - SLIST_ENTRY(eaps_d) eaps_entries; +/* + * Software state for each EAPS Domain + */ +struct eaps_softc { + struct ifnet *sc_ifp; /* make this an interface */ + LIST_ENTRY(eaps_softc) sc_list; }; /* Modified: soc2016/yuanxunzhang/head/sys/net/if_types.h ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/if_types.h Mon Jun 13 03:45:08 2016 (r305132) +++ soc2016/yuanxunzhang/head/sys/net/if_types.h Mon Jun 13 05:08:38 2016 (r305133) @@ -242,7 +242,7 @@ IFT_INFINIBAND = 0xc7, /* Infiniband */ IFT_BRIDGE = 0xd1, /* Transparent bridge interface */ IFT_STF = 0xd7, /* 6to4 interface */ - + IFT_EAPS = 0xd8, /* EAPS interface */ /* * Not based on IANA assignments. Conflicting with IANA assignments. * We should make them negative probably. Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Mon Jun 13 03:45:08 2016 (r305132) +++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Mon Jun 13 05:08:38 2016 (r305133) @@ -67,9 +67,9 @@ }; int keyword(const char *); -static void createdomain(int, char **, int); -static void deletedomain(int, char **); -static void displayeaps(int, char **); +static void create_domain(int, char **, int); +static void delete_domain(int, char **); +static void display(int, char **); static void usage(const char *); int @@ -86,20 +86,20 @@ if (*(++argv) != NULL) switch (keyword(*argv)) { case K_CREATE: - createdomain(argc, argv, s); + create_domain(argc, argv, s); case K_DELETE: - deletedomain(argc, argv); + delete_domain(argc, argv); case K_DISPLAY: - displayeaps(argc, argv); + display(argc, argv); } usage(*argv); return retval; } static void -createdomain(int argc, char **argv, int s) +create_domain(int argc, char **argv, int s) { int error = 0; char *domain_name = *(++argv); @@ -110,7 +110,7 @@ struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - (void) strlcpy(ifr.ifr_name, "bridge", sizeof(ifr.ifr_name)); + (void) strlcpy(ifr.ifr_name, "eaps", sizeof(ifr.ifr_name)); if (ioctl(s, SIOCIFCREATE2, &ifr) < 0) err(1, "SIOCIFCREATE2"); @@ -119,7 +119,7 @@ } static void -deletedomain(int argc, char **argv) +delete_domain(int argc, char **argv) { int error = 0; printf("Delete eaps domain %s!\n", *(++argv)); @@ -127,7 +127,7 @@ } static void -displayeaps(int argc, char **argv) +display(int argc, char **argv) { int error = 0; From owner-svn-soc-all@freebsd.org Mon Jun 13 06:16:50 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73C92AF0CBC for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 06:16:50 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6079A2773 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 06:16:50 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D6GojO057987 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 06:16:50 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D6GnYq057785 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 06:16:49 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 06:16:49 GMT Message-Id: <201606130616.u5D6GnYq057785@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305137 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 06:16:50 -0000 Author: yuanxunzhang Date: Mon Jun 13 06:16:49 2016 New Revision: 305137 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305137 Log: EAPS: Create EAPS interface Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 05:43:42 2016 (r305136) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 06:16:49 2016 (r305137) @@ -28,7 +28,7 @@ * $FreeBSD$ */ -include <sys/cdefs.h> +#include <sys/cdefs.h> __FBSDID("$FreeBSD$"); #include <sys/param.h> @@ -36,7 +36,7 @@ #include <sys/queue.h> #include <sys/lock.h> #include <sys/mutex.h> -#include <ctype.h> +#include <sys/ctype.h> /* string functions */ #include <err.h> #include <errno.h> #include <netdb.h> From owner-svn-soc-all@freebsd.org Mon Jun 13 07:13:03 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1BD72AF1854 for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 07:13:03 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0F3052147 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:13:03 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D7D2jA028247 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:13:02 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D7D2iO028233 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 07:13:02 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 07:13:02 GMT Message-Id: <201606130713.u5D7D2iO028233@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305141 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 07:13:03 -0000 Author: yuanxunzhang Date: Mon Jun 13 07:13:01 2016 New Revision: 305141 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305141 Log: EAPS: Create EAPS interface Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 06:38:46 2016 (r305140) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:13:01 2016 (r305141) @@ -37,8 +37,6 @@ #include <sys/lock.h> #include <sys/mutex.h> #include <sys/ctype.h> /* string functions */ -#include <err.h> -#include <errno.h> #include <netdb.h> #include <nlist.h> #include <paths.h> From owner-svn-soc-all@freebsd.org Mon Jun 13 07:15:27 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6432CAF1915 for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 07:15:27 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5855A21F6 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:15:27 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D7FRWR031638 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:15:27 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D7FQ8O031634 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 07:15:26 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 07:15:26 GMT Message-Id: <201606130715.u5D7FQ8O031634@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305142 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 07:15:27 -0000 Author: yuanxunzhang Date: Mon Jun 13 07:15:26 2016 New Revision: 305142 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305142 Log: EAPS: fix complie erros Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:13:01 2016 (r305141) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:15:26 2016 (r305142) @@ -37,9 +37,6 @@ #include <sys/lock.h> #include <sys/mutex.h> #include <sys/ctype.h> /* string functions */ -#include <netdb.h> -#include <nlist.h> -#include <paths.h> #include <stdio.h> #include <stdlib.h> #include <string.h> From owner-svn-soc-all@freebsd.org Mon Jun 13 07:16:38 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C5D0AF1965 for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 07:16:38 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 507532228 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:16:38 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D7GcUk033091 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:16:38 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D7GbNH033088 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 07:16:37 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 07:16:37 GMT Message-Id: <201606130716.u5D7GbNH033088@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305143 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 07:16:38 -0000 Author: yuanxunzhang Date: Mon Jun 13 07:16:37 2016 New Revision: 305143 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305143 Log: EAPS: fix complie erros Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:15:26 2016 (r305142) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:16:37 2016 (r305143) @@ -37,12 +37,6 @@ #include <sys/lock.h> #include <sys/mutex.h> #include <sys/ctype.h> /* string functions */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sysexits.h> -#include <strings.h> -#include <unistd.h> #include <net/vnet.h> #include <net/eaps.h> From owner-svn-soc-all@freebsd.org Mon Jun 13 07:26:32 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AAA71AF1AF8 for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 07:26:32 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9E98A268E for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:26:32 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D7QWVK054561 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:26:32 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D7QVqP054506 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 07:26:31 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 07:26:31 GMT Message-Id: <201606130726.u5D7QVqP054506@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305144 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 07:26:32 -0000 Author: yuanxunzhang Date: Mon Jun 13 07:26:31 2016 New Revision: 305144 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305144 Log: EAPS: fix complie errors Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c soc2016/yuanxunzhang/head/sys/net/eaps.h Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:16:37 2016 (r305143) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:26:31 2016 (r305144) @@ -38,6 +38,7 @@ #include <sys/mutex.h> #include <sys/ctype.h> /* string functions */ #include <net/vnet.h> +#include <net/ethernet.h> #include <net/eaps.h> /* Modified: soc2016/yuanxunzhang/head/sys/net/eaps.h ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.h Mon Jun 13 07:16:37 2016 (r305143) +++ soc2016/yuanxunzhang/head/sys/net/eaps.h Mon Jun 13 07:26:31 2016 (r305144) @@ -108,7 +108,7 @@ uint8_t eaps_state; /* EAPS_S_xxx; see below */ uint8_t eaps_rsvd1; /* Reserved; set to zero */ uint16_t eaps_seq; /* Health PDU sequence number */ - uint16_t eaps_rsvd1[38]; /* Reserved; set to zero */ + uint16_t eaps_rsvd2[38]; /* Reserved; set to zero */ } __packed; From owner-svn-soc-all@freebsd.org Mon Jun 13 07:27:59 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AEB8FAF1B20 for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 07:27:59 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A2C3326C7 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:27:59 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D7RxcL056836 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:27:59 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D7RxNw056832 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 07:27:59 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 07:27:59 GMT Message-Id: <201606130727.u5D7RxNw056832@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305145 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 07:27:59 -0000 Author: yuanxunzhang Date: Mon Jun 13 07:27:58 2016 New Revision: 305145 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305145 Log: EAPS: fix complie errors Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:26:31 2016 (r305144) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:27:58 2016 (r305145) @@ -37,6 +37,13 @@ #include <sys/lock.h> #include <sys/mutex.h> #include <sys/ctype.h> /* string functions */ +#include <net/if.h> +#include <net/if_clone.h> +#include <net/if_arp.h> +#include <net/if_dl.h> +#include <net/if_media.h> +#include <net/if_types.h> +#include <net/if_var.h> #include <net/vnet.h> #include <net/ethernet.h> #include <net/eaps.h> From owner-svn-soc-all@freebsd.org Mon Jun 13 07:30:00 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 89278AF1B50 for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 07:30:00 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7CDBB2716 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:30:00 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D7U0Z9059510 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:30:00 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D7TxRo059409 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 07:29:59 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 07:29:59 GMT Message-Id: <201606130729.u5D7TxRo059409@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305146 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 07:30:00 -0000 Author: yuanxunzhang Date: Mon Jun 13 07:29:59 2016 New Revision: 305146 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305146 Log: EAPS: fix complie errors Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:27:58 2016 (r305145) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:29:59 2016 (r305146) @@ -37,6 +37,7 @@ #include <sys/lock.h> #include <sys/mutex.h> #include <sys/ctype.h> /* string functions */ +#include <net/ethernet.h> #include <net/if.h> #include <net/if_clone.h> #include <net/if_arp.h> @@ -45,7 +46,6 @@ #include <net/if_types.h> #include <net/if_var.h> #include <net/vnet.h> -#include <net/ethernet.h> #include <net/eaps.h> /* From owner-svn-soc-all@freebsd.org Mon Jun 13 07:34:24 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 34699AF1CAC for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 07:34:24 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 20A602AEA for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:34:24 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D7YNBD073678 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:34:23 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D7YNSC073674 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 07:34:23 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 07:34:23 GMT Message-Id: <201606130734.u5D7YNSC073674@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305147 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 07:34:24 -0000 Author: yuanxunzhang Date: Mon Jun 13 07:34:22 2016 New Revision: 305147 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305147 Log: EAPS: fix complie errors Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:29:59 2016 (r305146) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:34:22 2016 (r305147) @@ -31,12 +31,26 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include "opt_inet.h" +#include "opt_inet6.h" + #include <sys/param.h> -#include <sys/file.h> +#include <sys/kernel.h> +#include <sys/malloc.h> +#include <sys/mbuf.h> #include <sys/queue.h> +#include <sys/socket.h> +#include <sys/sockio.h> +#include <sys/sysctl.h> +#include <sys/module.h> +#include <sys/priv.h> +#include <sys/systm.h> +#include <sys/proc.h> #include <sys/lock.h> -#include <sys/mutex.h> -#include <sys/ctype.h> /* string functions */ +#include <sys/rmlock.h> +#include <sys/taskqueue.h> +#include <sys/eventhandler.h> + #include <net/ethernet.h> #include <net/if.h> #include <net/if_clone.h> @@ -45,7 +59,9 @@ #include <net/if_media.h> #include <net/if_types.h> #include <net/if_var.h> +#include <net/bpf.h> #include <net/vnet.h> + #include <net/eaps.h> /* From owner-svn-soc-all@freebsd.org Mon Jun 13 07:35:04 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 511F6AF1CC8 for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 07:35:04 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 44EC02B03 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:35:04 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D7Z4BD074504 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:35:04 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D7Z3bo074500 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 07:35:03 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 07:35:03 GMT Message-Id: <201606130735.u5D7Z3bo074500@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305148 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 07:35:04 -0000 Author: yuanxunzhang Date: Mon Jun 13 07:35:03 2016 New Revision: 305148 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305148 Log: EAPS: fix complie errors Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:34:22 2016 (r305147) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:35:03 2016 (r305148) @@ -31,9 +31,6 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -#include "opt_inet.h" -#include "opt_inet6.h" - #include <sys/param.h> #include <sys/kernel.h> #include <sys/malloc.h> From owner-svn-soc-all@freebsd.org Mon Jun 13 07:36:13 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 99F7DAF1CF9 for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 07:36:13 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8E1732B3E for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:36:13 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D7aDuf075956 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 07:36:13 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D7aD1e075954 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 07:36:13 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 07:36:13 GMT Message-Id: <201606130736.u5D7aD1e075954@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305149 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 07:36:13 -0000 Author: yuanxunzhang Date: Mon Jun 13 07:36:12 2016 New Revision: 305149 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305149 Log: EAPS: fix complie errors Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:35:03 2016 (r305148) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:36:12 2016 (r305149) @@ -68,7 +68,7 @@ static void eaps_clone_destroy(struct ifnet *); static VNET_DEFINE(struct if_clone *, eaps_cloner); -#define V_eaps_cloner VNET(V_eaps_cloner) +#define V_eaps_cloner VNET(eaps_cloner) static const char eaps_name[] = "EAPS"; From owner-svn-soc-all@freebsd.org Mon Jun 13 08:02:36 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E0A37AF14FA for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 08:02:36 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D4A0227C8 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 08:02:36 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5D82aae066684 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 08:02:36 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5D82a7t066681 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 08:02:36 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 08:02:36 GMT Message-Id: <201606130802.u5D82a7t066681@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305152 - soc2016/yuanxunzhang/head/sys/net MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 08:02:37 -0000 Author: yuanxunzhang Date: Mon Jun 13 08:02:35 2016 New Revision: 305152 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305152 Log: EAPS: Add EAPS protocol module Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 07:30:54 2016 (r305151) +++ soc2016/yuanxunzhang/head/sys/net/eaps.c Mon Jun 13 08:02:35 2016 (r305152) @@ -98,6 +98,42 @@ vnet_eaps_init, NULL); +static void +vnet_eaps_uninit(const void *unused __unused) +{ + + if_clone_detach(V_eaps_cloner); + V_eaps_cloner = NULL; + EAPS_LIST_LOCK_DESTROY(); +} +VNET_SYSUNINIT(vnet_eaps_uninit, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY, + vnet_eaps_uninit, NULL); + +// EAPS protocol Module +static int +eaps_modevent(module_t mod, int type, void *data) +{ + + switch (type) { + case MOD_LOAD: + break; + case MOD_UNLOAD: + break; + default: + return (EOPNOTSUPP); + } + return (0); +} + +static moduledata_t eaps_mod = { + "eaps", + eaps_modevent, + 0 +}; + +DECLARE_MODULE(eaps, eaps_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); +MODULE_VERSION(eaps, 1); + /* * eaps_clone_create: * From owner-svn-soc-all@freebsd.org Mon Jun 13 23:18:07 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82BB7AF08A1 for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 23:18:07 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4F4F5264C for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 23:18:07 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5DNI7N7001548 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 23:18:07 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5DNI6Gx001536 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 23:18:06 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 23:18:06 GMT Message-Id: <201606132318.u5DNI6Gx001536@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305167 - soc2016/yuanxunzhang/head/usr.sbin/eaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 23:18:07 -0000 Author: yuanxunzhang Date: Mon Jun 13 23:18:06 2016 New Revision: 305167 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305167 Log: EAPS: load the eaps module, when user create eaps instance Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Mon Jun 13 22:31:16 2016 (r305166) +++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Mon Jun 13 23:18:06 2016 (r305167) @@ -31,6 +31,8 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include <sys/module.h> +#include <sys/linker.h> #include <net/if.h> #include <sys/param.h> #include <sys/file.h> @@ -54,9 +56,7 @@ * EAPS Command Line Module - configure, and display eaps */ -/* -* EAPS Configuration Descriptor -*/ +static const char eaps_ifname[] = "eaps"; static struct keytab { const char *kt_cp; @@ -71,6 +71,7 @@ static void delete_domain(int, char **); static void display(int, char **); static void usage(const char *); +void load_module(const char *); int main(int argc, char **argv) @@ -98,6 +99,35 @@ return retval; } +void +load_module(const char *module_name) +{ + struct module_stat mstat; + + mstat.version = sizeof(struct module_stat); + + for (fileid = kldnext(0); fileid > 0; fileid = kldnext(fileid)) { + /* scan modules in file */ + for (modid = kldfirstmod(fileid); modid > 0; + modid = modfnext(modid)) { + if (modstat(modid, &mstat) < 0) + continue; + /* strip bus name if present */ + if ((cp = strchr(mstat.name, '/')) != NULL) { + cp++; + } else { + cp = mstat.name; + } + /* already loaded? */ + if (strcmp(module_name, cp) == 0) + return; + } + } + + /* not present, we should try to load it */ + kldload(module_name); +} + static void create_domain(int argc, char **argv, int s) { @@ -107,10 +137,13 @@ printf("Create eaps %s!\n", domain_name); // Create EAPS interface + /* check and maybe load support for this interface */ + load_module(eaps_ifname); + struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - (void) strlcpy(ifr.ifr_name, "eaps", sizeof(ifr.ifr_name)); + (void) strlcpy(ifr.ifr_name, eaps_ifname, sizeof(ifr.ifr_name)); if (ioctl(s, SIOCIFCREATE2, &ifr) < 0) err(1, "SIOCIFCREATE2"); From owner-svn-soc-all@freebsd.org Mon Jun 13 23:20:56 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC48BAF094A for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 23:20:56 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C058E2725 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 23:20:56 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5DNKudf011202 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 23:20:56 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5DNKu2N011161 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 23:20:56 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 23:20:56 GMT Message-Id: <201606132320.u5DNKu2N011161@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305168 - soc2016/yuanxunzhang/head/usr.sbin/eaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 23:20:56 -0000 Author: yuanxunzhang Date: Mon Jun 13 23:20:55 2016 New Revision: 305168 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305168 Log: EAPS: load the eaps module, when user create eaps instance Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Mon Jun 13 23:18:06 2016 (r305167) +++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Mon Jun 13 23:20:55 2016 (r305168) @@ -31,14 +31,12 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include <sys/param.h> #include <sys/module.h> #include <sys/linker.h> -#include <net/if.h> -#include <sys/param.h> -#include <sys/file.h> -#include <sys/queue.h> #include <sys/socket.h> #include <sys/sockio.h> +#include <net/if.h> #include <ctype.h> #include <err.h> #include <errno.h> From owner-svn-soc-all@freebsd.org Mon Jun 13 23:24:41 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C554BAF0AED for <svn-soc-all@mailman.ysv.freebsd.org>; Mon, 13 Jun 2016 23:24:41 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B4D56298B for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 23:24:41 +0000 (UTC) (envelope-from yuanxunzhang@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5DNOfv6019863 for <svn-soc-all@FreeBSD.org>; Mon, 13 Jun 2016 23:24:41 GMT (envelope-from yuanxunzhang@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5DNOfZw019804 for svn-soc-all@FreeBSD.org; Mon, 13 Jun 2016 23:24:41 GMT (envelope-from yuanxunzhang@FreeBSD.org) Date: Mon, 13 Jun 2016 23:24:41 GMT Message-Id: <201606132324.u5DNOfZw019804@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to yuanxunzhang@FreeBSD.org using -f From: yuanxunzhang@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305169 - soc2016/yuanxunzhang/head/usr.sbin/eaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 13 Jun 2016 23:24:41 -0000 Author: yuanxunzhang Date: Mon Jun 13 23:24:40 2016 New Revision: 305169 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305169 Log: EAPS: load the eaps module, when user create eaps instance Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c ============================================================================== --- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Mon Jun 13 23:20:55 2016 (r305168) +++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c Mon Jun 13 23:24:40 2016 (r305169) @@ -101,9 +101,10 @@ load_module(const char *module_name) { struct module_stat mstat; - + int fileid, modid; + const char *cp; + mstat.version = sizeof(struct module_stat); - for (fileid = kldnext(0); fileid > 0; fileid = kldnext(fileid)) { /* scan modules in file */ for (modid = kldfirstmod(fileid); modid > 0; From owner-svn-soc-all@freebsd.org Fri Jun 17 15:06:50 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9217A783BA for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 15:06:50 +0000 (UTC) (envelope-from iateaca@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CC3BD1982 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 15:06:50 +0000 (UTC) (envelope-from iateaca@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HF6oOr068175 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 15:06:50 GMT (envelope-from iateaca@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HF6osK067928 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 15:06:50 GMT (envelope-from iateaca@FreeBSD.org) Date: Fri, 17 Jun 2016 15:06:50 GMT Message-Id: <201606171506.u5HF6osK067928@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to iateaca@FreeBSD.org using -f From: iateaca@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305285 - soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 15:06:50 -0000 Author: iateaca Date: Fri Jun 17 15:06:49 2016 New Revision: 305285 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305285 Log: design the hda_codec_stream data structure add one hda_codec_stream data for the audio output converter add specific handlers per node in order to implement the verb commands M bhyve/hda_codec.c Modified: soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/hda_codec.c Modified: soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/hda_codec.c ============================================================================== --- soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/hda_codec.c Fri Jun 17 09:07:27 2016 (r305284) +++ soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/hda_codec.c Fri Jun 17 15:06:49 2016 (r305285) @@ -12,6 +12,9 @@ #define HDA_CODEC_AUDIO_OUTPUT_NID 0x02 #define HDA_CODEC_PIN_OUTPUT_NID 0x03 +#define HDA_CODEC_STREAMS_COUNT 0x01 +#define HDA_CODEC_STREAM_OUTPUT 0x00 + #define HDA_CODEC_PARAMS_COUNT 0x14 #define HDA_CODEC_CONN_LIST_COUNT 0x01 #define HDA_CODEC_RESPONSE_EX_UNSOL 0x10 @@ -46,6 +49,15 @@ * HDA Codec data structures */ +struct hda_codec_softc; + +typedef uint32_t (*verb_func_t)(struct hda_codec_softc *sc, uint16_t verb, uint16_t payload); + +struct hda_codec_stream { + uint8_t stream; + uint8_t channel; + uint16_t fmt; +}; struct hda_codec_softc { uint32_t subsystem_id; @@ -54,6 +66,9 @@ const uint8_t (*conn_list)[HDA_CODEC_CONN_LIST_COUNT]; const uint32_t *conf_default; const uint8_t *pin_ctrl_default; + const verb_func_t *verb_handlers; + + struct hda_codec_stream streams[HDA_CODEC_STREAMS_COUNT]; }; /* @@ -66,6 +81,8 @@ static int hda_codec_command(struct hda_codec_inst *hci, uint32_t cmd_data); +uint32_t hda_codec_audio_output_nid(struct hda_codec_softc *sc, uint16_t verb, uint16_t payload); + /* * HDA Codec global data */ @@ -129,6 +146,10 @@ [HDA_CODEC_PIN_OUTPUT_NID] = HDA_CODEC_PIN_WIDGET_CTRL_OUT_ENABLE, }; +static const verb_func_t hda_codec_verb_handlers[HDA_CODEC_NODES_COUNT] = { + [HDA_CODEC_AUDIO_OUTPUT_NID] = hda_codec_audio_output_nid, +}; + /* * HDA Codec module function definitions */ @@ -150,6 +171,7 @@ sc->conn_list = hda_codec_conn_list; sc->conf_default = hda_codec_conf_default; sc->pin_ctrl_default = hda_codec_pin_ctrl_default; + sc->verb_handlers = hda_codec_verb_handlers; DPRINTF("HDA Codec nodes: %d\n", sc->no_nodes); hci->priv = sc; @@ -206,6 +228,8 @@ sc = (struct hda_codec_softc *)hci->priv; assert(sc); + assert(nid < sc->no_nodes); + if (!hops->response) { DPRINTF("The controller ops does not implement the response function\n"); return -1; @@ -213,35 +237,29 @@ switch (verb) { case HDA_CMD_VERB_GET_PARAMETER: - if (nid < sc->no_nodes) - res = sc->get_parameters[nid][payload]; - else - DPRINTF("GET_PARAMETER(nid: %d) not described\n", nid); + res = sc->get_parameters[nid][payload]; break; case HDA_CMD_VERB_GET_CONN_LIST_ENTRY: - assert(nid < sc->no_nodes); res = sc->conn_list[nid][0]; break; case HDA_CMD_VERB_GET_PIN_WIDGET_CTRL: - assert(nid < sc->no_nodes); res = sc->pin_ctrl_default[nid]; break; case HDA_CMD_VERB_GET_PIN_SENSE: res = HDA_CODEC_PIN_SENSE_PRESENCE_PLUGGED; break; case HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT: - assert(nid < sc->no_nodes); res = sc->conf_default[nid]; break; case HDA_CMD_VERB_GET_SUBSYSTEM_ID: res = sc->subsystem_id; break; - case HDA_CMD_VERB_SET_AMP_GAIN_MUTE: - /* TODO - handle this command */ - break; default: - /* TODO - call a specific handler per node */ - DPRINTF("Unknown VERB: 0x%x\n", verb); + assert(sc->verb_handlers); + if (sc->verb_handlers[nid]) + res = sc->verb_handlers[nid](sc, verb, payload); + else + DPRINTF("Unknown VERB: 0x%x\n", verb); break; } @@ -251,6 +269,31 @@ return hops->response(hci, res, HDA_CODEC_RESPONSE_EX_SOL); } +uint32_t hda_codec_audio_output_nid(struct hda_codec_softc *sc, uint16_t verb, uint16_t payload) +{ + struct hda_codec_stream *st = NULL; + uint32_t res = 0; + + DPRINTF("verb: 0x%x, payload, 0x%x\n", verb, payload); + + st = &sc->streams[HDA_CODEC_STREAM_OUTPUT]; + + switch (verb) { + case HDA_CMD_VERB_SET_CONV_FMT: + st->fmt = payload; + break; + case HDA_CMD_VERB_SET_CONV_STREAM_CHAN: + st->channel = payload & 0x0f; + st->stream = (payload >> 4) & 0x0f; + break; + default: + DPRINTF("Unknown VERB: 0x%x\n", verb); + break; + } + + return res; +} + struct hda_codec_class hda_codec = { .name = "hda_codec", .init = hda_codec_init, From owner-svn-soc-all@freebsd.org Fri Jun 17 16:21:44 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4259BA774A7 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:21:44 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3615223EE for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:21:44 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGLiD2018322 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:21:44 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGLhwx018309 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:21:43 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:21:43 GMT Message-Id: <201606171621.u5HGLhwx018309@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305286 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:21:44 -0000 Author: vincenzo Date: Fri Jun 17 16:21:43 2016 New Revision: 305286 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305286 Log: freebsd: ptnet: use if_transmit interface for transmission Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 15:06:49 2016 (r305285) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:21:43 2016 (r305286) @@ -104,7 +104,7 @@ }; struct ptnet_softc { - device_t dev; + device_t dev; struct ifnet *ifp; struct ifmedia media; struct mtx core_mtx; @@ -156,7 +156,8 @@ static int ptnet_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data); static int ptnet_init_locked(struct ptnet_softc *sc); static int ptnet_stop(struct ptnet_softc *sc); -static void ptnet_start(struct ifnet *ifp); +static int ptnet_transmit(struct ifnet *ifp, struct mbuf *m); +static void ptnet_qflush(struct ifnet *ifp); static int ptnet_media_change(struct ifnet *ifp); static void ptnet_media_status(struct ifnet *ifp, struct ifmediareq *ifmr); @@ -318,7 +319,8 @@ ifp->if_flags = IFF_BROADCAST | IFF_MULTICAST | IFF_SIMPLEX; ifp->if_init = ptnet_init; ifp->if_ioctl = ptnet_ioctl; - ifp->if_start = ptnet_start; + ifp->if_transmit = ptnet_transmit; + ifp->if_qflush = ptnet_qflush; IFQ_SET_MAXLEN(&ifp->if_snd, 255); ifp->if_snd.ifq_drv_maxlen = 255; @@ -708,8 +710,19 @@ return 0; } +static int +ptnet_transmit(struct ifnet *ifp, struct mbuf *m) +{ + struct ptnet_softc *sc = ifp->if_softc; + + device_printf(sc->dev, "transmit %p\n", m); + m_freem(m); + + return 0; +} + static void -ptnet_start(struct ifnet *ifp) +ptnet_qflush(struct ifnet *ifp) { } From owner-svn-soc-all@freebsd.org Fri Jun 17 16:21:59 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 975A2A775A7 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:21:59 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8AE22243C for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:21:59 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGLxjb019260 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:21:59 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGLxQu019196 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:21:59 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:21:59 GMT Message-Id: <201606171621.u5HGLxQu019196@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305287 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:21:59 -0000 Author: vincenzo Date: Fri Jun 17 16:21:58 2016 New Revision: 305287 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305287 Log: freebsd: ptnet_attach(): remove if_snd initialization Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:21:43 2016 (r305286) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:21:58 2016 (r305287) @@ -322,10 +322,6 @@ ifp->if_transmit = ptnet_transmit; ifp->if_qflush = ptnet_qflush; - IFQ_SET_MAXLEN(&ifp->if_snd, 255); - ifp->if_snd.ifq_drv_maxlen = 255; - IFQ_SET_READY(&ifp->if_snd); - ifmedia_init(&sc->media, IFM_IMASK, ptnet_media_change, ptnet_media_status); ifmedia_add(&sc->media, IFM_ETHER | IFM_10G_T | IFM_FDX, 0, NULL); From owner-svn-soc-all@freebsd.org Fri Jun 17 16:22:08 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67383A775C4 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:22:08 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 429882465 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:22:08 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGM8kv020508 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:22:08 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGM7mR020483 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:22:07 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:22:07 GMT Message-Id: <201606171622.u5HGM7mR020483@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305288 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:22:08 -0000 Author: vincenzo Date: Fri Jun 17 16:22:07 2016 New Revision: 305288 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305288 Log: freebsd: ptnet: rearrange core lock initialization Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:21:58 2016 (r305287) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:22:07 2016 (r305288) @@ -101,14 +101,19 @@ int kring_id; struct ptnet_ring *ptring; unsigned int kick; + struct mtx lock; + char lock_name[16]; }; +#define PTNET_Q_LOCK(_pq) mtx_lock(&(_pq_->lock) +#define PTNET_Q_UNLOCK(_pq) mtx_unlock(&(_pq_->lock) + struct ptnet_softc { device_t dev; struct ifnet *ifp; struct ifmedia media; - struct mtx core_mtx; - char core_mtx_name[16]; + struct mtx lock; + char lock_name[16]; char hwaddr[ETHER_ADDR_LEN]; /* Mirror of PTFEAT register. */ @@ -133,17 +138,8 @@ * netmap_pt_guest_adapter and have just one instance of that. */ }; -#define PTNET_CORE_LOCK_INIT(_sc) do { \ - snprintf((_sc)->core_mtx_name, sizeof((_sc)->core_mtx_name), \ - "%s", device_get_nameunit(sc->dev)); \ - mtx_init(&(_sc)->core_mtx, (_sc)->core_mtx_name, \ - "ptnet core lock", MTX_DEF); \ - } while (0) - -#define PTNET_CORE_LOCK_FINI(_sc) mtx_destroy(&(_sc)->core_mtx) - -#define PTNET_CORE_LOCK(_sc) mtx_lock(&(_sc)->core_mtx) -#define PTNET_CORE_UNLOCK(_sc) mtx_unlock(&(_sc)->core_mtx) +#define PTNET_CORE_LOCK(_sc) mtx_lock(&(_sc)->lock) +#define PTNET_CORE_UNLOCK(_sc) mtx_unlock(&(_sc)->lock) static int ptnet_probe(device_t); static int ptnet_attach(device_t); @@ -298,6 +294,9 @@ if (i >= num_tx_rings) { pq->kring_id -= num_tx_rings; } + snprintf(pq->lock_name, sizeof(pq->lock_name), "%s-%d", + device_get_nameunit(dev), i); + mtx_init(&pq->lock, pq->lock_name, NULL, MTX_DEF); } err = ptnet_irqs_init(sc); @@ -343,7 +342,9 @@ ifp->if_capenable = ifp->if_capabilities; - PTNET_CORE_LOCK_INIT(sc); + snprintf(sc->lock_name, sizeof(sc->lock_name), + "%s", device_get_nameunit(dev)); + mtx_init(&sc->lock, sc->lock_name, "ptnet core lock", MTX_DEF); sc->backend_regifs = 0; @@ -428,7 +429,7 @@ sc->iomem = NULL; } - PTNET_CORE_LOCK_FINI(sc); + mtx_destroy(&sc->lock); device_printf(dev, "%s() completed\n", __func__); From owner-svn-soc-all@freebsd.org Fri Jun 17 16:22:20 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 72469A775E1 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:22:20 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 57C2E2499 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:22:20 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGMKrv021319 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:22:20 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGMJYH021312 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:22:19 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:22:19 GMT Message-Id: <201606171622.u5HGMJYH021312@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305289 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:22:20 -0000 Author: vincenzo Date: Fri Jun 17 16:22:19 2016 New Revision: 305289 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305289 Log: freebsd: ptnet: implement basic if_transmit Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:22:07 2016 (r305288) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:22:19 2016 (r305289) @@ -669,6 +669,8 @@ goto err_register; } + ifp->if_drv_flags |= IFF_DRV_RUNNING; + return 0; err_register: @@ -704,17 +706,107 @@ } netmap_mem_deref(na_dr->nm_mem, na_dr); + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; + return 0; } +static inline void +ptnet_sync_tail(struct ptnet_ring *ptring, struct netmap_kring *kring) +{ + struct netmap_ring *ring = kring->ring; + + /* Update hwcur and hwtail as known by the host. */ + ptnetmap_guest_read_kring_csb(ptring, kring); + + /* nm_sync_finalize */ + ring->tail = kring->rtail = kring->nr_hwtail; +} + static int ptnet_transmit(struct ifnet *ifp, struct mbuf *m) { struct ptnet_softc *sc = ifp->if_softc; + struct netmap_adapter *na = &sc->ptna_dr.hwup.up; + struct ptnet_ring *ptring; + struct netmap_kring *kring; + struct netmap_ring *ring; + struct netmap_slot *slot; + struct ptnet_queue *pq; + unsigned int head; + unsigned int lim; + struct mbuf *mf; + int nmbuf_bytes; + uint8_t *nmbuf; device_printf(sc->dev, "transmit %p\n", m); + + pq = sc->queues + 0; + ptring = pq->ptring; + kring = na->tx_rings + 0; + ring = kring->ring; + lim = kring->nkr_num_slots - 1; + + /* Update hwcur and hwtail (completed TX slots) as known by the host, + * by reading from CSB. */ + ptnet_sync_tail(ptring, kring); + + head = ring->head; + slot = ring->slot + head; + nmbuf = NMB(na, slot); + nmbuf_bytes = 0; + + for (mf = m; mf; mf = mf->m_next) { + uint8_t *mdata = mf->m_data; + int mlen = mf->m_len; + + for (;;) { + int copy = NETMAP_BUF_SIZE(na) - nmbuf_bytes; + + if (mlen < copy) { + copy = mlen; + } + memcpy(nmbuf, mdata, copy); + + mdata += copy; + mlen -= copy; + nmbuf += copy; + nmbuf_bytes += copy; + + if (!mlen) { + break; + } + + slot->len = nmbuf_bytes; + slot->flags = NS_MOREFRAG; + head = nm_next(head, lim); + slot = ring->slot + head; + nmbuf = NMB(na, slot); + nmbuf_bytes = 0; + } + } + m_freem(m); + /* Complete last slot and update head. */ + slot->len = nmbuf_bytes; + slot->flags = 0; + ring->head = ring->cur = nm_next(head, lim); + + /* nm_txsync_prologue */ + kring->rcur = kring->rhead = ring->head; + + /* Tell the host to process the new packets, updating cur and + * head in the CSB. */ + ptnetmap_guest_write_kring_csb(ptring, kring->rcur, + kring->rhead); + + /* Ask for a kick from a guest to the host if needed. */ + if (NM_ACCESS_ONCE(ptring->host_need_kick)) { + ptring->sync_flags = NAF_FORCE_RECLAIM; + bus_write_4(sc->iomem, pq->kick, 0); + } + return 0; } From owner-svn-soc-all@freebsd.org Fri Jun 17 16:22:29 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A623A775FF for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:22:29 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6456124BF for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:22:29 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGMTiN022485 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:22:29 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGMS9C022442 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:22:28 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:22:28 GMT Message-Id: <201606171622.u5HGMS9C022442@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305290 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:22:29 -0000 Author: vincenzo Date: Fri Jun 17 16:22:28 2016 New Revision: 305290 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305290 Log: freebsd: ptnet_tx_intr: update hwcur/hwtail from host Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:22:19 2016 (r305289) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:22:28 2016 (r305290) @@ -105,8 +105,8 @@ char lock_name[16]; }; -#define PTNET_Q_LOCK(_pq) mtx_lock(&(_pq_->lock) -#define PTNET_Q_UNLOCK(_pq) mtx_unlock(&(_pq_->lock) +#define PTNET_Q_LOCK(_pq) mtx_lock(&(_pq)->lock) +#define PTNET_Q_UNLOCK(_pq) mtx_unlock(&(_pq)->lock) struct ptnet_softc { device_t dev; @@ -743,14 +743,18 @@ pq = sc->queues + 0; ptring = pq->ptring; - kring = na->tx_rings + 0; + kring = na->tx_rings + pq->kring_id; ring = kring->ring; lim = kring->nkr_num_slots - 1; + PTNET_Q_LOCK(pq); + /* Update hwcur and hwtail (completed TX slots) as known by the host, * by reading from CSB. */ ptnet_sync_tail(ptring, kring); + PTNET_Q_UNLOCK(pq); + head = ring->head; slot = ring->slot + head; nmbuf = NMB(na, slot); @@ -1100,12 +1104,21 @@ { struct ptnet_queue *pq = opaque; struct ptnet_softc *sc = pq->sc; + struct netmap_adapter *na_dr = &sc->ptna_dr.hwup.up; DBG(device_printf(sc->dev, "Tx interrupt #%d\n", pq->kring_id)); + if (!(sc->ifp->if_drv_flags & IFF_DRV_RUNNING)) { + return; + } + if (netmap_tx_irq(sc->ifp, pq->kring_id) != NM_IRQ_PASS) { return; } + + PTNET_Q_LOCK(pq); + ptnet_sync_tail(pq->ptring, na_dr->tx_rings + pq->kring_id); + PTNET_Q_UNLOCK(pq); } static void @@ -1117,6 +1130,10 @@ DBG(device_printf(sc->dev, "Rx interrupt #%d\n", pq->kring_id)); + if (!(sc->ifp->if_drv_flags & IFF_DRV_RUNNING)) { + return; + } + if (netmap_rx_irq(sc->ifp, pq->kring_id, &unused) != NM_IRQ_PASS) { return; } From owner-svn-soc-all@freebsd.org Fri Jun 17 16:22:48 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08D35A77622 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:22:48 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D6A4924E2 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:22:47 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGMlrP022923 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:22:47 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGMl1U022888 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:22:47 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:22:47 GMT Message-Id: <201606171622.u5HGMl1U022888@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305291 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:22:48 -0000 Author: vincenzo Date: Fri Jun 17 16:22:46 2016 New Revision: 305291 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305291 Log: freebsd: ptnet: sketch ptnet_rx_eof function Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:22:28 2016 (r305290) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:22:46 2016 (r305291) @@ -174,6 +174,8 @@ static void ptnet_tx_intr(void *opaque); static void ptnet_rx_intr(void *opaque); +static int ptnet_rx_eof(struct ptnet_queue *pq); + static device_method_t ptnet_methods[] = { DEVMETHOD(device_probe, ptnet_probe), DEVMETHOD(device_attach, ptnet_attach), @@ -802,8 +804,7 @@ /* Tell the host to process the new packets, updating cur and * head in the CSB. */ - ptnetmap_guest_write_kring_csb(ptring, kring->rcur, - kring->rhead); + ptnetmap_guest_write_kring_csb(ptring, kring->rcur, kring->rhead); /* Ask for a kick from a guest to the host if needed. */ if (NM_ACCESS_ONCE(ptring->host_need_kick)) { @@ -1137,4 +1138,53 @@ if (netmap_rx_irq(sc->ifp, pq->kring_id, &unused) != NM_IRQ_PASS) { return; } + + ptnet_rx_eof(pq); +} + +static int +ptnet_rx_eof(struct ptnet_queue *pq) +{ + struct ptnet_softc *sc = pq->sc; + struct ptnet_ring *ptring = pq->ptring; + struct netmap_adapter *na = &sc->ptna_dr.hwup.up; + struct netmap_kring *kring = na->rx_rings + pq->kring_id; + struct netmap_ring *ring = kring->ring; + unsigned int const lim = kring->nkr_num_slots - 1; + unsigned int head = ring->head; + struct ifnet *ifp = sc->ifp; + + PTNET_Q_LOCK(pq); + + /* Update hwtail, rtail, tail and hwcur to what is known from the host, + * reading from CSB. */ + ptnet_sync_tail(ptring, kring); + + kring->nr_kflags &= ~NKR_PENDINTR; + + while (head != ring->tail) { + struct netmap_slot *slot = ring->slot + head; + unsigned int nmbuf_len = slot->len; + uint8_t *nmbuf = NMB(na, slot); + struct mbuf *m = NULL; + + if (unlikely(m == NULL)) { + device_printf(sc->dev, "%s: failed to allocate mbuf" + "(len=%d)\n", __func__, nmbuf_len); + break; + } + + memcpy(m->m_data, nmbuf, nmbuf_len); + m->m_len = nmbuf_len; + + head = nm_next(head, lim); + + PTNET_Q_UNLOCK(pq); + (*ifp->if_input)(ifp, m); + PTNET_Q_LOCK(pq); + } + + PTNET_Q_UNLOCK(pq); + + return 0; } From owner-svn-soc-all@freebsd.org Fri Jun 17 16:23:29 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E89B4A77684 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:23:29 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DC2D82564 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:23:29 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGNTd4023731 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:23:29 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGNTsq023691 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:23:29 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:23:29 GMT Message-Id: <201606171623.u5HGNTsq023691@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305292 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:23:30 -0000 Author: vincenzo Date: Fri Jun 17 16:23:28 2016 New Revision: 305292 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305292 Log: freebsd: ptnet: set basic m_pkthdr fields Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:22:46 2016 (r305291) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:23:28 2016 (r305292) @@ -1174,6 +1174,12 @@ break; } + m->m_pkthdr.rcvif = ifp; + m->m_pkthdr.len = nmbuf_len; + + /* No support for checksum offloading for now. */ + m->m_pkthdr.csum_flags = 0; + memcpy(m->m_data, nmbuf, nmbuf_len); m->m_len = nmbuf_len; From owner-svn-soc-all@freebsd.org Fri Jun 17 16:23:38 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B9C46A776C0 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:23:38 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AD701257C for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:23:38 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGNcQF023894 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:23:38 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGNcMJ023836 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:23:38 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:23:38 GMT Message-Id: <201606171623.u5HGNcMJ023836@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305293 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:23:38 -0000 Author: vincenzo Date: Fri Jun 17 16:23:37 2016 New Revision: 305293 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305293 Log: freebsd: ptnet_rx_eof: add batch limiting (budget) Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:23:28 2016 (r305292) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:23:37 2016 (r305293) @@ -1153,6 +1153,7 @@ unsigned int const lim = kring->nkr_num_slots - 1; unsigned int head = ring->head; struct ifnet *ifp = sc->ifp; + unsigned int budget = 512; PTNET_Q_LOCK(pq); @@ -1162,7 +1163,7 @@ kring->nr_kflags &= ~NKR_PENDINTR; - while (head != ring->tail) { + while (head != ring->tail && budget) { struct netmap_slot *slot = ring->slot + head; unsigned int nmbuf_len = slot->len; uint8_t *nmbuf = NMB(na, slot); @@ -1183,11 +1184,12 @@ memcpy(m->m_data, nmbuf, nmbuf_len); m->m_len = nmbuf_len; - head = nm_next(head, lim); - PTNET_Q_UNLOCK(pq); (*ifp->if_input)(ifp, m); PTNET_Q_LOCK(pq); + + head = nm_next(head, lim); + budget--; } PTNET_Q_UNLOCK(pq); From owner-svn-soc-all@freebsd.org Fri Jun 17 16:23:47 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 540BAA776F4 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:23:47 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 479662590 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:23:47 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGNllx024059 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:23:47 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGNkbP024042 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:23:46 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:23:46 GMT Message-Id: <201606171623.u5HGNkbP024042@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305294 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:23:47 -0000 Author: vincenzo Date: Fri Jun 17 16:23:46 2016 New Revision: 305294 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305294 Log: freebsd: ptnet_rx_eof: add mbuf allocation Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:23:37 2016 (r305293) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:23:46 2016 (r305294) @@ -1167,8 +1167,18 @@ struct netmap_slot *slot = ring->slot + head; unsigned int nmbuf_len = slot->len; uint8_t *nmbuf = NMB(na, slot); - struct mbuf *m = NULL; + struct mbuf *m; + if (unlikely(nmbuf_len > MCLBYTES)) { + RD(1, "Dropping long frame: len %u > %u", + nmbuf_len, MCLBYTES); + goto next; + } + + /* We use m_getcl() to allocate an mbuf with standard + * cluster size (MCLBYTES). In the future we could use m_getjcl() + * to choose different sizes. */ + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); if (unlikely(m == NULL)) { device_printf(sc->dev, "%s: failed to allocate mbuf" "(len=%d)\n", __func__, nmbuf_len); @@ -1187,7 +1197,7 @@ PTNET_Q_UNLOCK(pq); (*ifp->if_input)(ifp, m); PTNET_Q_LOCK(pq); - +next: head = nm_next(head, lim); budget--; } From owner-svn-soc-all@freebsd.org Fri Jun 17 16:24:02 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6AAACA77720 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:24:02 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5E51325A7 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:24:02 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGO2s0024400 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:24:02 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGO1rH024376 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:24:01 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:24:01 GMT Message-Id: <201606171624.u5HGO1rH024376@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305295 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:24:02 -0000 Author: vincenzo Date: Fri Jun 17 16:24:01 2016 New Revision: 305295 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305295 Log: freebsd: ptnet_rx_eof: use mtod() instead of directly accessing m_data Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:23:46 2016 (r305294) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:24:01 2016 (r305295) @@ -1186,13 +1186,12 @@ } m->m_pkthdr.rcvif = ifp; - m->m_pkthdr.len = nmbuf_len; + m->m_len = m->m_pkthdr.len = nmbuf_len; /* No support for checksum offloading for now. */ m->m_pkthdr.csum_flags = 0; - memcpy(m->m_data, nmbuf, nmbuf_len); - m->m_len = nmbuf_len; + memcpy(mtod(m, void *), nmbuf, nmbuf_len); PTNET_Q_UNLOCK(pq); (*ifp->if_input)(ifp, m); From owner-svn-soc-all@freebsd.org Fri Jun 17 16:24:12 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BFCFEA77736 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:24:12 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B37F925C2 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:24:12 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGOCaF024630 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:24:12 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGOChs024577 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:24:12 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:24:12 GMT Message-Id: <201606171624.u5HGOChs024577@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305296 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:24:12 -0000 Author: vincenzo Date: Fri Jun 17 16:24:11 2016 New Revision: 305296 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305296 Log: freebsd: ptnet_ioctl: add missing break statements Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:24:01 2016 (r305295) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:24:11 2016 (r305296) @@ -614,9 +614,11 @@ err = ptnet_stop(sc); } PTNET_CORE_UNLOCK(sc); + break; default: err = ether_ioctl(ifp, cmd, data); + break; } return err; From owner-svn-soc-all@freebsd.org Fri Jun 17 16:24:23 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 875A0A77757 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:24:23 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6125025D9 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:24:23 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGONrw024823 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:24:23 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGOMuX024821 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:24:22 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:24:22 GMT Message-Id: <201606171624.u5HGOMuX024821@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305297 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:24:23 -0000 Author: vincenzo Date: Fri Jun 17 16:24:22 2016 New Revision: 305297 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305297 Log: freebsd: ptnet_rx_eof: update CSB with new cur/head Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:24:11 2016 (r305296) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:24:22 2016 (r305297) @@ -808,7 +808,7 @@ * head in the CSB. */ ptnetmap_guest_write_kring_csb(ptring, kring->rcur, kring->rhead); - /* Ask for a kick from a guest to the host if needed. */ + /* Kick the host if needed. */ if (NM_ACCESS_ONCE(ptring->host_need_kick)) { ptring->sync_flags = NAF_FORCE_RECLAIM; bus_write_4(sc->iomem, pq->kick, 0); @@ -1144,6 +1144,8 @@ ptnet_rx_eof(pq); } +#define RX_BUDGET 512 + static int ptnet_rx_eof(struct ptnet_queue *pq) { @@ -1155,7 +1157,7 @@ unsigned int const lim = kring->nkr_num_slots - 1; unsigned int head = ring->head; struct ifnet *ifp = sc->ifp; - unsigned int budget = 512; + unsigned int budget = RX_BUDGET; PTNET_Q_LOCK(pq); @@ -1198,11 +1200,32 @@ PTNET_Q_UNLOCK(pq); (*ifp->if_input)(ifp, m); PTNET_Q_LOCK(pq); + device_printf(sc->dev, "%s: if_input(%p)\n", __func__, m); next: head = nm_next(head, lim); budget--; } + if (budget != RX_BUDGET) { + /* Some packets have been pushed to the network stack. + * We need to update the CSB to tell the host about the new + * ring->cur and ring->head (RX buffer refill). */ + ring->head = ring->cur = head; + + /* Mimic rxsync_prologue */ + kring->rcur = ring->cur; + kring->rhead = ring->head; + + ptnetmap_guest_write_kring_csb(ptring, kring->rcur, + kring->rhead); + + /* Kick the host if needed. */ + if (NM_ACCESS_ONCE(ptring->host_need_kick)) { + ptring->sync_flags = NAF_FORCE_READ; + bus_write_4(sc->iomem, pq->kick, 0); + } + } + PTNET_Q_UNLOCK(pq); return 0; From owner-svn-soc-all@freebsd.org Fri Jun 17 16:24:35 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9DE72A77773 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:24:35 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 918F425EF for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:24:35 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGOZDr025142 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:24:35 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGOZi2025055 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:24:35 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:24:35 GMT Message-Id: <201606171624.u5HGOZi2025055@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305298 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:24:35 -0000 Author: vincenzo Date: Fri Jun 17 16:24:34 2016 New Revision: 305298 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305298 Log: freebsd: ptnet_init_locked: debug print only when doing real init Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:24:22 2016 (r305297) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:24:34 2016 (r305298) @@ -631,12 +631,12 @@ struct netmap_adapter *na_dr = &sc->ptna_dr.hwup.up; int ret; - device_printf(sc->dev, "%s\n", __func__); - if (ifp->if_drv_flags & IFF_DRV_RUNNING) { return 0; /* nothing to do */ } + device_printf(sc->dev, "%s\n", __func__); + netmap_update_config(na_dr); ret = netmap_mem_finalize(na_dr->nm_mem, na_dr); From owner-svn-soc-all@freebsd.org Fri Jun 17 16:24:57 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E43BA7779C for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:24:57 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31F792609 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:24:57 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGOvUS025586 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:24:57 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGOuIF025551 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:24:56 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:24:56 GMT Message-Id: <201606171624.u5HGOuIF025551@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305299 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:24:57 -0000 Author: vincenzo Date: Fri Jun 17 16:24:56 2016 New Revision: 305299 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305299 Log: freebsd: ptnet_rx_eof: enable RX interrupts once run out of packets Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:24:34 2016 (r305298) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:24:56 2016 (r305299) @@ -814,6 +814,10 @@ bus_write_4(sc->iomem, pq->kick, 0); } + if (0) { + ptring->guest_need_kick = 1; + } + return 0; } @@ -1206,6 +1210,10 @@ budget--; } + /* Reactivate interrupts as they were disabled by the host thread right + * before issuing the last interrupt. */ + ptring->guest_need_kick = 1; + if (budget != RX_BUDGET) { /* Some packets have been pushed to the network stack. * We need to update the CSB to tell the host about the new From owner-svn-soc-all@freebsd.org Fri Jun 17 16:25:52 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2481DA777CA for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:25:52 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 182132641 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:25:52 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGPpfV026755 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:25:51 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGPpYb026718 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:25:51 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:25:51 GMT Message-Id: <201606171625.u5HGPpYb026718@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305300 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:25:52 -0000 Author: vincenzo Date: Fri Jun 17 16:25:50 2016 New Revision: 305300 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305300 Log: freebsd: ptnet_rx_eof: add optional debug print in the work loop Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:24:56 2016 (r305299) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:25:50 2016 (r305300) @@ -1183,6 +1183,9 @@ goto next; } + DBG(device_printf(sc->dev, "%s: h %u t %u rcv frame len %u\n", + __func__, head, ring->tail, nmbuf_len)); + /* We use m_getcl() to allocate an mbuf with standard * cluster size (MCLBYTES). In the future we could use m_getjcl() * to choose different sizes. */ @@ -1204,7 +1207,6 @@ PTNET_Q_UNLOCK(pq); (*ifp->if_input)(ifp, m); PTNET_Q_LOCK(pq); - device_printf(sc->dev, "%s: if_input(%p)\n", __func__, m); next: head = nm_next(head, lim); budget--; From owner-svn-soc-all@freebsd.org Fri Jun 17 16:26:03 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2EB5BA777E5 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:26:03 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2225F2657 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:26:03 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGQ3do027061 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:26:03 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGQ2x1027021 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:26:02 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:26:02 GMT Message-Id: <201606171626.u5HGQ2x1027021@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305301 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:26:03 -0000 Author: vincenzo Date: Fri Jun 17 16:26:02 2016 New Revision: 305301 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305301 Log: freebsd: ptnet_transmit: make debug print optional Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:25:50 2016 (r305300) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:26:02 2016 (r305301) @@ -613,6 +613,8 @@ /* Network stack wants the iff to be down. */ err = ptnet_stop(sc); } + /* We don't need to do nothing to support IFF_PROMISC, + * since that is managed by the backend port. */ PTNET_CORE_UNLOCK(sc); break; @@ -743,7 +745,7 @@ int nmbuf_bytes; uint8_t *nmbuf; - device_printf(sc->dev, "transmit %p\n", m); + DBG(device_printf(sc->dev, "transmit %p\n", m)); pq = sc->queues + 0; ptring = pq->ptring; From owner-svn-soc-all@freebsd.org Fri Jun 17 16:26:12 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 530D9A77802 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:26:12 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46FB6267A for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:26:12 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGQCt2027237 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:26:12 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGQBf4027201 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:26:11 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:26:11 GMT Message-Id: <201606171626.u5HGQBf4027201@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305302 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:26:12 -0000 Author: vincenzo Date: Fri Jun 17 16:26:11 2016 New Revision: 305302 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305302 Log: freebsd: ptnet_transmit: unlock queue at the end of the function Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:26:02 2016 (r305301) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:26:11 2016 (r305302) @@ -759,8 +759,6 @@ * by reading from CSB. */ ptnet_sync_tail(ptring, kring); - PTNET_Q_UNLOCK(pq); - head = ring->head; slot = ring->slot + head; nmbuf = NMB(na, slot); @@ -820,6 +818,8 @@ ptring->guest_need_kick = 1; } + PTNET_Q_UNLOCK(pq); + return 0; } From owner-svn-soc-all@freebsd.org Fri Jun 17 16:26:21 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7E240A7781C for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:26:21 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 71CD42694 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:26:21 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGQL28027451 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:26:21 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGQKau027448 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:26:20 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:26:20 GMT Message-Id: <201606171626.u5HGQKau027448@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305303 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:26:21 -0000 Author: vincenzo Date: Fri Jun 17 16:26:20 2016 New Revision: 305303 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305303 Log: freebsd: ptnet_transmit: drop if no available space in the ring Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:26:11 2016 (r305302) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:26:20 2016 (r305303) @@ -764,6 +764,14 @@ nmbuf = NMB(na, slot); nmbuf_bytes = 0; + if (head == ring->tail) { + device_printf(sc->dev, "%s: Drop, no free slots\n", __func__); + m_freem(m); + ptring->guest_need_kick = 1; + + return 0; + } + for (mf = m; mf; mf = mf->m_next) { uint8_t *mdata = mf->m_data; int mlen = mf->m_len; From owner-svn-soc-all@freebsd.org Fri Jun 17 16:27:00 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9B566A7787D for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:27:00 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8036826D1 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:27:00 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGR0FM028321 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:27:00 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGQxoB028313 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:26:59 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:26:59 GMT Message-Id: <201606171626.u5HGQxoB028313@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305304 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:27:00 -0000 Author: vincenzo Date: Fri Jun 17 16:26:59 2016 New Revision: 305304 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305304 Log: freebsd: ptnet: support taskqueue on receive datapath Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:26:20 2016 (r305303) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:26:59 2016 (r305304) @@ -102,6 +102,8 @@ struct ptnet_ring *ptring; unsigned int kick; struct mtx lock; + struct taskqueue *taskq; + struct task task; char lock_name[16]; }; @@ -175,6 +177,7 @@ static void ptnet_rx_intr(void *opaque); static int ptnet_rx_eof(struct ptnet_queue *pq); +static void ptnet_rx_task(void *context, int pending); static device_method_t ptnet_methods[] = { DEVMETHOD(device_probe, ptnet_probe), @@ -478,6 +481,7 @@ unsigned int num_tx_rings; device_t dev = sc->dev; int err = ENOSPC; + int cpu_cur; int i; num_tx_rings = bus_read_4(sc->iomem, PTNET_IO_NUM_TX_RINGS); @@ -519,6 +523,7 @@ } } + cpu_cur = CPU_FIRST(); for (i = 0; i < nvecs; i++) { struct ptnet_queue *pq = sc->queues + i; void (*handler)(void *) = ptnet_tx_intr; @@ -536,11 +541,29 @@ } bus_describe_intr(dev, pq->irq, pq->cookie, "q%d", i); - //bus_bind_intr(); /* bind intr to CPU */ + bus_bind_intr(sc->dev, pq->irq, cpu_cur); + cpu_cur = CPU_NEXT(cpu_cur); } device_printf(dev, "Allocated %d MSI-X vectors\n", nvecs); + cpu_cur = CPU_FIRST(); + for (i = 0; i < nvecs; i++) { + struct ptnet_queue *pq = sc->queues + i; + + if (i < num_tx_rings) { + /* Only support RX queues for now. */ + continue; + } + + TASK_INIT(&pq->task, 0, ptnet_rx_task, pq); + pq->taskq = taskqueue_create_fast("ptnet_queue", M_NOWAIT, + taskqueue_thread_enqueue, &pq->taskq); + taskqueue_start_threads(&pq->taskq, 1, PI_NET, "%s-pq-%d", + device_get_nameunit(sc->dev), cpu_cur); + cpu_cur = CPU_NEXT(cpu_cur); + } + /* Tell the hypervisor that we have allocated the MSI-X vectors, * so that it can do its own setup. */ bus_write_4(sc->iomem, PTNET_IO_CTRL, PTNET_CTRL_IRQINIT); @@ -1169,9 +1192,10 @@ struct netmap_kring *kring = na->rx_rings + pq->kring_id; struct netmap_ring *ring = kring->ring; unsigned int const lim = kring->nkr_num_slots - 1; + unsigned int budget = RX_BUDGET; unsigned int head = ring->head; struct ifnet *ifp = sc->ifp; - unsigned int budget = RX_BUDGET; + unsigned int more; PTNET_Q_LOCK(pq); @@ -1246,7 +1270,26 @@ } } + more = (head != ring->tail); + PTNET_Q_UNLOCK(pq); + if (more) { + device_printf(sc->dev, "%s: resched: budget %u h %u " + "t %u\n", __func__, budget, ring->head, + ring->tail); + taskqueue_enqueue(pq->taskq, &pq->task); + } + return 0; } + +static void +ptnet_rx_task(void *context, int pending) +{ + struct ptnet_queue *pq = context; + + device_printf(pq->sc->dev, "%s: pq #%u\n", __func__, pq->kring_id); + ptnet_rx_eof(pq); +} + From owner-svn-soc-all@freebsd.org Fri Jun 17 16:27:10 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2BD84A77897 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:27:10 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1F82E26E7 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:27:10 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGR9b0028680 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:27:09 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGR9Ii028624 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:27:09 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:27:09 GMT Message-Id: <201606171627.u5HGR9Ii028624@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305305 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:27:10 -0000 Author: vincenzo Date: Fri Jun 17 16:27:08 2016 New Revision: 305305 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305305 Log: freebsd: ptnet: don't bind interrupts to CPU by default Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:26:59 2016 (r305304) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:27:08 2016 (r305305) @@ -541,7 +541,9 @@ } bus_describe_intr(dev, pq->irq, pq->cookie, "q%d", i); +#if 0 bus_bind_intr(sc->dev, pq->irq, cpu_cur); +#endif cpu_cur = CPU_NEXT(cpu_cur); } From owner-svn-soc-all@freebsd.org Fri Jun 17 16:27:21 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E4B7AA778B0 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:27:21 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D84942709 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:27:21 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGRLD1029204 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:27:21 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGRLwD029180 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:27:21 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:27:21 GMT Message-Id: <201606171627.u5HGRLwD029180@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305306 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:27:22 -0000 Author: vincenzo Date: Fri Jun 17 16:27:20 2016 New Revision: 305306 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305306 Log: freebsd: ptnet: allocate/deallocate buf_ring for TX queues Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:27:08 2016 (r305305) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:27:20 2016 (r305306) @@ -102,6 +102,7 @@ struct ptnet_ring *ptring; unsigned int kick; struct mtx lock; + struct buf_ring *bufring; /* for TX queues */ struct taskqueue *taskq; struct task task; char lock_name[16]; @@ -214,6 +215,8 @@ extern int netmap_initialized; +#define PTNET_BUF_RING_SIZE 4096 + static int ptnet_attach(device_t dev) { @@ -296,12 +299,21 @@ pq->kring_id = i; pq->kick = PTNET_IO_KICK_BASE + 4 * i; pq->ptring = sc->csb->rings + i; - if (i >= num_tx_rings) { - pq->kring_id -= num_tx_rings; - } snprintf(pq->lock_name, sizeof(pq->lock_name), "%s-%d", device_get_nameunit(dev), i); mtx_init(&pq->lock, pq->lock_name, NULL, MTX_DEF); + if (i >= num_tx_rings) { + /* RX queue: fix kring_id. */ + pq->kring_id -= num_tx_rings; + } else { + /* TX queue: allocate buf_ring. */ + pq->bufring = buf_ring_alloc(PTNET_BUF_RING_SIZE, + M_DEVBUF, M_NOWAIT, &pq->lock); + if (pq->bufring == NULL) { + err = ENOMEM; + goto err_path; + } + } } err = ptnet_irqs_init(sc); @@ -424,6 +436,15 @@ } if (sc->queues) { + int i; + + for (i = 0; i < sc->num_rings; i++) { + struct ptnet_queue *pq = sc->queues + i; + + if (pq->bufring != NULL) { + buf_ring_free(pq->bufring, M_DEVBUF); + } + } free(sc->queues, M_DEVBUF); sc->queues = NULL; } From owner-svn-soc-all@freebsd.org Fri Jun 17 16:27:34 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 331BFA778C8 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:27:34 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 26D85271D for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:27:34 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGRYeG029823 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:27:34 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGRXNM029807 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:27:33 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:27:33 GMT Message-Id: <201606171627.u5HGRXNM029807@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305307 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:27:34 -0000 Author: vincenzo Date: Fri Jun 17 16:27:33 2016 New Revision: 305307 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305307 Log: freebsd: ptnet_detach: add missing mtx_destroy() call Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:27:20 2016 (r305306) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:27:33 2016 (r305307) @@ -441,6 +441,9 @@ for (i = 0; i < sc->num_rings; i++) { struct ptnet_queue *pq = sc->queues + i; + if (mtx_initialized(&pq->lock)) { + mtx_destroy(&pq->lock); + } if (pq->bufring != NULL) { buf_ring_free(pq->bufring, M_DEVBUF); } From owner-svn-soc-all@freebsd.org Fri Jun 17 16:27:44 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8C968A778DF for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:27:44 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 803722734 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:27:44 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGRisH030421 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:27:44 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGRhpF030337 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:27:43 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:27:43 GMT Message-Id: <201606171627.u5HGRhpF030337@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305308 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:27:44 -0000 Author: vincenzo Date: Fri Jun 17 16:27:43 2016 New Revision: 305308 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305308 Log: freebsd: extend hack added by f140085f9da89c5e Modified: soc2016/vincenzo/head/sys/dev/netmap/netmap_freebsd.c soc2016/vincenzo/head/sys/dev/netmap/netmap_mem2.c Modified: soc2016/vincenzo/head/sys/dev/netmap/netmap_freebsd.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/netmap_freebsd.c Fri Jun 17 16:27:33 2016 (r305307) +++ soc2016/vincenzo/head/sys/dev/netmap/netmap_freebsd.c Fri Jun 17 16:27:43 2016 (r305308) @@ -1451,6 +1451,7 @@ error = EBUSY; break; } + netmap_initialized = 0; netmap_fini(); break; Modified: soc2016/vincenzo/head/sys/dev/netmap/netmap_mem2.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/netmap_mem2.c Fri Jun 17 16:27:33 2016 (r305307) +++ soc2016/vincenzo/head/sys/dev/netmap/netmap_mem2.c Fri Jun 17 16:27:43 2016 (r305308) @@ -562,9 +562,15 @@ return ret; } +extern int netmap_initialized; + static void nm_mem_release_id(struct netmap_mem_d *nmd) { + if (!netmap_initialized) { + D("skip, nm_mem could be gone"); + return; + } NMA_LOCK(&nm_mem); nmd->prev->next = nmd->next; From owner-svn-soc-all@freebsd.org Fri Jun 17 16:28:04 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 466C4A77917 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:28:04 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 202732754 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:28:04 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGS3oj031508 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:28:03 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGS3X0031433 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:28:03 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:28:03 GMT Message-Id: <201606171628.u5HGS3X0031433@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305309 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:28:04 -0000 Author: vincenzo Date: Fri Jun 17 16:28:02 2016 New Revision: 305309 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305309 Log: freebsd: allocate task for transmission Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:27:43 2016 (r305308) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:28:02 2016 (r305309) @@ -109,6 +109,7 @@ }; #define PTNET_Q_LOCK(_pq) mtx_lock(&(_pq)->lock) +#define PTNET_Q_TRYLOCK(_pq) mtx_trylock(&(_pq)->lock) #define PTNET_Q_UNLOCK(_pq) mtx_unlock(&(_pq)->lock) struct ptnet_softc { @@ -157,6 +158,7 @@ static int ptnet_stop(struct ptnet_softc *sc); static int ptnet_transmit(struct ifnet *ifp, struct mbuf *m); static void ptnet_qflush(struct ifnet *ifp); +static void ptnet_tx_task(void *context, int pending); static int ptnet_media_change(struct ifnet *ifp); static void ptnet_media_status(struct ifnet *ifp, struct ifmediareq *ifmr); @@ -576,13 +578,11 @@ cpu_cur = CPU_FIRST(); for (i = 0; i < nvecs; i++) { struct ptnet_queue *pq = sc->queues + i; + static void (*handler)(void *context, int pending); - if (i < num_tx_rings) { - /* Only support RX queues for now. */ - continue; - } + handler = (i < num_tx_rings) ? ptnet_tx_task : ptnet_rx_task; - TASK_INIT(&pq->task, 0, ptnet_rx_task, pq); + TASK_INIT(&pq->task, 0, handler, pq); pq->taskq = taskqueue_create_fast("ptnet_queue", M_NOWAIT, taskqueue_thread_enqueue, &pq->taskq); taskqueue_start_threads(&pq->taskq, 1, PI_NET, "%s-pq-%d", @@ -1319,3 +1319,12 @@ ptnet_rx_eof(pq); } +static void +ptnet_tx_task(void *context, int pending) +{ + struct ptnet_queue *pq = context; + + device_printf(pq->sc->dev, "%s: pq #%u\n", __func__, pq->kring_id); + ptnet_transmit(pq->sc->ifp, NULL); +} + From owner-svn-soc-all@freebsd.org Fri Jun 17 16:28:13 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 604A6A77969 for <svn-soc-all@mailman.ysv.freebsd.org>; Fri, 17 Jun 2016 16:28:13 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 54085276B for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:28:13 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGSDWB031973 for <svn-soc-all@FreeBSD.org>; Fri, 17 Jun 2016 16:28:13 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGSCuq031948 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:28:12 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:28:12 GMT Message-Id: <201606171628.u5HGSCuq031948@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305310 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Fri, 17 Jun 2016 16:28:13 -0000 Author: vincenzo Date: Fri Jun 17 16:28:11 2016 New Revision: 305310 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305310 Log: freebsd: ptnet_irqs_fini: add missing tasqueue_free() call Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:28:02 2016 (r305309) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:28:11 2016 (r305310) @@ -613,6 +613,11 @@ for (i = 0; i < sc->num_rings; i++) { struct ptnet_queue *pq = sc->queues + i; + if (pq->taskq) { + taskqueue_free(pq->taskq); + pq->taskq = NULL; + } + if (pq->cookie) { bus_teardown_intr(dev, pq->irq, pq->cookie); pq->cookie = NULL; From owner-svn-soc-all@freebsd.org Sat Jun 18 12:20:06 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D6441A79EFA for <svn-soc-all@mailman.ysv.freebsd.org>; Sat, 18 Jun 2016 12:20:06 +0000 (UTC) (envelope-from iateaca@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C9C88187B for <svn-soc-all@FreeBSD.org>; Sat, 18 Jun 2016 12:20:06 +0000 (UTC) (envelope-from iateaca@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5ICK6vQ025627 for <svn-soc-all@FreeBSD.org>; Sat, 18 Jun 2016 12:20:06 GMT (envelope-from iateaca@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5ICK6NV025624 for svn-soc-all@FreeBSD.org; Sat, 18 Jun 2016 12:20:06 GMT (envelope-from iateaca@FreeBSD.org) Date: Sat, 18 Jun 2016 12:20:06 GMT Message-Id: <201606181220.u5ICK6NV025624@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to iateaca@FreeBSD.org using -f From: iateaca@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305326 - soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sat, 18 Jun 2016 12:20:06 -0000 Author: iateaca Date: Sat Jun 18 12:20:05 2016 New Revision: 305326 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305326 Log: design the hda_bdle_desc, hda_stream_desc data structures implement the reset stream procedure M bhyve/pci_hda.c Modified: soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Modified: soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c ============================================================================== --- soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Sat Jun 18 09:48:20 2016 (r305325) +++ soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Sat Jun 18 12:20:05 2016 (r305326) @@ -10,12 +10,18 @@ #define INTEL_VENDORID 0x8086 #define HDA_INTEL_82801G 0x27d8 +#define HDA_IOSS_NO 0x08 #define HDA_OSS_NO 0x04 #define HDA_ISS_NO 0x04 #define HDA_CODEC_MAX 0x0f #define HDA_LAST_OFFSET (0x80 + ((HDA_ISS_NO) * 0x20) + ((HDA_OSS_NO) * 0x20)) #define HDA_CORB_ENTRY_LEN 0x04 #define HDA_RIRB_ENTRY_LEN 0x08 +#define HDA_STREAM_TAGS_CNT 0x10 +#define HDA_STREAM_REGS_BASE 0x80 +#define HDA_STREAM_REGS_LEN 0x20 + +#define HDA_BDL_MAX_LEN 0x0100 /* * HDA data structures @@ -25,6 +31,19 @@ typedef void (*hda_set_reg_handler)(struct hda_softc *sc, uint32_t offset, uint32_t old); +struct hda_bdle { + uint32_t addrl; + uint32_t addrh; + uint32_t len; + uint32_t ioc; +} __packed; + +struct hda_bdle_desc { + void *addr; + uint32_t len; + uint8_t ioc; +}; + struct hda_codec_cmd_ctl { char *name; void *dma_vaddr; @@ -34,6 +53,14 @@ uint8_t run; }; +struct hda_stream_desc { + uint8_t run; + uint8_t dir; + + struct hda_bdle_desc bdl[HDA_BDL_MAX_LEN]; + uint32_t bdl_cnt; +}; + struct hda_softc { struct pci_devinst *pci_dev; uint32_t regs[HDA_LAST_OFFSET]; @@ -43,6 +70,9 @@ struct hda_codec_inst *codecs[HDA_CODEC_MAX]; uint8_t codecs_no; + + struct hda_stream_desc streams[HDA_IOSS_NO]; + uint8_t stream_map[HDA_STREAM_TAGS_CNT]; }; /* @@ -67,6 +97,8 @@ hda_reset(struct hda_softc *sc); static void hda_reset_regs(struct hda_softc *sc); +static void +hda_reset_stream(struct hda_softc *sc, uint8_t stream_ind); static uint32_t hda_read(struct hda_softc *sc, uint32_t offset); static int @@ -90,6 +122,8 @@ static inline uint8_t hda_get_stream_by_offsets(uint32_t offset, uint8_t reg_offset); +static inline uint32_t +hda_get_offset_stream(uint8_t stream_ind); static void hda_set_gctl(struct hda_softc *sc, uint32_t offset, uint32_t old); @@ -355,6 +389,25 @@ return; } +static void +hda_reset_stream(struct hda_softc *sc, uint8_t stream_ind) +{ + struct hda_stream_desc *st = &sc->streams[stream_ind]; + uint32_t off = hda_get_offset_stream(stream_ind); + + DPRINTF("Reset the HDA stream: 0x%x\n", stream_ind); + + /* Reset the Stream Descriptor registers */ + memset(sc->regs + HDA_STREAM_REGS_BASE + off, 0, HDA_STREAM_REGS_LEN); + + /* Reset the Stream Descriptor */ + memset(st, 0, sizeof(*st)); + + hda_set_field_by_offset(sc, off + HDAC_SDCTL0, HDAC_SDCTL_SRST, HDAC_SDCTL_SRST); + + return; +} + static uint32_t hda_read(struct hda_softc *sc, uint32_t offset) { @@ -521,7 +574,17 @@ static inline uint8_t hda_get_stream_by_offsets(uint32_t offset, uint8_t reg_offset) { - return (offset - reg_offset - 0x80) / 0x20; + uint8_t stream_ind = (offset - reg_offset) >> 5; + + assert(stream_ind < HDA_IOSS_NO); + + return stream_ind; +} + +static inline uint32_t +hda_get_offset_stream(uint8_t stream_ind) +{ + return stream_ind << 5; } static void @@ -583,10 +646,15 @@ static void hda_set_sdctl(struct hda_softc *sc, uint32_t offset, uint32_t old) { - uint8_t stream_ind = hda_get_stream_by_offsets(offset, 0x00); + uint8_t stream_ind = hda_get_stream_by_offsets(offset, HDAC_SDCTL0); + uint32_t value = hda_get_reg_by_offset(sc, offset); DPRINTF("stream_ind: 0x%x old: 0x%x\n", stream_ind, old); + if (value & HDAC_SDCTL_SRST) { + hda_reset_stream(sc, stream_ind); + } + return; } From owner-svn-soc-all@freebsd.org Sat Jun 18 15:21:09 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A6B92A788E0 for <svn-soc-all@mailman.ysv.freebsd.org>; Sat, 18 Jun 2016 15:21:09 +0000 (UTC) (envelope-from iateaca@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9A3A41383 for <svn-soc-all@FreeBSD.org>; Sat, 18 Jun 2016 15:21:09 +0000 (UTC) (envelope-from iateaca@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5IFL9tW043000 for <svn-soc-all@FreeBSD.org>; Sat, 18 Jun 2016 15:21:09 GMT (envelope-from iateaca@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5IFL9Px042961 for svn-soc-all@FreeBSD.org; Sat, 18 Jun 2016 15:21:09 GMT (envelope-from iateaca@FreeBSD.org) Date: Sat, 18 Jun 2016 15:21:09 GMT Message-Id: <201606181521.u5IFL9Px042961@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to iateaca@FreeBSD.org using -f From: iateaca@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305334 - soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sat, 18 Jun 2016 15:21:09 -0000 Author: iateaca Date: Sat Jun 18 15:21:08 2016 New Revision: 305334 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305334 Log: start to implement the start_stream procedure: construct the BDL array M bhyve/pci_hda.c Modified: soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Modified: soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c ============================================================================== --- soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Sat Jun 18 13:44:10 2016 (r305333) +++ soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Sat Jun 18 15:21:08 2016 (r305334) @@ -17,6 +17,7 @@ #define HDA_LAST_OFFSET (0x80 + ((HDA_ISS_NO) * 0x20) + ((HDA_OSS_NO) * 0x20)) #define HDA_CORB_ENTRY_LEN 0x04 #define HDA_RIRB_ENTRY_LEN 0x08 +#define HDA_BDL_ENTRY_LEN 0x10 #define HDA_STREAM_TAGS_CNT 0x10 #define HDA_STREAM_REGS_BASE 0x80 #define HDA_STREAM_REGS_LEN 0x20 @@ -99,6 +100,8 @@ hda_reset_regs(struct hda_softc *sc); static void hda_reset_stream(struct hda_softc *sc, uint8_t stream_ind); +static int +hda_start_stream(struct hda_softc *sc, uint8_t stream_ind); static uint32_t hda_read(struct hda_softc *sc, uint32_t offset); static int @@ -408,6 +411,68 @@ return; } +static int +hda_start_stream(struct hda_softc *sc, uint8_t stream_ind) +{ + struct hda_stream_desc *st = &sc->streams[stream_ind]; + struct hda_bdle_desc *bdle_desc = NULL; + struct hda_bdle *bdle = NULL; + uint32_t lvi = 0; + uint32_t bdl_cnt = 0; + uint64_t bdpl = 0; + uint64_t bdpu = 0; + uint64_t bdl_paddr = 0; + void *bdl_vaddr = NULL; + uint32_t bdle_sz = 0; + uint64_t bdle_addrl = 0; + uint64_t bdle_addrh = 0; + uint64_t bdle_paddr = 0; + void *bdle_vaddr = NULL; + uint32_t off = hda_get_offset_stream(stream_ind); + int i; + + assert(!st->run); + + lvi = hda_get_reg_by_offset(sc, off + HDAC_SDLVI); + bdpl = hda_get_reg_by_offset(sc, off + HDAC_SDBDPL); + bdpu = hda_get_reg_by_offset(sc, off + HDAC_SDBDPU); + + bdl_cnt = lvi + 1; + assert(bdl_cnt <= HDA_BDL_MAX_LEN); + + bdl_paddr = bdpl | (bdpu << 32); + bdl_vaddr = hda_dma_get_vaddr(sc, bdl_paddr, HDA_BDL_ENTRY_LEN * bdl_cnt); + if (!bdl_vaddr) { + DPRINTF("Fail to get the guest virtual address\n"); + return -1; + } + + DPRINTF("stream: 0x%x bdl_cnt: 0x%x bdl_paddr: 0x%lx\n", stream_ind, bdl_cnt, bdl_paddr); + + st->bdl_cnt = bdl_cnt; + + bdle = (struct hda_bdle *)bdl_vaddr; + for (i = 0; i < bdl_cnt; i++, bdle++) { + bdle_sz = bdle->len; + bdle_addrl = bdle->addrl; + bdle_addrh = bdle->addrh; + + bdle_paddr = bdle_addrl | (bdle_addrh << 32); + bdle_vaddr = hda_dma_get_vaddr(sc, bdle_paddr, bdle_sz); + if (!bdle_vaddr) { + DPRINTF("Fail to get the guest virtual address\n"); + return -1; + } + + bdle_desc = &st->bdl[i]; + bdle_desc->addr = bdle_vaddr; + bdle_desc->len = bdle_sz; + bdle_desc->ioc = bdle->ioc; + } + + return 0; +} + static uint32_t hda_read(struct hda_softc *sc, uint32_t offset) { @@ -648,6 +713,7 @@ { uint8_t stream_ind = hda_get_stream_by_offsets(offset, HDAC_SDCTL0); uint32_t value = hda_get_reg_by_offset(sc, offset); + int err; DPRINTF("stream_ind: 0x%x old: 0x%x\n", stream_ind, old); @@ -655,6 +721,11 @@ hda_reset_stream(sc, stream_ind); } + if (value & HDAC_SDCTL_RUN) { + err = hda_start_stream(sc, stream_ind); + assert(!err); + } + return; } From owner-svn-soc-all@freebsd.org Sat Jun 18 16:54:44 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1CEB3A787EA for <svn-soc-all@mailman.ysv.freebsd.org>; Sat, 18 Jun 2016 16:54:44 +0000 (UTC) (envelope-from iateaca@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EC2B01B7D for <svn-soc-all@FreeBSD.org>; Sat, 18 Jun 2016 16:54:43 +0000 (UTC) (envelope-from iateaca@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5IGshuk079845 for <svn-soc-all@FreeBSD.org>; Sat, 18 Jun 2016 16:54:43 GMT (envelope-from iateaca@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5IGshAd079800 for svn-soc-all@FreeBSD.org; Sat, 18 Jun 2016 16:54:43 GMT (envelope-from iateaca@FreeBSD.org) Date: Sat, 18 Jun 2016 16:54:43 GMT Message-Id: <201606181654.u5IGshAd079800@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to iateaca@FreeBSD.org using -f From: iateaca@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305335 - soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sat, 18 Jun 2016 16:54:44 -0000 Author: iateaca Date: Sat Jun 18 16:54:42 2016 New Revision: 305335 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305335 Log: fix the write to the SDCTL2 offset get strm tag from the SDCTL register and map it to the stream_ind stream M bhyve/pci_hda.c Modified: soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Modified: soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c ============================================================================== --- soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Sat Jun 18 15:21:08 2016 (r305334) +++ soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Sat Jun 18 16:54:42 2016 (r305335) @@ -138,6 +138,8 @@ hda_set_rirbctl(struct hda_softc *sc, uint32_t offset, uint32_t old); static void hda_set_sdctl(struct hda_softc *sc, uint32_t offset, uint32_t old); +static void +hda_set_sdctl2(struct hda_softc *sc, uint32_t offset, uint32_t old); static int hda_signal_state_change(struct hda_codec_inst *hci); @@ -167,9 +169,11 @@ #define HDAC_ISTREAM(n, iss, oss) \ [_HDAC_ISDCTL(n, iss, oss)] = hda_set_sdctl, \ + [_HDAC_ISDCTL(n, iss, oss) + 2] = hda_set_sdctl2, \ #define HDAC_OSTREAM(n, iss, oss) \ [_HDAC_OSDCTL(n, iss, oss)] = hda_set_sdctl, \ + [_HDAC_OSDCTL(n, iss, oss) + 2] = hda_set_sdctl2, \ HDAC_ISTREAM(0, HDA_ISS_NO, HDA_OSS_NO) HDAC_ISTREAM(1, HDA_ISS_NO, HDA_OSS_NO) @@ -246,7 +250,7 @@ reg_value = hda_get_reg_by_offset(sc, offset); reg_value &= ~mask; - reg_value |= value; + reg_value |= (value & mask); hda_set_reg_by_offset(sc, offset, reg_value); @@ -429,6 +433,8 @@ uint64_t bdle_paddr = 0; void *bdle_vaddr = NULL; uint32_t off = hda_get_offset_stream(stream_ind); + uint32_t sdctl = 0; + uint8_t strm = 0; int i; assert(!st->run); @@ -470,6 +476,13 @@ bdle_desc->ioc = bdle->ioc; } + sdctl = hda_get_reg_by_offset(sc, off + HDAC_SDCTL0); + strm = (sdctl >> 20) & 0x0f; + + DPRINTF("strm: 0x%x\n", strm); + + sc->stream_map[strm] = stream_ind; + return 0; } @@ -715,7 +728,9 @@ uint32_t value = hda_get_reg_by_offset(sc, offset); int err; - DPRINTF("stream_ind: 0x%x old: 0x%x\n", stream_ind, old); + DPRINTF("stream_ind: 0x%x old: 0x%x value: 0x%x\n", stream_ind, old, value); + + hda_set_field_by_offset(sc, offset, 0x00ffff00, old); if (value & HDAC_SDCTL_SRST) { hda_reset_stream(sc, stream_ind); @@ -729,6 +744,16 @@ return; } +static void +hda_set_sdctl2(struct hda_softc *sc, uint32_t offset, uint32_t old) +{ + uint32_t value = hda_get_reg_by_offset(sc, offset); + + hda_set_field_by_offset(sc, offset - 2, 0x00ff0000, value << 16); + + return; +} + static int hda_signal_state_change(struct hda_codec_inst *hci) { From owner-svn-soc-all@freebsd.org Sat Jun 18 17:09:07 2016 Return-Path: <owner-svn-soc-all@freebsd.org> Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A15F1A789A3 for <svn-soc-all@mailman.ysv.freebsd.org>; Sat, 18 Jun 2016 17:09:07 +0000 (UTC) (envelope-from iateaca@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 820011E41 for <svn-soc-all@FreeBSD.org>; Sat, 18 Jun 2016 17:09:07 +0000 (UTC) (envelope-from iateaca@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5IH971Q041176 for <svn-soc-all@FreeBSD.org>; Sat, 18 Jun 2016 17:09:07 GMT (envelope-from iateaca@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5IH96XD041173 for svn-soc-all@FreeBSD.org; Sat, 18 Jun 2016 17:09:06 GMT (envelope-from iateaca@FreeBSD.org) Date: Sat, 18 Jun 2016 17:09:06 GMT Message-Id: <201606181709.u5IH96XD041173@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to iateaca@FreeBSD.org using -f From: iateaca@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305336 - soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository <svn-soc-all.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-soc-all/> List-Post: <mailto:svn-soc-all@freebsd.org> List-Help: <mailto:svn-soc-all-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-soc-all>, <mailto:svn-soc-all-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sat, 18 Jun 2016 17:09:07 -0000 Author: iateaca Date: Sat Jun 18 17:09:06 2016 New Revision: 305336 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305336 Log: get the dir of the stream from the SDCTL register M bhyve/pci_hda.c Modified: soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Modified: soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c ============================================================================== --- soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Sat Jun 18 16:54:42 2016 (r305335) +++ soc2016/iateaca/bhyve-hda-head/usr.sbin/bhyve/pci_hda.c Sat Jun 18 17:09:06 2016 (r305336) @@ -435,6 +435,7 @@ uint32_t off = hda_get_offset_stream(stream_ind); uint32_t sdctl = 0; uint8_t strm = 0; + uint8_t dir = 0; int i; assert(!st->run); @@ -478,10 +479,12 @@ sdctl = hda_get_reg_by_offset(sc, off + HDAC_SDCTL0); strm = (sdctl >> 20) & 0x0f; + dir = (sdctl >> 19) & 0x01; - DPRINTF("strm: 0x%x\n", strm); + DPRINTF("strm: 0x%x, dir: 0x%x\n", strm, dir); sc->stream_map[strm] = stream_ind; + st->dir = dir; return 0; }