Date: Thu, 5 Jul 2007 09:46:29 GMT From: Roman Divacky <rdivacky@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 122930 for review Message-ID: <200707050946.l659kT2v040342@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=122930 Change 122930 by rdivacky@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 {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707050946.l659kT2v040342>