]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/blobdiff - net-tools/patches/net-tools-1.60-ifconfig_ib.patch
Move all packages to root.
[people/amarx/ipfire-3.x.git] / net-tools / patches / net-tools-1.60-ifconfig_ib.patch
diff --git a/net-tools/patches/net-tools-1.60-ifconfig_ib.patch b/net-tools/patches/net-tools-1.60-ifconfig_ib.patch
new file mode 100644 (file)
index 0000000..b5a234f
--- /dev/null
@@ -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