network range broadcast storms (fix)


Subject: network range broadcast storms (fix)
From: wesley.craig@umich.edu
Date: Fri May 06 1994 - 15:33:17 EDT


Here's a patch for broadcast storms caused by multiple netatalk
machines in a single net-range. Please find a patch attached. This
fix will be included (among other things) in netatalk-1.3.2, which I'll
try to get out in a week or so.

:wes

--- cut ---
*** sys/netatalk/ddp_input.c- Fri May 6 14:27:04 1994
--- sys/netatalk/ddp_input.c Fri May 6 14:25:39 1994
***************
*** 39,44 ****
--- 39,45 ----
  #include "ddp.h"
  #include "ddp_var.h"
  
+ int ddp_forward = 1;
  int ddp_deaf = 0;
  extern int ddp_cksum;
  extern u_short at_cksum();
***************
*** 238,245 ****
                          to.sat_addr.s_node == 0 ) {
                      break;
                  }
! if ( to.sat_addr.s_net != AA_SAT( aa )->sat_addr.s_net &&
! to.sat_addr.s_net != 0 &&
                          ( to.sat_addr.s_net < 0xff00 ||
                          to.sat_addr.s_net > 0xfffe )) {
                      continue;
--- 239,246 ----
                          to.sat_addr.s_node == 0 ) {
                      break;
                  }
! if (( to.sat_addr.s_net < aa->aa_firstnet ||
! to.sat_addr.s_net > aa->aa_lastnet ) &&
                          ( to.sat_addr.s_net < 0xff00 ||
                          to.sat_addr.s_net > 0xfffe )) {
                      continue;
***************
*** 280,285 ****
--- 281,290 ----
       */
      if ( aa == NULL || ( to.sat_addr.s_node == ATADDR_BCAST &&
              aa->aa_ifp != ifp && ( ifp->if_flags & IFF_LOOPBACK ) == 0 )) {
+ if ( ddp_forward == 0 ) {
+ m_freem( m );
+ return;
+ }
          if ( forwro.ro_rt && ( satosat( &forwro.ro_dst )->sat_addr.s_net !=
                  to.sat_addr.s_net ||
                  satosat( &forwro.ro_dst )->sat_addr.s_node !=
--- cut ---



This archive was generated by hypermail 2b28 : Sat Dec 18 1999 - 16:20:55 EST