Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Oct 2001 20:54:45 -0700 (PDT)
From:      Matthew Jacob <mjacob@feral.com>
To:        freebsd-net@freebsd.org
Subject:   (resend/redo) of BRIDGE patches
Message-ID:  <Pine.BSF.4.21.0110142052370.9729-100000@beppo>

next in thread | raw e-mail | index | archive | help

can somebody help test these?

It compiles well, etc... but I haven't quite got the setup at the moment to
really do this as I'd have to tear down a current infrastructure that's in the
middle of some long term tests. 

Can sombody try these and make it does what it's supposed to? They should...

===================================================================
RCS file: /home/ncvs/src/sys/net/bridge.c,v
retrieving revision 1.40
diff -u -r1.40 bridge.c
--- net/bridge.c	2001/10/12 18:04:44	1.40
+++ net/bridge.c	2001/10/15 03:53:38
@@ -556,16 +556,16 @@
      * for outgoing packets from ether_output().
      */
     BDG_STAT(ifp, BDG_IN);
-    switch ((int)dst) {
-    case (int)BDG_BCAST:
-    case (int)BDG_MCAST:
-    case (int)BDG_LOCAL:
-    case (int)BDG_UNKNOWN:
-    case (int)BDG_DROP:
+    switch ((uintptr_t)dst) {
+    case (uintptr_t) BDG_BCAST:
+    case (uintptr_t) BDG_MCAST:
+    case (uintptr_t) BDG_LOCAL:
+    case (uintptr_t) BDG_UNKNOWN:
+    case (uintptr_t) BDG_DROP:
 	BDG_STAT(ifp, dst);
 	break ;
     default :
-	if (dst == ifp || dropit )
+	if (dst == ifp || dropit)
 	    BDG_STAT(ifp, BDG_DROP);
 	else
 	    BDG_STAT(ifp, BDG_FORWARD);
@@ -649,7 +649,7 @@
 	ifp = dst ;
 	once = 1 ;
     }
-    if ( (u_int)(ifp) <= (u_int)BDG_FORWARD )
+    if (ifp <= BDG_FORWARD)
 	panic("bdg_forward: bad dst");
 
     /*
Index: net/bridge.h
===================================================================
RCS file: /home/ncvs/src/sys/net/bridge.h,v
retrieving revision 1.8
diff -u -r1.8 bridge.h
--- net/bridge.h	2001/10/05 05:45:26	1.8
+++ net/bridge.h	2001/10/15 03:53:38
@@ -92,8 +92,9 @@
 	*((unsigned int *)(a)) == 0xffffffff && \
 	((unsigned short *)(a))[2] == 0xffff )
 #else
-#warning... must complete these for the alpha etc.
-#define BDG_MATCH(a,b) (!bcmp(a, b, ETHER_ADDR_LEN) )
+/* Unaligned access versions. */
+#define BDG_MATCH(a,b)		(!bcmp(a, b, ETHER_ADDR_LEN) )
+#define	IS_ETHER_BROADCAST(a)	(!bcmp(a, "\377\377\377\377\377\377", 6))
 #endif
 /*
  * The following constants are not legal ifnet pointers, and are used
@@ -127,7 +128,7 @@
 } ;
 
 
-#define BDG_STAT(ifp, type) bdg_stats.s[ifp->if_index].p_in[(int)type]++ 
+#define BDG_STAT(ifp, type) bdg_stats.s[ifp->if_index].p_in[(long)type]++ 
  
 #ifdef _KERNEL
 typedef	struct ifnet *bridge_in_t(struct ifnet *, struct ether_header *);


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0110142052370.9729-100000>