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;
 }