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