[openib-general] [PATCH] teach ifconfig about ib [WAS: Latest IPoIB Bringup Questions]

Tom Duffy tduffy at sun.com
Tue Feb 8 07:09:47 PST 2005


[ Please keep discussion on list ]

On Tue, 2005-02-08 at 14:37 +0100, Bernhard Fischer wrote:
> Sorry to address you..
> 
> Why don't you place the DEBUG #ifdefs like below thus saving a couple of
> IMHO unneeded instructions?
> Just curious, but TIA for clarification.

That block of code is pretty much copied directly from ether.c.  I don't
see why I couldn't add in what you are have suggested, but I am not sure
if it really that big a deal.

-tduffy

> >diff -Nur net-tools-1.60/lib/ib.c net-tools-1.60-ib/lib/ib.c
> >--- net-tools-1.60/lib/ib.c	1969-12-31 16:00:00.000000000 -0800
> >+++ net-tools-1.60-ib/lib/ib.c	2005-02-07 12:55:04.635559244 -0800
> [snip]
> >+static int in_ib(char *bufp, struct sockaddr *sap)
> [snip]
> >+    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 == ':') {
> +>+#ifdef DEBUG
> >+	    if (i == INFINIBAND_ALEN) {
> ->+#ifdef DEBUG
> >+		fprintf(stderr, _("in_ib(%s): trailing : ignored!\n"),
> >+			orig)
> ->+#endif
> >+		    ;		/* nothing */
> >+	    }
> +>+#endif
> >+	    bufp++;
> >+	}
> >+    }
> >+
> +>+#ifdef DEBUG
> >+    /* 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);
> >+}

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20050208/a2d7f9ba/attachment.sig>


More information about the general mailing list