PERFORCE change 122930 for review

Roman Divacky rdivacky at FreeBSD.org
Thu Jul 5 09:46:31 UTC 2007


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

Change 122930 by rdivacky at rdivacky_witten on 2007/07/05 09:45:40

	IFC

Affected files ...

.. //depot/projects/soc2007/rdivacky/linux_at/sys/Makefile#4 integrate
.. //depot/projects/soc2007/rdivacky/linux_at/sys/conf/kern.pre.mk#4 integrate
.. //depot/projects/soc2007/rdivacky/linux_at/sys/i4b/layer4/i4b_i4bdrv.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_at/sys/i4b/layer4/i4b_l4.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_at/sys/kern/Make.tags.inc#4 integrate
.. //depot/projects/soc2007/rdivacky/linux_at/sys/net/ieee8023ad_lacp.c#4 integrate
.. //depot/projects/soc2007/rdivacky/linux_at/sys/net/ieee8023ad_lacp.h#4 integrate
.. //depot/projects/soc2007/rdivacky/linux_at/sys/net/if_lagg.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_at/sys/net/if_lagg.h#3 integrate

Differences ...

==== //depot/projects/soc2007/rdivacky/linux_at/sys/Makefile#4 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/Makefile,v 1.43 2007/07/01 11:38:26 gnn Exp $
+# $FreeBSD: src/sys/Makefile,v 1.44 2007/07/05 08:55:13 bz Exp $
 
 .include <bsd.own.mk>
 
@@ -10,7 +10,7 @@
 # Directories to include in cscope name file and TAGS.
 CSCOPEDIRS=	bsm cam coda compat conf contrib crypto ddb dev fs geom gnu \
 		i4b isa kern libkern modules net net80211 netatalk netatm \
-		netgraph netinet netinet6 netipx netnatm netncp \
+		netgraph netinet netinet6 netipsec netipx netnatm netncp \
 		netsmb nfs nfsclient nfs4client rpc pccard pci security sys \
 		ufs vm ${ARCHDIR}
 
@@ -24,12 +24,14 @@
 
 HTAGSFLAGS+= -at `awk -F= '/^RELEASE *=/{release=$2}; END {print "FreeBSD", release, "kernel"}' < conf/newvers.sh`
 
+# You need the devel/cscope port for this.
 cscope:	${.CURDIR}/cscopenamefile
 	cd ${.CURDIR}; cscope -k -p4 -i cscopenamefile
 
 ${.CURDIR}/cscopenamefile: 
 	cd ${.CURDIR}; find ${CSCOPEDIRS} -name "*.[csh]" > ${.TARGET}
 
+# You need the devel/global and one of editor/emacs* ports for that.
 TAGS ${.CURDIR}/TAGS:	${.CURDIR}/cscopenamefile
 	rm -f ${.CURDIR}/TAGS
 	cd ${.CURDIR}; xargs etags -a < ${.CURDIR}/cscopenamefile

==== //depot/projects/soc2007/rdivacky/linux_at/sys/conf/kern.pre.mk#4 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.85 2007/07/05 07:06:17 peter Exp $
+# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.86 2007/07/05 09:30:34 peter Exp $
 
 # Part of a unified Makefile for building kernels.  This part contains all
 # of the definitions that need to be before %BEFORE_DEPEND.
@@ -90,7 +90,7 @@
 CFLAGS+= -fno-common -finline-limit=${INLINE_LIMIT}
 CFLAGS+= --param inline-unit-growth=100
 CFLAGS+= --param large-function-growth=1000
-.if ${MACHINE_ARCH} == "amd64"
+.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
 WERROR?= -Werror
 .endif
 .endif

==== //depot/projects/soc2007/rdivacky/linux_at/sys/i4b/layer4/i4b_i4bdrv.c#2 (text+ko) ====

@@ -32,7 +32,7 @@
  *---------------------------------------------------------------------------*/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i4b/layer4/i4b_i4bdrv.c,v 1.44 2005/12/05 11:58:34 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/i4b/layer4/i4b_i4bdrv.c,v 1.45 2007/07/05 08:53:21 bz Exp $");
 
 #include "opt_i4b.h"
 
@@ -423,19 +423,19 @@
 
 			switch(mdrsp->driver)
 			{
-#if NI4BIPR > 0
+#if defined(NI4BIPR) && (NI4BIPR > 0)
 				case BDRV_IPR:
 					dlt = ipr_ret_linktab(mdrsp->driver_unit);
 					break;
 #endif					
 
-#if NI4BISPPP > 0
+#if defined(NI4BISPPP) && (NI4BISPPP > 0)
 				case BDRV_ISPPP:
 					dlt = i4bisppp_ret_linktab(mdrsp->driver_unit);
 					break;
 #endif
 
-#if NI4BTEL > 0
+#if defined(NI4BTEL) && (NI4BTEL > 0)
 				case BDRV_TEL:
 					dlt = tel_ret_linktab(mdrsp->driver_unit);
 					break;
@@ -447,7 +447,7 @@
 					break;
 #endif
 
-#if NI4BING > 0
+#if defined(NI4BING) && (NI4BING > 0)
 				case BDRV_ING:
 					dlt = ing_ret_linktab(mdrsp->driver_unit);
 					break;
@@ -543,7 +543,7 @@
 			
 			mui = (msg_updown_ind_t *)data;
 
-#if NI4BIPR > 0
+#if defined(NI4BIPR) && (NI4BIPR > 0)
 			if(mui->driver == BDRV_IPR)
 			{
 				drvr_link_t *dlt;

==== //depot/projects/soc2007/rdivacky/linux_at/sys/i4b/layer4/i4b_l4.c#2 (text+ko) ====

@@ -32,7 +32,7 @@
  *---------------------------------------------------------------------------*/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i4b/layer4/i4b_l4.c,v 1.20 2005/12/05 11:58:34 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/i4b/layer4/i4b_l4.c,v 1.21 2007/07/05 08:53:21 bz Exp $");
 
 #include "opt_i4b.h"
 
@@ -63,7 +63,7 @@
 static void i4b_l4_setup_timeout_var_unit(call_desc_t *cd);
 static time_t i4b_get_idletime(call_desc_t *cd);
 
-#if NI4BISPPP > 0
+#if defined(NI4BISPPP) && (NI4BISPPP > 0)
 extern time_t i4bisppp_idletime(int);
 #endif
 
@@ -621,25 +621,25 @@
 
 	switch(cd->driver)
 	{
-#if NI4BRBCH > 0
+#if defined(NI4BRBCH) && (NI4BRBCH > 0)
 		case BDRV_RBCH:
 			cd->dlt = rbch_ret_linktab(cd->driver_unit);
 			break;
 #endif
 		
-#if NI4BTEL > 0
+#if defined(NI4BTEL) && (NI4BTEL > 0)
 		case BDRV_TEL:
 			cd->dlt = tel_ret_linktab(cd->driver_unit);
 			break;
 #endif
 
-#if NI4BIPR > 0
+#if defined(NI4BIPR) && (NI4BIPR > 0)
 		case BDRV_IPR:
 			cd->dlt = ipr_ret_linktab(cd->driver_unit);
 			break;
 #endif
 
-#if NI4BISPPP > 0
+#if defined(NI4BISPPP) && (NI4BISPPP > 0)
 		case BDRV_ISPPP:
 			cd->dlt = i4bisppp_ret_linktab(cd->driver_unit);
 			break;
@@ -651,7 +651,7 @@
 			break;
 #endif
 
-#if NI4BING > 0
+#if defined(NI4BING) && (NI4BING > 0)
 		case BDRV_ING:
 			cd->dlt = ing_ret_linktab(cd->driver_unit);
 			break;
@@ -675,25 +675,25 @@
 
 	switch(cd->driver)
 	{
-#if NI4BRBCH > 0
+#if defined(NI4BRBCH) && (NI4BRBCH > 0)
 		case BDRV_RBCH:
 			rbch_set_linktab(cd->driver_unit, cd->ilt);
 			break;
 #endif
 
-#if NI4BTEL > 0
+#if defined(NI4BTEL) && (NI4BTEL > 0)
 		case BDRV_TEL:
 			tel_set_linktab(cd->driver_unit, cd->ilt);
 			break;
 #endif
 
-#if NI4BIPR > 0
+#if defined(NI4BIPR) && (NI4BIPR > 0)
 		case BDRV_IPR:
 			ipr_set_linktab(cd->driver_unit, cd->ilt);
 			break;
 #endif
 
-#if NI4BISPPP > 0
+#if defined(NI4BISPPP) && (NI4BISPPP > 0)
 		case BDRV_ISPPP:
 			i4bisppp_set_linktab(cd->driver_unit, cd->ilt);
 			break;
@@ -705,7 +705,7 @@
 			break;
 #endif
 
-#if NI4BING > 0
+#if defined(NI4BING) && (NI4BING > 0)
 		case BDRV_ING:
 			ing_set_linktab(cd->driver_unit, cd->ilt);
 			break;
@@ -794,7 +794,7 @@
 i4b_get_idletime(call_desc_t *cd)
 {
 	switch (cd->driver) {
-#if NI4BISPPP > 0
+#if defined(NI4BISPPP) && (NI4BISPPP > 0)
 		case BDRV_ISPPP:
 			return i4bisppp_idletime(cd->driver_unit);
 		break;

==== //depot/projects/soc2007/rdivacky/linux_at/sys/kern/Make.tags.inc#4 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/kern/Make.tags.inc,v 1.19 2007/06/25 05:06:56 rafan Exp $
+# $FreeBSD: src/sys/kern/Make.tags.inc,v 1.20 2007/07/05 08:55:14 bz Exp $
 #	@(#)Make.tags.inc	8.1 (Berkeley) 6/11/93
 
 SYS?=	${.CURDIR}/..
@@ -43,8 +43,9 @@
 	${SYS}/netatalk/*.[ch] \
 	${SYS}/netatm/*.[ch] \
 	${SYS}/netinet/*.[ch] \
+	${SYS}/netinet6/*.[ch] \
+	${SYS}/netipsec/*.[ch] \
 	${SYS}/netipx/*.[ch] \
-	${SYS}/netkey/*.[ch] \
 	${SYS}/netnatm/*.[ch] \
 	${SYS}/nfs/*.[ch] \
 	${SYS}/nfsclient/*.[ch] \
@@ -61,8 +62,9 @@
 	${SYS}/netatalk \
 	${SYS}/netatm \
 	${SYS}/netinet \
+	${SYS}/netinet6 \
+	${SYS}/netipsec \
 	${SYS}/netipx \
-	${SYS}/netkey \
 	${SYS}/netnatm \
 	${SYS}/nfs \
 	${SYS}/pci \

==== //depot/projects/soc2007/rdivacky/linux_at/sys/net/ieee8023ad_lacp.c#4 (text+ko) ====

@@ -611,6 +611,56 @@
 	return (0);
 }
 
+void
+lacp_req(struct lagg_softc *sc, caddr_t data)
+{
+	struct lacp_opreq *req = (struct lacp_opreq *)data;
+	struct lacp_softc *lsc = LACP_SOFTC(sc);
+	struct lacp_aggregator *la = lsc->lsc_active_aggregator;
+
+	bzero(req, sizeof(struct lacp_opreq));
+	if (la != NULL) {
+		req->actor_prio = ntohs(la->la_actor.lip_systemid.lsi_prio);
+		memcpy(&req->actor_mac, &la->la_actor.lip_systemid.lsi_mac,
+		    ETHER_ADDR_LEN);
+		req->actor_key = ntohs(la->la_actor.lip_key);
+		req->actor_portprio = ntohs(la->la_actor.lip_portid.lpi_prio);
+		req->actor_portno = ntohs(la->la_actor.lip_portid.lpi_portno);
+		req->actor_state = la->la_actor.lip_state;
+
+		req->partner_prio = ntohs(la->la_partner.lip_systemid.lsi_prio);
+		memcpy(&req->partner_mac, &la->la_partner.lip_systemid.lsi_mac,
+		    ETHER_ADDR_LEN);
+		req->partner_key = ntohs(la->la_partner.lip_key);
+		req->partner_portprio = ntohs(la->la_partner.lip_portid.lpi_prio);
+		req->partner_portno = ntohs(la->la_partner.lip_portid.lpi_portno);
+		req->partner_state = la->la_partner.lip_state;
+	}
+}
+
+void
+lacp_portreq(struct lagg_port *lgp, caddr_t data)
+{
+	struct lacp_opreq *req = (struct lacp_opreq *)data;
+	struct lacp_port *lp = LACP_PORT(lgp);
+
+	req->actor_prio = ntohs(lp->lp_actor.lip_systemid.lsi_prio);
+	memcpy(&req->actor_mac, &lp->lp_actor.lip_systemid.lsi_mac,
+	    ETHER_ADDR_LEN);
+	req->actor_key = ntohs(lp->lp_actor.lip_key);
+	req->actor_portprio = ntohs(lp->lp_actor.lip_portid.lpi_prio);
+	req->actor_portno = ntohs(lp->lp_actor.lip_portid.lpi_portno);
+	req->actor_state = lp->lp_actor.lip_state;
+
+	req->partner_prio = ntohs(lp->lp_partner.lip_systemid.lsi_prio);
+	memcpy(&req->partner_mac, &lp->lp_partner.lip_systemid.lsi_mac,
+	    ETHER_ADDR_LEN);
+	req->partner_key = ntohs(lp->lp_partner.lip_key);
+	req->partner_portprio = ntohs(lp->lp_partner.lip_portid.lpi_prio);
+	req->partner_portno = ntohs(lp->lp_partner.lip_portid.lpi_portno);
+	req->partner_state = lp->lp_partner.lip_state;
+}
+
 static void
 lacp_disable_collecting(struct lacp_port *lp)
 {

==== //depot/projects/soc2007/rdivacky/linux_at/sys/net/ieee8023ad_lacp.h#4 (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.7 2007/06/12 07:29:11 thompsa Exp $
+ * $FreeBSD: src/sys/net/ieee8023ad_lacp.h,v 1.8 2007/07/05 09:18:57 thompsa Exp $
  */
 
 /*
@@ -270,6 +270,8 @@
 void		lacp_port_destroy(struct lagg_port *);
 void		lacp_linkstate(struct lagg_port *);
 int		lacp_port_isactive(struct lagg_port *);
+void		lacp_req(struct lagg_softc *, caddr_t);
+void		lacp_portreq(struct lagg_port *, caddr_t);
 
 /* following constants don't include terminating NUL */
 #define	LACP_MACSTR_MAX		(2*6 + 5)

==== //depot/projects/soc2007/rdivacky/linux_at/sys/net/if_lagg.c#3 (text+ko) ====

@@ -686,6 +686,8 @@
 	strlcpy(rp->rp_portname, lp->lp_ifp->if_xname, sizeof(rp->rp_portname));
 	rp->rp_prio = lp->lp_prio;
 	rp->rp_flags = lp->lp_flags;
+	if (sc->sc_portreq != NULL)
+		(*sc->sc_portreq)(lp, (caddr_t)&rp->rp_psc);
 
 	/* Add protocol specific flags */
 	switch (sc->sc_proto) {
@@ -768,6 +770,8 @@
 	case SIOCGLAGG:
 		ra->ra_proto = sc->sc_proto;
 		ra->ra_ports = i = 0;
+		if (sc->sc_req != NULL)
+			(*sc->sc_req)(sc, (caddr_t)&ra->ra_psc);
 		lp = SLIST_FIRST(&sc->sc_ports);
 		while (lp && ra->ra_size >=
 		    i + sizeof(struct lagg_reqport)) {
@@ -802,6 +806,8 @@
 			sc->sc_init = NULL;
 			sc->sc_stop = NULL;
 			sc->sc_lladdr = NULL;
+			sc->sc_req = NULL;
+			sc->sc_portreq = NULL;
 		}
 		if (error != 0)
 			break;
@@ -1532,6 +1538,8 @@
 	sc->sc_init = lacp_init;
 	sc->sc_stop = lacp_stop;
 	sc->sc_lladdr = lagg_lacp_lladdr;
+	sc->sc_req = lacp_req;
+	sc->sc_portreq = lacp_portreq;
 
 	error = lacp_attach(sc);
 	if (error)

==== //depot/projects/soc2007/rdivacky/linux_at/sys/net/if_lagg.h#3 (text+ko) ====

@@ -15,7 +15,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $FreeBSD: src/sys/net/if_lagg.h,v 1.8 2007/06/12 07:29:11 thompsa Exp $
+ * $FreeBSD: src/sys/net/if_lagg.h,v 1.9 2007/07/05 09:18:57 thompsa Exp $
  */
 
 #ifndef _NET_LAGG_H
@@ -69,12 +69,34 @@
  * lagg ioctls.
  */
 
+/*
+ * LACP current operational parameters structure.
+ */
+struct lacp_opreq {
+	uint16_t		actor_prio;
+	uint8_t			actor_mac[ETHER_ADDR_LEN];
+	uint16_t		actor_key;
+	uint16_t		actor_portprio;
+	uint16_t		actor_portno;
+	uint8_t			actor_state;
+	uint16_t		partner_prio;
+	uint8_t			partner_mac[ETHER_ADDR_LEN];
+	uint16_t		partner_key;
+	uint16_t		partner_portprio;
+	uint16_t		partner_portno;
+	uint8_t			partner_state;
+};
+
 /* lagg port settings */
 struct lagg_reqport {
 	char			rp_ifname[IFNAMSIZ];	/* name of the lagg */
 	char			rp_portname[IFNAMSIZ];	/* name of the port */
 	u_int32_t		rp_prio;		/* port priority */
 	u_int32_t		rp_flags;		/* port flags */
+	union {
+		struct lacp_opreq rpsc_lacp;
+	} rp_psc;
+#define rp_lacpreq	rp_psc.rpsc_lacp
 };
 
 #define	SIOCGLAGGPORT		_IOWR('i', 140, struct lagg_reqport)
@@ -89,6 +111,10 @@
 	size_t			ra_size;		/* size of buffer */
 	struct lagg_reqport	*ra_port;		/* allocated buffer */
 	int			ra_ports;		/* total port count */
+	union {
+		struct lacp_opreq rpsc_lacp;
+	} ra_psc;
+#define ra_lacpreq	ra_psc.rpsc_lacp
 };
 
 #define	SIOCGLAGG		_IOWR('i', 143, struct lagg_reqall)
@@ -170,6 +196,8 @@
 	void	(*sc_init)(struct lagg_softc *);
 	void	(*sc_stop)(struct lagg_softc *);
 	void	(*sc_lladdr)(struct lagg_softc *);
+	void	(*sc_req)(struct lagg_softc *, caddr_t);
+	void	(*sc_portreq)(struct lagg_port *, caddr_t);
 };
 
 struct lagg_port {


More information about the p4-projects mailing list