PERFORCE change 118290 for review

Scott Long scottl at FreeBSD.org
Tue Apr 17 06:03:06 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=118290

Change 118290 by scottl at scottl-wv1u on 2007/04/17 06:02:55

	IFC

Affected files ...

.. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#58 integrate
.. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_sg.c#8 integrate
.. //depot/projects/scottl-camlock/src/sys/conf/NOTES#22 integrate
.. //depot/projects/scottl-camlock/src/sys/conf/files#21 integrate
.. //depot/projects/scottl-camlock/src/sys/dev/iicbus/icee.c#2 integrate
.. //depot/projects/scottl-camlock/src/sys/kern/subr_rman.c#13 integrate
.. //depot/projects/scottl-camlock/src/sys/modules/Makefile#21 integrate
.. //depot/projects/scottl-camlock/src/sys/modules/if_lagg/Makefile#1 branch
.. //depot/projects/scottl-camlock/src/sys/modules/if_trunk/Makefile#2 delete
.. //depot/projects/scottl-camlock/src/sys/net/ieee8023ad_lacp.c#2 integrate
.. //depot/projects/scottl-camlock/src/sys/net/ieee8023ad_lacp.h#2 integrate
.. //depot/projects/scottl-camlock/src/sys/net/if.c#17 integrate
.. //depot/projects/scottl-camlock/src/sys/net/if_ethersubr.c#14 integrate
.. //depot/projects/scottl-camlock/src/sys/net/if_lagg.c#1 branch
.. //depot/projects/scottl-camlock/src/sys/net/if_lagg.h#1 branch
.. //depot/projects/scottl-camlock/src/sys/net/if_trunk.c#3 delete
.. //depot/projects/scottl-camlock/src/sys/net/if_trunk.h#2 delete
.. //depot/projects/scottl-camlock/src/sys/net/if_var.h#11 integrate
.. //depot/projects/scottl-camlock/src/sys/sys/priv.h#5 integrate

Differences ...

==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#58 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.176 2007/04/15 08:49:09 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.177 2007/04/16 19:55:36 scottl Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -74,7 +74,8 @@
 /* Object for defering XPT actions to a taskqueue */
 struct xpt_task {
 	struct task	task;
-	void		*data;
+	void		*data1;
+	uintptr_t	data2;
 };
 
 /*
@@ -2952,62 +2953,13 @@
 static void
 xpt_action_sasync_cb(void *context, int pending)
 {
-	union ccb *start_ccb;
+	struct async_node *cur_entry;
 	struct xpt_task *task;
-	struct ccb_setasync *csa;
-	struct async_node *cur_entry;
-	struct async_list *async_head;
-	u_int32_t added;
-	int s;
+	uint32_t added;
 
 	task = (struct xpt_task *)context;
-	start_ccb = (union ccb *)task->data;
-	csa = &start_ccb->csa;
-	added = csa->event_enable;
-	async_head = &csa->ccb_h.path->device->asyncs;
-
-	/*
-	 * If there is already an entry for us, simply
-	 * update it.
-	 */
-	s = splcam();
-	mtx_lock(csa->ccb_h.path->bus->sim->mtx);
-	cur_entry = SLIST_FIRST(async_head);
-	while (cur_entry != NULL) {
-		if ((cur_entry->callback_arg == csa->callback_arg)
-		 && (cur_entry->callback == csa->callback))
-			break;
-		cur_entry = SLIST_NEXT(cur_entry, links);
-	}
-
-	if (cur_entry != NULL) {
-	 	/*
-		 * If the request has no flags set,
-		 * remove the entry.
-		 */
-		added &= ~cur_entry->event_enable;
-		if (csa->event_enable == 0) {
-			SLIST_REMOVE(async_head, cur_entry,
-				     async_node, links);
-			csa->ccb_h.path->device->refcount--;
-			free(cur_entry, M_CAMXPT);
-		} else {
-			cur_entry->event_enable = csa->event_enable;
-		}
-	} else {
-		cur_entry = malloc(sizeof(*cur_entry), M_CAMXPT,
-				   M_NOWAIT);
-		if (cur_entry == NULL) {
-			splx(s);
-			goto out;
-		}
-		cur_entry->event_enable = csa->event_enable;
-		cur_entry->callback_arg = csa->callback_arg;
-		cur_entry->callback = csa->callback;
-		SLIST_INSERT_HEAD(async_head, cur_entry, links);
-		csa->ccb_h.path->device->refcount++;
-	}
-	mtx_unlock(csa->ccb_h.path->bus->sim->mtx);
+	cur_entry = (struct async_node *)task->data1;
+	added = task->data2;
 
 	if ((added & AC_FOUND_DEVICE) != 0) {
 		/*
@@ -3023,11 +2975,7 @@
 		 */
 		xpt_for_all_busses(xptsetasyncbusfunc, cur_entry);
 		}
-	splx(s);
 
-out:
-	xpt_free_path(start_ccb->ccb_h.path);
-	xpt_free_ccb(start_ccb);
 	free(task, M_CAMXPT);
 }
 
@@ -3433,42 +3381,75 @@
 	}
 	case XPT_SASYNC_CB:
 	{
-		union ccb *task_ccb;
-		struct xpt_task *task;
+		struct ccb_setasync *csa;
+		struct async_node *cur_entry;
+		struct async_list *async_head;
+		u_int32_t added;
+
+		csa = &start_ccb->csa;
+		added = csa->event_enable;
+		async_head = &csa->ccb_h.path->device->asyncs;
 
 		/*
-		 * Need to decouple this operation via a taqskqueue so that
-		 * the locking doesn't become a mess.  Clone the ccb so that
-		 * we own the memory and can free it later.
+		 * If there is already an entry for us, simply
+		 * update it.
 		 */
-		task_ccb = malloc(sizeof(union ccb), M_CAMXPT, M_NOWAIT);
-		if (task_ccb == NULL) {
-			start_ccb->ccb_h.status = CAM_RESRC_UNAVAIL;
-			break;
+		cur_entry = SLIST_FIRST(async_head);
+		while (cur_entry != NULL) {
+			if ((cur_entry->callback_arg == csa->callback_arg)
+			 && (cur_entry->callback == csa->callback))
+				break;
+			cur_entry = SLIST_NEXT(cur_entry, links);
 		}
-		bcopy(start_ccb, task_ccb, sizeof(union ccb));
-		if (xpt_create_path(&task_ccb->ccb_h.path, NULL,
-				    start_ccb->ccb_h.path_id,
-				    start_ccb->ccb_h.target_id,
-				    start_ccb->ccb_h.target_lun) !=
-				    CAM_REQ_CMP) {
-			start_ccb->ccb_h.status = CAM_RESRC_UNAVAIL;
-			xpt_free_ccb(task_ccb);
-			break;
+
+		if (cur_entry != NULL) {
+		 	/*
+			 * If the request has no flags set,
+			 * remove the entry.
+			 */
+			added &= ~cur_entry->event_enable;
+			if (csa->event_enable == 0) {
+				SLIST_REMOVE(async_head, cur_entry,
+					     async_node, links);
+				csa->ccb_h.path->device->refcount--;
+				free(cur_entry, M_CAMXPT);
+			} else {
+				cur_entry->event_enable = csa->event_enable;
+			}
+		} else {
+			cur_entry = malloc(sizeof(*cur_entry), M_CAMXPT,
+					   M_NOWAIT);
+			if (cur_entry == NULL) {
+				csa->ccb_h.status = CAM_RESRC_UNAVAIL;
+				break;
+			}
+			cur_entry->event_enable = csa->event_enable;
+			cur_entry->callback_arg = csa->callback_arg;
+			cur_entry->callback = csa->callback;
+			SLIST_INSERT_HEAD(async_head, cur_entry, links);
+			csa->ccb_h.path->device->refcount++;
 		}
 
-		task = malloc(sizeof(struct xpt_task), M_CAMXPT, M_NOWAIT);
-		if (task == NULL) {
-			start_ccb->ccb_h.status = CAM_RESRC_UNAVAIL;
-			xpt_free_path(task_ccb->ccb_h.path);
-			xpt_free_ccb(task_ccb);
-			break;
+		/*
+		 * Need to decouple this operation via a taqskqueue so that
+		 * the locking doesn't become a mess.
+		 */
+		if ((added & (AC_FOUND_DEVICE | AC_PATH_REGISTERED)) != 0) {
+			struct xpt_task *task;
+
+			task = malloc(sizeof(struct xpt_task), M_CAMXPT,
+				      M_NOWAIT);
+			if (task == NULL) {
+				csa->ccb_h.status = CAM_RESRC_UNAVAIL;
+				break;
+			}
+
+			TASK_INIT(&task->task, 0, xpt_action_sasync_cb, task);
+			task->data1 = cur_entry;
+			task->data2 = added;
+			taskqueue_enqueue(taskqueue_thread, &task->task);
 		}
 
-		TASK_INIT(&task->task, 0, xpt_action_sasync_cb, task);
-		task->data = task_ccb;
-		taskqueue_enqueue(taskqueue_thread, &task->task);
-
 		start_ccb->ccb_h.status = CAM_REQ_CMP;
 		break;
 	}

==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_sg.c#8 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sg.c,v 1.6 2007/04/16 19:40:13 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sg.c,v 1.7 2007/04/17 01:12:35 scottl Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -103,7 +103,6 @@
 	struct devstat		*device_stats;
 	TAILQ_HEAD(, sg_rdwr)	rdwr_done;
 	struct cdev		*dev;
-	struct cdev		*devalias;
 	int			sg_timeout;
 	int			sg_user_timeout;
 	uint8_t			pd_type;
@@ -223,7 +222,6 @@
 
 	softc = (struct sg_softc *)periph->softc;
 	devstat_remove_entry(softc->device_stats);
-	destroy_dev(softc->devalias);
 	destroy_dev(softc->dev);
 	if (bootverbose) {
 		xpt_print(periph->path, "removing device entry\n");
@@ -323,8 +321,7 @@
 	softc->dev = make_dev(&sg_cdevsw, unit2minor(periph->unit_number),
 			      UID_ROOT, GID_OPERATOR, 0600, "%s%d",
 			      periph->periph_name, periph->unit_number);
-	softc->devalias = make_dev_alias(softc->dev, "sg%c",
-					 'a' + periph->unit_number);
+	(void)make_dev_alias(softc->dev, "sg%c", 'a' + periph->unit_number);
 	cam_periph_lock(periph);
 	softc->dev->si_drv1 = periph;
 

==== //depot/projects/scottl-camlock/src/sys/conf/NOTES#22 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1421 2007/04/10 03:09:38 thompsa Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1422 2007/04/17 00:35:10 thompsa Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -813,7 +813,7 @@
 options 	PPP_BSDCOMP		#PPP BSD-compress support
 options 	PPP_DEFLATE		#PPP zlib/deflate/gzip support
 options 	PPP_FILTER		#enable bpf filtering (needs bpf)
-device		trunk			#Trunk aggregation interface
+device		lagg			#Link aggregation interface
 
 device		ef			# Multiple ethernet frames support
 options 	ETHER_II		# enable Ethernet_II frame

==== //depot/projects/scottl-camlock/src/sys/conf/files#21 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1195 2007/04/10 00:35:31 thompsa Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1196 2007/04/17 00:35:10 thompsa Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1527,7 +1527,7 @@
 net/bpf_filter.c		optional bpf | netgraph_bpf
 net/bridgestp.c			optional if_bridge
 net/bsd_comp.c			optional ppp_bsdcomp
-net/ieee8023ad_lacp.c		optional trunk
+net/ieee8023ad_lacp.c		optional lagg
 net/if.c			standard
 net/if_arcsubr.c		optional arcnet
 net/if_atmsubr.c		optional atm
@@ -1544,6 +1544,7 @@
 net/if_gif.c			optional gif
 net/if_gre.c			optional gre
 net/if_iso88025subr.c		optional token
+net/if_lagg.c			optional lagg
 net/if_loop.c			optional loop
 net/if_media.c			standard
 net/if_mib.c			standard
@@ -1554,7 +1555,6 @@
 net/if_stf.c			optional stf
 net/if_tun.c			optional tun
 net/if_tap.c			optional tap
-net/if_trunk.c			optional trunk
 net/if_vlan.c			optional vlan
 net/netisr.c			standard
 net/ppp_deflate.c		optional ppp_deflate

==== //depot/projects/scottl-camlock/src/sys/dev/iicbus/icee.c#2 (text+ko) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/iicbus/icee.c,v 1.1 2007/03/23 23:10:35 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/iicbus/icee.c,v 1.2 2007/04/17 05:48:35 imp Exp $");
 /*
  * Generic IIC eeprom support, modeled after the AT24C family of products.
  */
@@ -59,10 +59,10 @@
 	int		wr_sz;		/* What's the write page size */
 };
 
-#define ICEE_LOCK(_sc)		mtx_lock_spin(&(_sc)->sc_mtx)
-#define	ICEE_UNLOCK(_sc)	mtx_unlock_spin(&(_sc)->sc_mtx)
+#define ICEE_LOCK(_sc)		mtx_lock(&(_sc)->sc_mtx)
+#define	ICEE_UNLOCK(_sc)	mtx_unlock(&(_sc)->sc_mtx)
 #define ICEE_LOCK_INIT(_sc) \
-	mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), "icee", MTX_SPIN)
+	mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), "icee", MTX_DEF)
 #define ICEE_LOCK_DESTROY(_sc)	mtx_destroy(&_sc->sc_mtx);
 #define ICEE_ASSERT_LOCKED(_sc)	mtx_assert(&_sc->sc_mtx, MA_OWNED);
 #define ICEE_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED);

==== //depot/projects/scottl-camlock/src/sys/kern/subr_rman.c#13 (text+ko) ====

@@ -55,8 +55,10 @@
  * permitted.
  */
 
+#include "opt_ddb.h"
+
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/subr_rman.c,v 1.55 2007/02/23 22:53:56 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/subr_rman.c,v 1.56 2007/04/16 21:09:03 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -70,6 +72,10 @@
 #include <sys/rman.h>
 #include <sys/sysctl.h>
 
+#ifdef DDB
+#include <ddb/ddb.h>
+#endif
+
 /*
  * We use a linked list rather than a bitmap because we need to be able to
  * represent potentially huge objects (like all of a processor's physical
@@ -911,3 +917,47 @@
 
 SYSCTL_NODE(_hw_bus, OID_AUTO, rman, CTLFLAG_RD, sysctl_rman,
     "kernel resource manager");
+
+#ifdef DDB
+static void
+dump_rman(struct rman *rm)
+{
+	struct resource_i *r;
+	const char *devname;
+
+	if (db_pager_quit)
+		return;
+	db_printf("rman: %s\n", rm->rm_descr);
+	db_printf("    0x%lx-0x%lx (full range)\n", rm->rm_start, rm->rm_end);
+	TAILQ_FOREACH(r, &rm->rm_list, r_link) {
+		if (r->r_dev != NULL) {
+			devname = device_get_nameunit(r->r_dev);
+			if (devname == NULL)
+				devname = "nomatch";
+		} else
+			devname = NULL;
+		db_printf("    0x%lx-0x%lx ", r->r_start, r->r_end);
+		if (devname != NULL)
+			db_printf("(%s)\n", devname);
+		else
+			db_printf("----\n");
+		if (db_pager_quit)
+			return;
+	}
+}
+
+DB_SHOW_COMMAND(rman, db_show_rman)
+{
+
+	if (have_addr)
+		dump_rman((struct rman *)addr);
+}
+
+DB_SHOW_COMMAND(allrman, db_show_all_rman)
+{
+	struct rman *rm;
+
+	TAILQ_FOREACH(rm, &rman_head, rm_link)
+		dump_rman(rm);
+}
+#endif

==== //depot/projects/scottl-camlock/src/sys/modules/Makefile#21 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/modules/Makefile,v 1.527 2007/04/10 00:41:31 thompsa Exp $
+# $FreeBSD: src/sys/modules/Makefile,v 1.528 2007/04/17 00:35:10 thompsa Exp $
 
 .include <bsd.own.mk>
 
@@ -108,12 +108,12 @@
 	if_faith \
 	if_gif \
 	if_gre \
+	if_lagg \
 	${_if_ndis} \
 	if_ppp \
 	if_sl \
 	if_stf \
 	if_tap \
-	if_trunk \
 	if_tun \
 	if_vlan \
 	${_iir} \

==== //depot/projects/scottl-camlock/src/sys/net/ieee8023ad_lacp.c#2 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/net/ieee8023ad_lacp.c,v 1.1 2007/04/10 00:27:25 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/net/ieee8023ad_lacp.c,v 1.2 2007/04/17 00:35:11 thompsa Exp $");
 
 #include <sys/param.h>
 #include <sys/callout.h>
@@ -45,7 +45,7 @@
 #include <net/if_media.h>
 #include <net/if_types.h>
 
-#include <net/if_trunk.h>
+#include <net/if_lagg.h>
 #include <net/ieee8023ad_lacp.h>
 
 /*
@@ -206,13 +206,13 @@
  * lacp_input: process lacpdu
  */
 int
-lacp_input(struct trunk_port *tp, struct mbuf *m)
+lacp_input(struct lagg_port *lgp, struct mbuf *m)
 {
-	struct lacp_port *lp = LACP_PORT(tp);
+	struct lacp_port *lp = LACP_PORT(lgp);
 	struct lacpdu *du;
 	int error = 0;
 
-	TRUNK_LOCK_ASSERT(tp->tp_trunk);
+	LAGG_LOCK_ASSERT(lgp->lp_lagg);
 
 	if (__predict_false(lp->lp_flags & LACP_PORT_DETACHING)) {
 		goto bad;
@@ -284,12 +284,12 @@
 static void
 lacp_fill_actorinfo(struct lacp_port *lp, struct lacp_peerinfo *info)
 {
-	struct trunk_port *tp = lp->lp_trunk;
-	struct trunk_softc *tr = tp->tp_trunk;
+	struct lagg_port *lgp = lp->lp_lagg;
+	struct lagg_softc *lgs = lgp->lp_lagg;
 
 	info->lip_systemid.lsi_prio = htons(LACP_SYSTEM_PRIO);
 	memcpy(&info->lip_systemid.lsi_mac,
-	    IF_LLADDR(tr->tr_ifp), ETHER_ADDR_LEN);
+	    IF_LLADDR(lgs->sc_ifp), ETHER_ADDR_LEN);
 	info->lip_portid.lpi_prio = htons(LACP_PORT_PRIO);
 	info->lip_portid.lpi_portno = htons(lp->lp_ifp->if_index);
 	info->lip_state = lp->lp_state;
@@ -298,12 +298,12 @@
 static int
 lacp_xmit_lacpdu(struct lacp_port *lp)
 {
-	struct trunk_port *tp = lp->lp_trunk;
+	struct lagg_port *lgp = lp->lp_lagg;
 	struct mbuf *m;
 	struct lacpdu *du;
 	int error;
 
-	TRUNK_LOCK_ASSERT(tp->tp_trunk);
+	LAGG_LOCK_ASSERT(lgp->lp_lagg);
 
 	m = m_gethdr(M_DONTWAIT, MT_DATA);
 	if (m == NULL) {
@@ -316,7 +316,7 @@
 
 	memcpy(&du->ldu_eh.ether_dhost, ethermulticastaddr_slowprotocols,
 	    ETHER_ADDR_LEN);
-	memcpy(&du->ldu_eh.ether_shost, tp->tp_lladdr, ETHER_ADDR_LEN);
+	memcpy(&du->ldu_eh.ether_shost, lgp->lp_lladdr, ETHER_ADDR_LEN);
 	du->ldu_eh.ether_type = htons(ETHERTYPE_SLOW);
 
 	du->ldu_sph.sph_subtype = SLOWPROTOCOLS_SUBTYPE_LACP;
@@ -345,22 +345,22 @@
 	 * otherwise network congestion can break aggregation.
 	 */
 
-	error = trunk_enqueue(lp->lp_ifp, m);
+	error = lagg_enqueue(lp->lp_ifp, m);
 	return (error);
 }
 
 void
-lacp_linkstate(struct trunk_port *tp)
+lacp_linkstate(struct lagg_port *lgp)
 {
-	struct lacp_port *lp = LACP_PORT(tp);
-	struct ifnet *ifp = tp->tp_ifp;
+	struct lacp_port *lp = LACP_PORT(lgp);
+	struct ifnet *ifp = lgp->lp_ifp;
 	struct ifmediareq ifmr;
 	int error = 0;
 	u_int media;
 	uint8_t old_state;
 	uint16_t old_key;
 
-	TRUNK_LOCK_ASSERT(tp->tp_trunk);
+	LAGG_LOCK_ASSERT(lgp->lp_lagg);
 
 	bzero((char *)&ifmr, sizeof(ifmr));
 	error = (*ifp->if_ioctl)(ifp, SIOCGIFMEDIA, (caddr_t)&ifmr);
@@ -407,12 +407,12 @@
 }
 
 int
-lacp_port_create(struct trunk_port *tp)
+lacp_port_create(struct lagg_port *lgp)
 {
-	struct trunk_softc *tr = tp->tp_trunk;
-	struct lacp_softc *lsc = LACP_SOFTC(tr);
+	struct lagg_softc *lgs = lgp->lp_lagg;
+	struct lacp_softc *lsc = LACP_SOFTC(lgs);
 	struct lacp_port *lp;
-	struct ifnet *ifp = tp->tp_ifp;
+	struct ifnet *ifp = lgp->lp_ifp;
 	struct sockaddr_dl sdl;
 	struct ifmultiaddr *rifma = NULL;
 	int error;
@@ -420,7 +420,7 @@
 	boolean_t active = TRUE; /* XXX should be configurable */
 	boolean_t fast = FALSE; /* XXX should be configurable */
 
-	TRUNK_LOCK_ASSERT(tr);
+	LAGG_LOCK_ASSERT(lgs);
 
 	bzero((char *)&sdl, sizeof(sdl));
 	sdl.sdl_len = sizeof(sdl);
@@ -433,7 +433,7 @@
 	    LLADDR(&sdl), ETHER_ADDR_LEN);
 	error = if_addmulti(ifp, (struct sockaddr *)&sdl, &rifma);
 	if (error) {
-		printf("%s: ADDMULTI failed on %s\n", __func__, tp->tp_ifname);
+		printf("%s: ADDMULTI failed on %s\n", __func__, lgp->lp_ifname);
 		return (error);
 	}
 
@@ -442,9 +442,9 @@
 	if (lp == NULL)
 		return (ENOMEM);
 
-	tp->tp_psc = (caddr_t)lp;
+	lgp->lp_psc = (caddr_t)lp;
 	lp->lp_ifp = ifp;
-	lp->lp_trunk = tp;
+	lp->lp_lagg = lgp;
 	lp->lp_lsc = lsc;
 
 	LIST_INSERT_HEAD(&lsc->lsc_ports, lp, lp_next);
@@ -454,21 +454,21 @@
 	    (active ? LACP_STATE_ACTIVITY : 0) |
 	    (fast ? LACP_STATE_TIMEOUT : 0);
 	lp->lp_aggregator = NULL;
-	lacp_linkstate(tp);
+	lacp_linkstate(lgp);
 	lacp_sm_rx_set_expired(lp);
 
 	return (0);
 }
 
 void
-lacp_port_destroy(struct trunk_port *tp)
+lacp_port_destroy(struct lagg_port *lgp)
 {
-	struct lacp_port *lp = LACP_PORT(tp);
-	struct ifnet *ifp = tp->tp_ifp;
+	struct lacp_port *lp = LACP_PORT(lgp);
+	struct ifnet *ifp = lgp->lp_ifp;
 	struct sockaddr_dl sdl;
 	int i, error;
 
-	TRUNK_LOCK_ASSERT(tp->tp_trunk);
+	LAGG_LOCK_ASSERT(lgp->lp_lagg);
 
 	for (i = 0; i < LACP_NTIMER; i++) {
 		LACP_TIMER_DISARM(lp, i);
@@ -489,16 +489,16 @@
 	    LLADDR(&sdl), ETHER_ADDR_LEN);
 	error = if_delmulti(ifp, (struct sockaddr *)&sdl);
 	if (error)
-		printf("%s: DELMULTI failed on %s\n", __func__, tp->tp_ifname);
+		printf("%s: DELMULTI failed on %s\n", __func__, lgp->lp_ifname);
 
 	LIST_REMOVE(lp, lp_next);
 	free(lp, M_DEVBUF);
 }
 
 int
-lacp_port_isactive(struct trunk_port *tp)
+lacp_port_isactive(struct lagg_port *lgp)
 {
-	struct lacp_port *lp = LACP_PORT(tp);
+	struct lacp_port *lp = LACP_PORT(lgp);
 	struct lacp_softc *lsc = lp->lp_lsc;
 	struct lacp_aggregator *la = lp->lp_aggregator;
 
@@ -512,23 +512,23 @@
 static void
 lacp_disable_collecting(struct lacp_port *lp)
 {
-	struct trunk_port *tp = lp->lp_trunk;
+	struct lagg_port *lgp = lp->lp_lagg;
 
 	LACP_DPRINTF((lp, "collecting disabled\n"));
 
 	lp->lp_state &= ~LACP_STATE_COLLECTING;
-	tp->tp_flags &= ~TRUNK_PORT_COLLECTING;
+	lgp->lp_flags &= ~LAGG_PORT_COLLECTING;
 }
 
 static void
 lacp_enable_collecting(struct lacp_port *lp)
 {
-	struct trunk_port *tp = lp->lp_trunk;
+	struct lagg_port *lgp = lp->lp_lagg;
 
 	LACP_DPRINTF((lp, "collecting enabled\n"));
 
 	lp->lp_state |= LACP_STATE_COLLECTING;
-	tp->tp_flags |= TRUNK_PORT_COLLECTING;
+	lgp->lp_flags |= LAGG_PORT_COLLECTING;
 }
 
 static void
@@ -536,12 +536,12 @@
 {
 	struct lacp_aggregator *la = lp->lp_aggregator;
 	struct lacp_softc *lsc = lp->lp_lsc;
-	struct trunk_port *tp = lp->lp_trunk;
+	struct lagg_port *lgp = lp->lp_lagg;
 #if defined(LACP_DEBUG)
 	char buf[LACP_LAGIDSTR_MAX+1];
 #endif /* defined(LACP_DEBUG) */
 
-	TRUNK_LOCK_ASSERT(tp->tp_trunk);
+	LAGG_LOCK_ASSERT(lgp->lp_lagg);
 
 	if (la == NULL || (lp->lp_state & LACP_STATE_DISTRIBUTING) == 0) {
 		return;
@@ -562,7 +562,7 @@
 	lacp_suppress_distributing(lsc, la);
 
 	lp->lp_state &= ~LACP_STATE_DISTRIBUTING;
-	tp->tp_flags &= ~TRUNK_PORT_DISTRIBUTING;
+	lgp->lp_flags &= ~LAGG_PORT_DISTRIBUTING;
 
 	if (lsc->lsc_active_aggregator == la) {
 		lacp_select_active_aggregator(lsc);
@@ -574,12 +574,12 @@
 {
 	struct lacp_aggregator *la = lp->lp_aggregator;
 	struct lacp_softc *lsc = lp->lp_lsc;
-	struct trunk_port *tp = lp->lp_trunk;
+	struct lagg_port *lgp = lp->lp_lagg;
 #if defined(LACP_DEBUG)
 	char buf[LACP_LAGIDSTR_MAX+1];
 #endif /* defined(LACP_DEBUG) */
 
-	TRUNK_LOCK_ASSERT(tp->tp_trunk);
+	LAGG_LOCK_ASSERT(lgp->lp_lagg);
 
 	if ((lp->lp_state & LACP_STATE_DISTRIBUTING) != 0) {
 		return;
@@ -597,7 +597,7 @@
 	lacp_suppress_distributing(lsc, la);
 
 	lp->lp_state |= LACP_STATE_DISTRIBUTING;
-	tp->tp_flags |= TRUNK_PORT_DISTRIBUTING;
+	lgp->lp_flags |= LAGG_PORT_DISTRIBUTING;
 
 	if (lsc->lsc_active_aggregator != la) {
 		lacp_select_active_aggregator(lsc);
@@ -614,46 +614,46 @@
 }
 
 int
-lacp_attach(struct trunk_softc *tr)
+lacp_attach(struct lagg_softc *lgs)
 {
 	struct lacp_softc *lsc;
 
-	TRUNK_LOCK_ASSERT(tr);
+	LAGG_LOCK_ASSERT(lgs);
 
 	lsc = malloc(sizeof(struct lacp_softc),
 	    M_DEVBUF, M_NOWAIT|M_ZERO);
 	if (lsc == NULL)
 		return (ENOMEM);
 
-	tr->tr_psc = (caddr_t)lsc;
-	lsc->lsc_trunk = tr;
+	lgs->sc_psc = (caddr_t)lsc;
+	lsc->lsc_lagg = lgs;
 
 	lsc->lsc_hashkey = arc4random();
 	lsc->lsc_active_aggregator = NULL;
 	TAILQ_INIT(&lsc->lsc_aggregators);
 	LIST_INIT(&lsc->lsc_ports);
 
-	callout_init_mtx(&lsc->lsc_transit_callout, &tr->tr_mtx, 0);
-	callout_init_mtx(&lsc->lsc_callout, &tr->tr_mtx, 0);
+	callout_init_mtx(&lsc->lsc_transit_callout, &lgs->sc_mtx, 0);
+	callout_init_mtx(&lsc->lsc_callout, &lgs->sc_mtx, 0);
 
-	/* if the trunk is already up then do the same */
-	if (tr->tr_ifp->if_drv_flags & IFF_DRV_RUNNING)
-		lacp_init(tr);
+	/* if the lagg is already up then do the same */
+	if (lgs->sc_ifp->if_drv_flags & IFF_DRV_RUNNING)
+		lacp_init(lgs);
 
 	return (0);
 }
 
 int
-lacp_detach(struct trunk_softc *tr)
+lacp_detach(struct lagg_softc *lgs)
 {
-	struct lacp_softc *lsc = LACP_SOFTC(tr);
+	struct lacp_softc *lsc = LACP_SOFTC(lgs);
 
 	KASSERT(TAILQ_EMPTY(&lsc->lsc_aggregators),
 	    ("aggregators still active"));
 	KASSERT(lsc->lsc_active_aggregator == NULL,
 	    ("aggregator still attached"));
 
-	tr->tr_psc = NULL;
+	lgs->sc_psc = NULL;
 	callout_drain(&lsc->lsc_transit_callout);
 	callout_drain(&lsc->lsc_callout);
 
@@ -662,32 +662,32 @@
 }
 
 void
-lacp_init(struct trunk_softc *tr)
+lacp_init(struct lagg_softc *lgs)
 {
-	struct lacp_softc *lsc = LACP_SOFTC(tr);
+	struct lacp_softc *lsc = LACP_SOFTC(lgs);
 
 	callout_reset(&lsc->lsc_callout, hz, lacp_tick, lsc);
 }
 
 void
-lacp_stop(struct trunk_softc *tr)
+lacp_stop(struct lagg_softc *lgs)
 {
-	struct lacp_softc *lsc = LACP_SOFTC(tr);
+	struct lacp_softc *lsc = LACP_SOFTC(lgs);
 
 	callout_stop(&lsc->lsc_transit_callout);
 	callout_stop(&lsc->lsc_callout);
 }
 
-struct trunk_port *
-lacp_select_tx_port(struct trunk_softc *tr, struct mbuf *m)
+struct lagg_port *
+lacp_select_tx_port(struct lagg_softc *lgs, struct mbuf *m)
 {
-	struct lacp_softc *lsc = LACP_SOFTC(tr);
+	struct lacp_softc *lsc = LACP_SOFTC(lgs);
 	struct lacp_aggregator *la;
 	struct lacp_port *lp;
 	uint32_t hash;
 	int nports;
 
-	TRUNK_LOCK_ASSERT(tr);
+	LAGG_LOCK_ASSERT(lgs);
 
 	if (__predict_false(lsc->lsc_suppress_distributing)) {
 		LACP_DPRINTF((NULL, "%s: waiting transit\n", __func__));
@@ -703,7 +703,7 @@
 	nports = la->la_nports;
 	KASSERT(nports > 0, ("no ports available"));
 
-	hash = trunk_hashmbuf(m, lsc->lsc_hashkey);
+	hash = lagg_hashmbuf(m, lsc->lsc_hashkey);
 	hash %= nports;
 	lp = TAILQ_FIRST(&la->la_ports);
 	while (hash--) {
@@ -713,7 +713,7 @@
 	KASSERT((lp->lp_state & LACP_STATE_DISTRIBUTING) != 0,
 	    ("aggregated port is not distributing"));
 
-	return (lp->lp_trunk);
+	return (lp->lp_lagg);
 }
 /*
  * lacp_suppress_distributing: drop transmit packets for a while
@@ -780,7 +780,7 @@
 
 /*
  * lacp_select_active_aggregator: select an aggregator to be used to transmit
- * packets from trunk(4) interface.
+ * packets from lagg(4) interface.
  */
 
 static void
@@ -843,8 +843,8 @@
 static uint16_t
 lacp_compose_key(struct lacp_port *lp)
 {
-	struct trunk_port *tp = lp->lp_trunk;
-	struct trunk_softc *tr = tp->tp_trunk;
+	struct lagg_port *lgp = lp->lp_lagg;
+	struct lagg_softc *lgs = lgp->lp_lagg;
 	u_int media = lp->lp_media;
 	uint16_t key;
 
@@ -869,8 +869,8 @@
 
 		/* bit 0..4:	IFM_SUBTYPE */
 		key = subtype;
-		/* bit 5..14:	(some bits of) if_index of trunk device */
-		key |= 0x7fe0 & ((tr->tr_ifp->if_index) << 5);
+		/* bit 5..14:	(some bits of) if_index of lagg device */
+		key |= 0x7fe0 & ((lgs->sc_ifp->if_index) << 5);
 		/* bit 15:	0 */
 	}
 	return (htons(key));
@@ -1529,13 +1529,13 @@
 }
 
 int
-lacp_marker_input(struct trunk_port *tp, struct mbuf *m)
+lacp_marker_input(struct lagg_port *lgp, struct mbuf *m)
 {
-	struct lacp_port *lp = LACP_PORT(tp);
+	struct lacp_port *lp = LACP_PORT(lgp);
 	struct markerdu *mdu;
 	int error = 0;
 
-	TRUNK_LOCK_ASSERT(tp->tp_trunk);
+	LAGG_LOCK_ASSERT(lgp->lp_lagg);
 
 	if (__predict_false(lp->lp_flags & LACP_PORT_DETACHING)) {
 		goto bad;
@@ -1582,8 +1582,8 @@
 		memcpy(&mdu->mdu_eh.ether_dhost,
 		    &ethermulticastaddr_slowprotocols, ETHER_ADDR_LEN);
 		memcpy(&mdu->mdu_eh.ether_shost,
-		    tp->tp_lladdr, ETHER_ADDR_LEN);
-		error = trunk_enqueue(lp->lp_ifp, m);
+		    lgp->lp_lladdr, ETHER_ADDR_LEN);
+		error = lagg_enqueue(lp->lp_ifp, m);
 		break;
 
 	case MARKER_TYPE_RESPONSE:

==== //depot/projects/scottl-camlock/src/sys/net/ieee8023ad_lacp.h#2 (text+ko) ====

@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/net/ieee8023ad_lacp.h,v 1.1 2007/04/10 00:27:25 thompsa Exp $
+ * $FreeBSD: src/sys/net/ieee8023ad_lacp.h,v 1.2 2007/04/17 00:35:11 thompsa Exp $
  */
 
 /*
@@ -177,7 +177,7 @@
 	TAILQ_ENTRY(lacp_port)	lp_dist_q;
 	LIST_ENTRY(lacp_port)	lp_next;
 	struct lacp_softc	*lp_lsc;
-	struct trunk_port	*lp_trunk;
+	struct lagg_port	*lp_lagg;
 	struct ifnet		*lp_ifp;
 	struct lacp_peerinfo	lp_partner;
 	struct lacp_peerinfo	lp_actor;
@@ -205,7 +205,7 @@
 };
 
 struct lacp_softc {
-	struct trunk_softc	*lsc_trunk;
+	struct lagg_softc	*lsc_lagg;
 	struct lacp_aggregator	*lsc_active_aggregator;
 	TAILQ_HEAD(, lacp_aggregator) lsc_aggregators;
 	boolean_t		lsc_suppress_distributing;
@@ -258,20 +258,20 @@
 #define	LACP_STATE_EQ(s1, s2, mask)	\
 	((((s1) ^ (s2)) & (mask)) == 0)
 
-#define	LACP_PORT(_tp)	((struct lacp_port *)(_tp)->tp_psc)
-#define	LACP_SOFTC(_tr)	((struct lacp_softc *)(_tr)->tr_psc)
+#define	LACP_PORT(_lp)	((struct lacp_port *)(_lp)->lp_psc)
+#define	LACP_SOFTC(_sc)	((struct lacp_softc *)(_sc)->sc_psc)
 
-int 		lacp_input(struct trunk_port *, struct mbuf *);
-int		lacp_marker_input(struct trunk_port *, struct mbuf *);
-struct trunk_port *lacp_select_tx_port(struct trunk_softc *, struct mbuf *);
-int		lacp_attach(struct trunk_softc *);
-int		lacp_detach(struct trunk_softc *);
-void		lacp_init(struct trunk_softc *);
-void		lacp_stop(struct trunk_softc *);
-int		lacp_port_create(struct trunk_port *);
-void		lacp_port_destroy(struct trunk_port *);
-void		lacp_linkstate(struct trunk_port *);
-int		lacp_port_isactive(struct trunk_port *);
+int 		lacp_input(struct lagg_port *, struct mbuf *);
+int		lacp_marker_input(struct lagg_port *, struct mbuf *);
+struct lagg_port *lacp_select_tx_port(struct lagg_softc *, struct mbuf *);
+int		lacp_attach(struct lagg_softc *);
+int		lacp_detach(struct lagg_softc *);
+void		lacp_init(struct lagg_softc *);
+void		lacp_stop(struct lagg_softc *);
+int		lacp_port_create(struct lagg_port *);
+void		lacp_port_destroy(struct lagg_port *);
+void		lacp_linkstate(struct lagg_port *);
+int		lacp_port_isactive(struct lagg_port *);
 
 /* following constants don't include terminating NUL */
 #define	LACP_MACSTR_MAX		(2*6 + 5)

==== //depot/projects/scottl-camlock/src/sys/net/if.c#17 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)if.c	8.5 (Berkeley) 1/9/95
- * $FreeBSD: src/sys/net/if.c,v 1.270 2007/04/10 00:27:25 thompsa Exp $
+ * $FreeBSD: src/sys/net/if.c,v 1.271 2007/04/17 00:35:11 thompsa Exp $
  */
 
 #include "opt_compat.h"
@@ -96,7 +96,7 @@
 
 void	(*bstp_linkstate_p)(struct ifnet *ifp, int state);
 void	(*ng_ether_link_state_p)(struct ifnet *ifp, int state);
-void	(*trunk_linkstate_p)(struct ifnet *ifp, int state);
+void	(*lagg_linkstate_p)(struct ifnet *ifp, int state);
 
 struct mbuf *(*tbr_dequeue_ptr)(struct ifaltq *, int) = NULL;
 
@@ -1379,9 +1379,9 @@
 		KASSERT(bstp_linkstate_p != NULL,("if_bridge bstp not loaded!"));
 		(*bstp_linkstate_p)(ifp, link_state);
 	}
-	if (ifp->if_trunk) {
-		KASSERT(trunk_linkstate_p != NULL,("if_trunk not loaded!"));
-		(*trunk_linkstate_p)(ifp, link_state);
+	if (ifp->if_lagg) {
+		KASSERT(lagg_linkstate_p != NULL,("if_lagg not loaded!"));
+		(*lagg_linkstate_p)(ifp, link_state);
 	}
 
 	devctl_notify("IFNET", ifp->if_xname,

==== //depot/projects/scottl-camlock/src/sys/net/if_ethersubr.c#14 (text+ko) ====

@@ -27,7 +27,7 @@

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list