Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.1:Update
net-tools
net-tools-1.60-infiniband.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File net-tools-1.60-infiniband.diff of Package net-tools
--- config.in 2000-05-21 07:32:12.000000000 -0700 +++ config.in 2005-02-07 10:45:14.108286619 -0800 @@ -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. --- lib/hw.c 2000-05-20 11:27:25.000000000 -0700 +++ lib/hw.c 2005-02-07 09:56:22.315428035 -0800 @@ -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; } --- lib/ib.c 1969-12-31 16:00:00.000000000 -0800 +++ lib/ib.c 2005-02-07 12:55:04.635559244 -0800 @@ -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> +#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; + + +/* 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_HWETHER */ --- lib/Makefile 2000-10-28 03:59:42.000000000 -0700 +++ lib/Makefile 2005-02-07 10:02:14.662640164 -0800 @@ -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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor