Commit 7b565754 authored by shemminger's avatar shemminger

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.
parent 319baacb
2006-03-21 James Lentini <jlentini@netapp.com>
* Increase size of hw address allowed for ip neigh to allow
for IB.
2006-03-14 Russell Stuart <russell-lartc@stuart.id.au> 2006-03-14 Russell Stuart <russell-lartc@stuart.id.au>
* Fix missing memset in tc sample * Fix missing memset in tc sample
......
...@@ -216,7 +216,8 @@ static int get_address(const char *dev, int *htype) ...@@ -216,7 +216,8 @@ static int get_address(const char *dev, int *htype)
return me.sll_halen; return me.sll_halen;
} }
static int parse_address(const char *dev, int hatype, int halen, char *lla, struct ifreq *ifr) static int parse_address(const char *dev, int hatype, int halen,
char *lla, struct ifreq *ifr)
{ {
int alen; int alen;
......
...@@ -165,7 +165,7 @@ static int ipneigh_modify(int cmd, int flags, int argc, char **argv) ...@@ -165,7 +165,7 @@ static int ipneigh_modify(int cmd, int flags, int argc, char **argv)
addattr_l(&req.n, sizeof(req), NDA_DST, &dst.data, dst.bytelen); addattr_l(&req.n, sizeof(req), NDA_DST, &dst.data, dst.bytelen);
if (lla && strcmp(lla, "null")) { if (lla && strcmp(lla, "null")) {
char llabuf[16]; char llabuf[20];
int l; int l;
l = ll_addr_a2n(llabuf, sizeof(llabuf), lla); l = ll_addr_a2n(llabuf, sizeof(llabuf), lla);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment