summaryrefslogtreecommitdiff
path: root/packages/net-tools/files/net-tools-1.60-ifconfig_ib.patch
diff options
context:
space:
mode:
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.patch202
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