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 commit is contained in:
parent
319baacb12
commit
7b5657545d
|
|
@ -1,3 +1,8 @@
|
||||||
|
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)
|
||||||
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)
|
||||||
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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue