From edith!cmcl2!yale!mintaka!snorkelwacker!think!samsung!uunet!ibmpa!bullhead!brunner Fri Mar  2 09:50:54 EST 1990
Article 2231 of comp.sys.ibm.pc.rt:
Path: edith!cmcl2!yale!mintaka!snorkelwacker!think!samsung!uunet!ibmpa!bullhead!brunner
>From: brunner@bullhead.uucp
Newsgroups: comp.sys.ibm.pc.rt
Subject: Token ring fix (all-routes bit set) 6150
Summary: Fixes bridge failure due to broadcast
Keywords: if_lan.c token-ring multipath flooding IBM/4.3
Message-ID: <4309@ibmpa.UUCP>
Date: 1 Mar 90 20:23:24 GMT
Sender: news@ibmpa.UUCP
Reply-To: brunner@ibmsupt.UUCP ()
Organization: IBM AWD Palo Alto
Lines: 50

Subject: Token ring fix (all-routes bit set)
Fix: /sys/caif/if_lan.c

Description:
	In multipath token rings, broadcasts (typically arps) having
	the all-routes bit set in the rip field of the link-level header
	results in redundent flooding during route discovery. In very
	large multipath rings this may cause bridges to fail. Using
	limited broadcast (implemented in this patch) the total number
	of packets generated during route discovery is reduced.

Fix:	Change directories to /sys/caif and apply the following
	patch, e.g.,
	
		patch < this_file
			

*** if_lan.c.orig	Fri Dec  9 14:50:39 1988
--- if_lan.c.fix	Thu Feb  8 15:14:29 1990
***************
*** 300,306 ****
  		/* set up lan header areas */
  		lns->rp[i]->d_parm[0].d_cnt =
  			(((short)(sizeof(struct mac_hdr)  +
! 			sizeof(struct llc_hdr) + LAN_MTU)) &
  			(~LAN_CHAIN));
  		lns->rp[i]->d_parm[0].d_haddr = DMA_HI_ADDR(tcw);
  		lns->rp[i]->d_parm[0].d_laddr = DMA_LO_ADDR(lns->lns_rdata[i], tcw);
--- 300,306 ----
  		/* set up lan header areas */
  		lns->rp[i]->d_parm[0].d_cnt =
  			(((short)(sizeof(struct mac_hdr)  +
! 			sizeof(struct llc_hdr) + LAN_MTU +3)) &
  			(~LAN_CHAIN));
  		lns->rp[i]->d_parm[0].d_haddr = DMA_HI_ADDR(tcw);
  		lns->rp[i]->d_parm[0].d_laddr = DMA_LO_ADDR(lns->lns_rdata[i], tcw);
***************
*** 1030,1035 ****
--- 1030,1036 ----
  					| LAN_RCF_BROADCAST; /* all rings broadcast */
  			}
  		}
+ 			printf("after local masking rcf=0x%x\n", rcf);
  		break;
  #endif
  	case AF_UNSPEC:

Eric Brunner, Consultant, IBM AWD Palo Alto	(415) 855-4486
inet: brunner@monet.berkeley.edu
uucp: uunet!ibmsupt!brunner	


