From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [iproute2] IPoIB link layer address bug Date: Tue, 21 Mar 2006 15:56:17 -0800 Message-ID: <20060321155617.3ae419b2@localhost.localdomain> References: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, openib-general , lartc@mailman.ds9a.nl Return-path: To: James Lentini In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: openib-general-bounces@openib.org Errors-To: openib-general-bounces@openib.org List-Id: netdev.vger.kernel.org On Thu, 16 Mar 2006 17:24:41 -0500 (EST) James Lentini wrote: > > The ip(8) command has a bug when dealing with IPoIB link layer > addresses. Specifically it does not correctly handle the addition of > new entries in the neighbor/arp table. For example, this command will > fail: > > ip neigh add 192.168.0.138 lladdr 00:00:04:04:fe:80:00:00:00:00:00:00:00:01:73:00:00:00:8a:91 nud permanent dev ib0 > > An IPoIB link layer address is 20-bytes (see > http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-09.txt, > section 9.1.1). > > The command line parsing code expects link layer addresses to be a > maximum of 16-bytes. Addresses over 16-bytes are truncated. > > This patch (against the iproute2 cvs repository) fixes the problem: > Okay, but there are number of other places in iproute2 that call ll_addr_a2n() with ifr.ifr_hwaddr.sa_data. And that is 14 bytes. If you want to fix those it will be harder since it would increase the sizeof(struct sockaddr) and potentially break compatibility.