From nobody@FreeBSD.ORG  Thu Jun 22 03:15:38 2000
Return-Path: <nobody@FreeBSD.ORG>
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id B982137C288; Thu, 22 Jun 2000 03:15:38 -0700 (PDT)
Message-Id: <20000622101538.B982137C288@hub.freebsd.org>
Date: Thu, 22 Jun 2000 03:15:38 -0700 (PDT)
From: vova@express.ru
Sender: nobody@FreeBSD.ORG
To: freebsd-gnats-submit@FreeBSD.org
Subject: when using vlanX interface arp ageing work incorrectly
X-Send-Pr-Version: www-1.0

>Number:         19436
>Category:       kern
>Synopsis:       when using vlanX interface arp ageing work incorrectly
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    yar
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jun 22 03:20:00 PDT 2000
>Closed-Date:    Tue Apr 24 06:12:10 PDT 2001
>Last-Modified:  Tue Apr 24 06:13:59 PDT 2001
>Originator:     Vladimir B. Grebenschikov
>Release:        4.0-STABLE
>Organization:
TSB "Russian Expfress"
>Environment:
FreeBSD gw9a.express.ru 4.0-STABLE FreeBSD 4.0-STABLE #3: Wed Jun 14 19:54:31 MSD 2000     root@gw9a.express.ru:/usr/src/sys/compile/GW9A  i386

>Description:
My network environment fbsd server with fxp interface connected to 
Intel 460t switch into trunked port (802.1q)
to not-trunked port of switch connected other server
when I configure vlan interface:
ifconfig vlan3 vlan 3 vlandev fxp0 192.168.1.1 netmask 255.255.255.0
- all work Ok
packets go to 192.168.1.2 (server address) and back
but after about 10 minutes of inactivity (no traffic)
I can't send packets to 192.168.1.2, it seems like packet go to nowere
but I still see packets from 192.168.1.2
when I do 'arp -an' I see his correct arp, BUT when I try to do
'arp -d 192.168.1.2' arp complains:
delete: can't locate 192.168.2.1
when I do 'route delete 192.168.1.2' - all begins work
so it seem there problem in arp aging	
>How-To-Repeat:
see above
>Fix:
not known

>Release-Note:
>Audit-Trail:

From: "Vladimir B. Grebenschikov" <vova@express.ru>
To: freebsd-gnats-submit@freebsd.org
Cc:  
Subject: Re: kern/19436: when using vlanX interface arp ageing work incorrectly
Date: Fri, 7 Jul 2000 07:24:51 +0400 (MSD)

 After some debugging I've found that there is actually two problems:
 
 First - with switching hardware (Inter 460t with 802.1Q capable
 firmware), It fails correct deliver broadcasts from trunked port to
 untrunked port after untrunked port goes down and then up.
 
 Second - with arp utility, it can't handle arp entries on vlanX
 interfaces correctly, there is simple patch for fix arp behavior:
 diff -N -u arp.c.orig arp.c
 
 --- usr.sbin/arp/arp.c.orig  Fri Jul  7 07:11:48 2000
 +++ usr.sbin/arp/arp.c       Fri Jul  7 07:11:20 2000
 @@ -397,7 +397,7 @@
                     (rtm->rtm_flags & RTF_LLINFO) &&
                     !(rtm->rtm_flags & RTF_GATEWAY)) switch (sdl->sdl_type) {
                 case IFT_ETHER: case IFT_FDDI: case IFT_ISO88023:
 -               case IFT_ISO88024: case IFT_ISO88025:
 +               case IFT_ISO88024: case IFT_ISO88025: case IFT_PROPVIRTUAL:
                         goto delete;
                 }
         }
 
 
 --
 TSB Russian Express, Moscow
 Vladimir B. Grebenschikov, vova@express.ru
 

From: Peter Jeremy <peter.jeremy@alcatel.com.au>
To: freebsd-gnats-submit@FreeBSD.ORG
Cc: vova@express.ru
Subject: Re: kern/19436: when using vlanX interface arp ageing work incorrectly
Date: Wed, 09 Aug 2000 09:51:41 +1000

 Looking through your patch, I believe it should be the following:
 The first hunk supports setting ARP entries, the second is your
 patch, the third is to identify the VLAN entries (and is optional).
 
 Index: arp.c
 ===================================================================
 RCS file: /gsmx07/CVSROOT/src/usr.sbin/arp/arp.c,v
 retrieving revision 1.22
 diff -u -b -r1.22 arp.c
 --- arp.c	2000/03/03 13:01:57	1.22
 +++ arp.c	2000/08/08 23:45:19
 @@ -310,7 +310,7 @@
  		    (rtm->rtm_flags & RTF_LLINFO) &&
  		    !(rtm->rtm_flags & RTF_GATEWAY)) switch (sdl->sdl_type) {
  		case IFT_ETHER: case IFT_FDDI: case IFT_ISO88023:
 -		case IFT_ISO88024: case IFT_ISO88025:
 +		case IFT_ISO88024: case IFT_ISO88025: case IFT_PROPVIRTUAL:
  			goto overwrite;
  		}
  		if (doing_proxy == 0) {
 @@ -397,7 +397,7 @@
  		    (rtm->rtm_flags & RTF_LLINFO) &&
  		    !(rtm->rtm_flags & RTF_GATEWAY)) switch (sdl->sdl_type) {
  		case IFT_ETHER: case IFT_FDDI: case IFT_ISO88023:
 -		case IFT_ISO88024: case IFT_ISO88025:
 +		case IFT_ISO88024: case IFT_ISO88025: case IFT_PROPVIRTUAL:
  			goto delete;
  		}
  	}
 @@ -509,6 +509,9 @@
              case IFT_ISO88025:
                  printf(" [token-ring]");
                  break;
 +	    case IFT_PROPVIRTUAL:
 +		printf(" [vlan]");
 +		break;
              default:
          }
  	if (sdl->sdl_rcf != NULL) {
 
 Peter
 
State-Changed-From-To: open->analyzed 
State-Changed-By: yar 
State-Changed-When: Wed Apr 4 08:17:47 PDT 2001 
State-Changed-Why:  
I've just committed the fix into -current with respect to the new 
VLAN interface type. I'll MFC that as soon as I get the approval. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=19436 
Responsible-Changed-From-To: freebsd-bugs->yar 
Responsible-Changed-By: yar 
Responsible-Changed-When: Wed Apr 4 08:26:46 PDT 2001 
Responsible-Changed-Why:  
It's me who deals with the problem. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=19436 
State-Changed-From-To: analyzed->closed 
State-Changed-By: yar 
State-Changed-When: Tue Apr 24 06:12:10 PDT 2001 
State-Changed-Why:  
Fixed in both -stable & -current. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=19436 
>Unformatted:
