diff options
Diffstat (limited to 'packages/net-tools/files/net-tools-1.60-ifconfig_ib.patch')
-rw-r--r-- | packages/net-tools/files/net-tools-1.60-ifconfig_ib.patch | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/packages/net-tools/files/net-tools-1.60-ifconfig_ib.patch b/packages/net-tools/files/net-tools-1.60-ifconfig_ib.patch new file mode 100644 index 0000000000..b5a234f25d --- /dev/null +++ b/packages/net-tools/files/net-tools-1.60-ifconfig_ib.patch @@ -0,0 +1,202 @@ +--- net-tools-1.60/config.in.ifconfig_ib 2000-05-21 16:32:12.000000000 +0200 ++++ net-tools-1.60/config.in 2005-02-09 10:36:26.000000000 +0100 +@@ -82,6 +82,7 @@ + bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB n + bool 'IrDA support' HAVE_HWIRDA y + bool 'Econet hardware support' HAVE_HWEC n ++bool 'InfiniBand hardware support' HAVE_HWIB y + * + * + * Other Features. +--- net-tools-1.60/lib/hw.c.ifconfig_ib 2000-05-20 20:27:25.000000000 +0200 ++++ net-tools-1.60/lib/hw.c 2005-02-09 10:36:26.000000000 +0100 +@@ -73,6 +73,8 @@ + + extern struct hwtype ec_hwtype; + ++extern struct hwtype ib_hwtype; ++ + static struct hwtype *hwtypes[] = + { + +@@ -144,6 +146,9 @@ + #if HAVE_HWX25 + &x25_hwtype, + #endif ++#if HAVE_HWIB ++ &ib_hwtype, ++#endif + &unspec_hwtype, + NULL + }; +@@ -217,6 +222,9 @@ + #if HAVE_HWEC + ec_hwtype.title = _("Econet"); + #endif ++#if HAVE_HWIB ++ ib_hwtype.title = _("InfiniBand"); ++#endif + sVhwinit = 1; + } + +--- net-tools-1.60/lib/ib.c.ifconfig_ib 2005-02-09 10:36:26.000000000 +0100 ++++ net-tools-1.60/lib/ib.c 2005-02-09 10:42:21.000000000 +0100 +@@ -0,0 +1,147 @@ ++/* ++ * lib/ib.c This file contains an implementation of the "Infiniband" ++ * support functions. ++ * ++ * Version: $Id: ib.c,v 1.1 2005/02/06 11:00:47 tduffy Exp $ ++ * ++ * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> ++ * Copyright 1993 MicroWalt Corporation ++ * Tom Duffy <tduffy@sun.com> ++ * ++ * This program is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU General ++ * Public License as published by the Free Software ++ * Foundation; either version 2 of the License, or (at ++ * your option) any later version. ++ */ ++#include "config.h" ++ ++#if HAVE_HWIB ++#include <sys/types.h> ++#include <sys/socket.h> ++#include <net/if_arp.h> ++/*#include <linux/if_infiniband.h> - not in gcc-kernheaders*/ ++#include <stdlib.h> ++#include <stdio.h> ++#include <errno.h> ++#include <ctype.h> ++#include <string.h> ++#include <unistd.h> ++#include "net-support.h" ++#include "pathnames.h" ++#include "intl.h" ++#include "util.h" ++ ++extern struct hwtype ib_hwtype; ++ ++#define INFINIBAND_ALEN 20 ++ ++/* Display an InfiniBand address in readable format. */ ++static char *pr_ib(unsigned char *ptr) ++{ ++ static char buff[128]; ++ char *pos; ++ unsigned int i; ++ ++ pos = buff; ++ for (i = 0; i < INFINIBAND_ALEN; i++) { ++ pos += sprintf(pos, "%02X:", (*ptr++ & 0377)); ++ } ++ buff[strlen(buff) - 1] = '\0'; ++ ++ /* snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X", ++ (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), ++ (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377) ++ ); ++ */ ++ return (buff); ++} ++ ++ ++/* Input an Infiniband address and convert to binary. */ ++static int in_ib(char *bufp, struct sockaddr *sap) ++{ ++ unsigned char *ptr; ++ char c, *orig; ++ int i; ++ unsigned val; ++ ++ sap->sa_family = ib_hwtype.type; ++ ptr = sap->sa_data; ++ ++ i = 0; ++ orig = bufp; ++ while ((*bufp != '\0') && (i < INFINIBAND_ALEN)) { ++ val = 0; ++ c = *bufp++; ++ if (isdigit(c)) ++ val = c - '0'; ++ else if (c >= 'a' && c <= 'f') ++ val = c - 'a' + 10; ++ else if (c >= 'A' && c <= 'F') ++ val = c - 'A' + 10; ++ else { ++#ifdef DEBUG ++ fprintf(stderr, _("in_ib(%s): invalid infiniband address!\n"), orig); ++#endif ++ errno = EINVAL; ++ return (-1); ++ } ++ val <<= 4; ++ c = *bufp; ++ if (isdigit(c)) ++ val |= c - '0'; ++ else if (c >= 'a' && c <= 'f') ++ val |= c - 'a' + 10; ++ else if (c >= 'A' && c <= 'F') ++ val |= c - 'A' + 10; ++ else if (c == ':' || c == 0) ++ val >>= 4; ++ else { ++#ifdef DEBUG ++ fprintf(stderr, _("in_ib(%s): invalid infiniband address!\n"), orig); ++#endif ++ errno = EINVAL; ++ return (-1); ++ } ++ if (c != 0) ++ bufp++; ++ *ptr++ = (unsigned char) (val & 0377); ++ i++; ++ ++ /* We might get a semicolon here - not required. */ ++ if (*bufp == ':') { ++ if (i == INFINIBAND_ALEN) { ++#ifdef DEBUG ++ fprintf(stderr, _("in_ib(%s): trailing : ignored!\n"), ++ orig) ++#endif ++ ; /* nothing */ ++ } ++ bufp++; ++ } ++ } ++ ++ /* That's it. Any trailing junk? */ ++ if ((i == INFINIBAND_ALEN) && (*bufp != '\0')) { ++#ifdef DEBUG ++ fprintf(stderr, _("in_ib(%s): trailing junk!\n"), orig); ++ errno = EINVAL; ++ return (-1); ++#endif ++ } ++#ifdef DEBUG ++ fprintf(stderr, "in_ib(%s): %s\n", orig, pr_ib(sap->sa_data)); ++#endif ++ ++ return (0); ++} ++ ++ ++struct hwtype ib_hwtype = ++{ ++ "infiniband", NULL, ARPHRD_INFINIBAND, INFINIBAND_ALEN, ++ pr_ib, in_ib, NULL ++}; ++ ++#endif /* HAVE_HWIB */ +--- net-tools-1.60/lib/Makefile.ifconfig_ib 2000-10-28 12:59:42.000000000 +0200 ++++ net-tools-1.60/lib/Makefile 2005-02-09 10:36:26.000000000 +0100 +@@ -16,7 +16,7 @@ + # + + +-HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o ++HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o ib.o + AFOBJS = unix.o inet.o inet6.o ax25.o ipx.o ddp.o ipx.o netrom.o af.o rose.o econet.o x25.o + AFGROBJS = inet_gr.o inet6_gr.o ipx_gr.o ddp_gr.o netrom_gr.o ax25_gr.o rose_gr.o getroute.o x25_gr.o + AFSROBJS = inet_sr.o inet6_sr.o netrom_sr.o ipx_sr.o setroute.o x25_sr.o |