svn commit: r203280 - user/luigi/ipfw3-head/sbin/ipfw

Luigi Rizzo luigi at FreeBSD.org
Sun Jan 31 12:21:21 UTC 2010


Author: luigi
Date: Sun Jan 31 12:21:20 2010
New Revision: 203280
URL: http://svn.freebsd.org/changeset/base/203280

Log:
  handle lmax and priority in a 'queue config'.
  use the correct size for children of a scheduler.

Modified:
  user/luigi/ipfw3-head/sbin/ipfw/dummynet.c
  user/luigi/ipfw3-head/sbin/ipfw/ipfw2.h

Modified: user/luigi/ipfw3-head/sbin/ipfw/dummynet.c
==============================================================================
--- user/luigi/ipfw3-head/sbin/ipfw/dummynet.c	Sun Jan 31 12:20:29 2010	(r203279)
+++ user/luigi/ipfw3-head/sbin/ipfw/dummynet.c	Sun Jan 31 12:21:20 2010	(r203280)
@@ -50,6 +50,8 @@ static struct _s_x dummynet_params[] = {
 	{ "src-port",		TOK_SRCPORT },
 	{ "proto",		TOK_PROTO },
 	{ "weight",		TOK_WEIGHT },
+	{ "lmax",		TOK_LMAX },
+	{ "maxlen",		TOK_LMAX },
 	{ "all",		TOK_ALL },
 	{ "mask",		TOK_MASK }, /* alias for both */
 	{ "sched_mask",		TOK_SCHED_MASK },
@@ -66,6 +68,7 @@ static struct _s_x dummynet_params[] = {
 	{ "flowset",		TOK_FLOWSET },
 	{ "sched",		TOK_SCHED },
 	{ "pri",		TOK_PRI },
+	{ "priority",		TOK_PRI },
 	{ "type",		TOK_TYPE },
 	{ "flow-id",		TOK_FLOWID},
 	{ "dst-ipv6",		TOK_DSTIP6},
@@ -242,9 +245,10 @@ print_flowset_parms(struct new_fs *fs, c
 		prefix, qs, plr, fs->oid.id, fs->buckets, red);
 	    prefix[0] = '\0';
 	} else {
-	    printf("q%05d %s%s %d flows (%d buckets) %s sched %d weight %d\n",
+	    printf("q%05d %s%s %d flows (%d buckets) %s sched %d "
+			"weight %d lmax %d pri %d\n",
 		fs->fs_nr, qs, plr, fs->oid.id, fs->buckets, red,
-		fs->sched_nr, fs->par[0]);
+		fs->sched_nr, fs->par[0], fs->par[1], fs->par[2]);
 	    if (fs->flags & DN_HAVE_MASK)
 		print_mask(&fs->flow_mask);
 	}
@@ -301,9 +305,9 @@ list_pipes(struct dn_id *oid, struct dn_
 		int i, l;
 		struct {
 			struct dn_id id;
-			uint16_t p[0];
+			uintptr_t p[0];
 		} *d = (void *)oid;
-		l = (oid->len - sizeof(*oid))/sizeof(uint16_t);
+		l = (oid->len - sizeof(*oid))/sizeof(d->p[0]);
 		if (l == 0)
 		    break;
 		printf("   Children flowsets: ");
@@ -1087,11 +1091,25 @@ end_mask:
 
 		case TOK_WEIGHT:
 			NEED(fs, "weight is only for flowsets");
-			NEED1("weight needs argument 0..100\n");
+			NEED1("weight needs argument\n");
 			fs->par[0] = strtol(av[0], &end, 0);
 			ac--; av++;
 			break;
 
+		case TOK_LMAX:
+			NEED(fs, "lmax is only for flowsets");
+			NEED1("lmax needs argument\n");
+			fs->par[1] = strtol(av[0], &end, 0);
+			ac--; av++;
+			break;
+
+		case TOK_PRI:
+			NEED(fs, "priority is only for flowsets");
+			NEED1("priority needs argument\n");
+			fs->par[2] = strtol(av[0], &end, 0);
+			ac--; av++;
+			break;
+
 		case TOK_SCHED:
 		case TOK_PIPE:
 			NEED(fs, "pipe/sched");

Modified: user/luigi/ipfw3-head/sbin/ipfw/ipfw2.h
==============================================================================
--- user/luigi/ipfw3-head/sbin/ipfw/ipfw2.h	Sun Jan 31 12:20:29 2010	(r203279)
+++ user/luigi/ipfw3-head/sbin/ipfw/ipfw2.h	Sun Jan 31 12:21:20 2010	(r203280)
@@ -166,6 +166,7 @@ enum tokens {
 	TOK_PROTO,
 	/* dummynet tokens */
 	TOK_WEIGHT,
+	TOK_LMAX,
 	TOK_PRI,
 	TOK_TYPE,
 	TOK_SLOTSIZE,


More information about the svn-src-user mailing list