From nobody@FreeBSD.org  Thu May 13 05:27:17 2010
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3CDC6106564A
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 May 2010 05:27:17 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id EC95A8FC13
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 May 2010 05:27:16 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o4D5RGpN043140
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 May 2010 05:27:16 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id o4D5RGZO043139;
	Thu, 13 May 2010 05:27:16 GMT
	(envelope-from nobody)
Message-Id: <201005130527.o4D5RGZO043139@www.freebsd.org>
Date: Thu, 13 May 2010 05:27:16 GMT
From: grayich <grayich@ukr.net>
To: freebsd-gnats-submit@FreeBSD.org
Subject: arp pub not working properly
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         146539
>Category:       kern
>Synopsis:       [arp] arp pub not working properly
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-net
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu May 13 05:30:06 UTC 2010
>Closed-Date:    Tue Jul 27 10:06:33 UTC 2010
>Last-Modified:  Thu Sep 16 15:00:07 UTC 2010
>Originator:     grayich
>Release:        8.0-STABLE
>Organization:
>Environment:
>Description:
arp pub not working properly

1. arp -da; arp -f arp.txt
 in arp.txt:
 172.16.43.2     00:00:00:00:00:00       pub
 172.16.43.3     00:13:8f:3e:0a:34       pub
 ~~~
 ~~~
 172.16.43.253   00:00:00:00:00:00       pub
 172.16.43.254   00:02:2a:e2:a7:12       pub

2. arp -an|grep -v published
 ? (172.16.43.1) at 00:50:8b:0d:e1:a9 on fxp0 permanent [ethernet]
 ? (172.16.43.100) at 00:26:54:4b:1c:37 on fxp0 permanent [ethernet]
.. multiple IP are not published, in this case "172.16.43.100"

>How-To-Repeat:

>Fix:


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-net 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Fri May 14 03:18:06 UTC 2010 
Responsible-Changed-Why:  
Over to maintainer. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146539 
State-Changed-From-To: open->closed 
State-Changed-By: glebius 
State-Changed-When: Tue Jul 27 10:06:08 UTC 2010 
State-Changed-Why:  
Dup of kern/148784 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146539 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/146539: commit references a PR
Date: Tue, 27 Jul 2010 10:05:49 +0000 (UTC)

 Author: glebius
 Date: Tue Jul 27 10:05:27 2010
 New Revision: 210529
 URL: http://svn.freebsd.org/changeset/base/210529
 
 Log:
   When installing a new ARP entry via 'arp -S', lla_lookup() will
   either find an existing entry, or allocate a new one. In the latter
   case an entry would have flags, that were supplied as argument to
   lla_lookup(). In case of an existing entry, flags aren't modified.
   
   This lead to losing LLE_PUB and/or LLE_PROXY flags.
   
   We should apply these flags either in lla_rt_output() or in the
   in.c:in_lltable_lookup(). It seems to me that lla_rt_output() is
   a more correct choice.
   
   PR:		kern/148784, kern/146539
   Silence from:	qingli, 5 days
 
 Modified:
   head/sys/net/if_llatbl.c
 
 Modified: head/sys/net/if_llatbl.c
 ==============================================================================
 --- head/sys/net/if_llatbl.c	Tue Jul 27 09:22:41 2010	(r210528)
 +++ head/sys/net/if_llatbl.c	Tue Jul 27 10:05:27 2010	(r210529)
 @@ -337,6 +337,7 @@ lla_rt_output(struct rt_msghdr *rtm, str
  			 * LLE_DELETED flag, and reset the expiration timer
  			 */
  			bcopy(LLADDR(dl), &lle->ll_addr, ifp->if_addrlen);
 +			lle->la_flags |= (flags & (LLE_PUB | LLE_PROXY));
  			lle->la_flags |= LLE_VALID;
  			lle->la_flags &= ~LLE_DELETED;
  #ifdef INET6
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/146539: commit references a PR
Date: Thu, 16 Sep 2010 14:55:27 +0000 (UTC)

 Author: glebius
 Date: Thu Sep 16 14:55:22 2010
 New Revision: 212735
 URL: http://svn.freebsd.org/changeset/base/212735
 
 Log:
   MFhead 210529:
     When installing a new ARP entry via 'arp -S', lla_lookup() will
     either find an existing entry, or allocate a new one. In the latter
     case an entry would have flags, that were supplied as argument to
     lla_lookup(). In case of an existing entry, flags aren't modified.
   
     This lead to losing LLE_PUB and/or LLE_PROXY flags.
   
     We should apply these flags either in lla_rt_output() or in the
     in.c:in_lltable_lookup(). It seems to me that lla_rt_output() is
     a more correct choice.
   
     PR:           kern/148784, kern/146539
 
 Modified:
   stable/8/sys/net/if_llatbl.c
 Directory Properties:
   stable/8/sys/   (props changed)
   stable/8/sys/amd64/include/xen/   (props changed)
   stable/8/sys/cddl/contrib/opensolaris/   (props changed)
   stable/8/sys/contrib/dev/acpica/   (props changed)
   stable/8/sys/contrib/pf/   (props changed)
   stable/8/sys/dev/xen/xenpci/   (props changed)
 
 Modified: stable/8/sys/net/if_llatbl.c
 ==============================================================================
 --- stable/8/sys/net/if_llatbl.c	Thu Sep 16 14:30:32 2010	(r212734)
 +++ stable/8/sys/net/if_llatbl.c	Thu Sep 16 14:55:22 2010	(r212735)
 @@ -337,6 +337,7 @@ lla_rt_output(struct rt_msghdr *rtm, str
  			 * LLE_DELETED flag, and reset the expiration timer
  			 */
  			bcopy(LLADDR(dl), &lle->ll_addr, ifp->if_addrlen);
 +			lle->la_flags |= (flags & (LLE_PUB | LLE_PROXY));
  			lle->la_flags |= LLE_VALID;
  			lle->la_flags &= ~LLE_DELETED;
  #ifdef INET6
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
>Unformatted:
