145 lines
4.3 KiB
C
145 lines
4.3 KiB
C
/*
|
|
* Copyright 1989 Silicon Graphics, Inc. All rights reserved.
|
|
*
|
|
* Ethernet vendor name table.
|
|
* (See RFC-1060 for a more complete list.; 1700 as of 8/96)
|
|
*/
|
|
#include "index.h"
|
|
#include "protocols/ether.h"
|
|
|
|
static struct {
|
|
unsigned char code[3];
|
|
char *abbrev;
|
|
} vendors[] = {
|
|
{ {0x00,0x00,0x0C}, "Cisco" },
|
|
{ {0x00,0x00,0x0E}, "Fujitsu" },
|
|
{ {0x00,0x00,0x0F}, "NeXT" },
|
|
{ {0x00,0x00,0x10}, "Sytek" },
|
|
{ {0x00,0x00,0x1D}, "Cabletron" },
|
|
{ {0x00,0x00,0x20}, "DIAB" },
|
|
{ {0x00,0x00,0x22}, "VisualTech" },
|
|
{ {0x00,0x00,0x2A}, "TRW" },
|
|
{ {0x00,0x00,0x32}, "GPT Limited" },
|
|
{ {0x00,0x00,0x5A}, "S&Koch" },
|
|
{ {0x00,0x00,0x5E}, "IANA" },
|
|
{ {0x00,0x00,0x65}, "Network General" },
|
|
{ {0x00,0x00,0x6B}, "MIPS" },
|
|
{ {0x00,0x00,0x77}, "MIPS" },
|
|
{ {0x00,0x00,0x7A}, "Ardent" },
|
|
{ {0x00,0x00,0x89}, "Cayman" },
|
|
{ {0x00,0x00,0x93}, "Proteon" },
|
|
{ {0x00,0x00,0x9F}, "Ameristar" },
|
|
{ {0x00,0x00,0xA2}, "Wellfleet" },
|
|
{ {0x00,0x00,0xA3}, "Network Application Technology" },
|
|
{ {0x00,0x00,0xA7}, "NCD" },
|
|
{ {0x00,0x00,0xA9}, "Network Systems" },
|
|
{ {0x00,0x00,0xAA}, "Xerox" },
|
|
{ {0x00,0x00,0xB3}, "CIMLinc" },
|
|
{ {0x00,0x00,0xB7}, "Dove" },
|
|
{ {0x00,0x00,0xBC}, "Allen-Brad" },
|
|
{ {0x00,0x00,0xC0}, "Western Digital" },
|
|
{ {0x00,0x00,0xC6}, "Hewlett Packard" },
|
|
{ {0x00,0x00,0xC8}, "Altos" },
|
|
{ {0x00,0x00,0xC9}, "Emulex" },
|
|
{ {0x00,0x00,0xD7}, "Dartmouth" },
|
|
{ {0x00,0x00,0xD8}, "PS2" },
|
|
{ {0x00,0x00,0xDD}, "Gould" },
|
|
{ {0x00,0x00,0xDE}, "Unigraph" },
|
|
{ {0x00,0x00,0xE2}, "Acer" },
|
|
{ {0x00,0x00,0xEF}, "Alantec" },
|
|
{ {0x00,0x00,0xFD}, "Orion" },
|
|
{ {0x00,0x01,0x02}, "BBN" },
|
|
{ {0x00,0x17,0x00}, "Kabel" },
|
|
{ {0x00,0x20,0xAF}, "3COM" },
|
|
{ {0x00,0x80,0x19}, "Dayna" },
|
|
{ {0x00,0x80,0x2D}, "Xylogics" },
|
|
{ {0x00,0x80,0x64}, "Wyse Technology" },
|
|
{ {0x00,0x80,0x8C}, "Frontier" },
|
|
{ {0x00,0x80,0xC2}, "IEEE 802.1 Committee" },
|
|
{ {0x00,0x80,0xD3}, "Shiva" },
|
|
{ {0x00,0xAA,0x00}, "Intel" },
|
|
{ {0x00,0xDD,0x00}, "Ung-Bass" },
|
|
{ {0x00,0xDD,0x01}, "Ung-Bass" },
|
|
{ {0x01,0x00,0x5E}, "IP-mcast" },
|
|
{ {0x01,0x80,0xC2}, "SMT" },
|
|
{ {0x02,0x04,0x06}, "BBN" },
|
|
{ {0x02,0x07,0x01}, "Interlan" },
|
|
{ {0x02,0x60,0x86}, "Satelcom" },
|
|
{ {0x02,0x60,0x8C}, "3Com" },
|
|
{ {0x02,0xCF,0x1F}, "CMC" },
|
|
{ {0x08,0x00,0x02}, "3Com" },
|
|
{ {0x08,0x00,0x03}, "ACC" },
|
|
{ {0x08,0x00,0x05}, "Symbolics" },
|
|
{ {0x08,0x00,0x08}, "BBN" },
|
|
{ {0x08,0x00,0x09}, "H-P" },
|
|
{ {0x08,0x00,0x0A}, "Nestar Systems" },
|
|
{ {0x08,0x00,0x0B}, "Unisys" },
|
|
{ {0x08,0x00,0x10}, "AT&T" },
|
|
{ {0x08,0x00,0x11}, "Tektronix" },
|
|
{ {0x08,0x00,0x14}, "Excelan" },
|
|
{ {0x08,0x00,0x17}, "NSC" },
|
|
{ {0x08,0x00,0x1A}, "D-G" },
|
|
{ {0x08,0x00,0x1B}, "D-G" },
|
|
{ {0x08,0x00,0x1E}, "Apollo" },
|
|
{ {0x08,0x00,0x20}, "Sun" },
|
|
{ {0x08,0x00,0x22}, "NBI" },
|
|
{ {0x08,0x00,0x25}, "CDC" },
|
|
{ {0x08,0x00,0x26}, "Norsk Data (Nord)" },
|
|
{ {0x08,0x00,0x27}, "PCS Computer Systems GmbH" },
|
|
{ {0x08,0x00,0x28}, "TI" },
|
|
{ {0x08,0x00,0x2B}, "DEC" },
|
|
{ {0x08,0x00,0x2E}, "Metaphor" },
|
|
{ {0x08,0x00,0x2F}, "Prime" },
|
|
{ {0x08,0x00,0x36}, "Intergraph" },
|
|
{ {0x08,0x00,0x37}, "Fujitsu" },
|
|
{ {0x08,0x00,0x38}, "Bull" },
|
|
{ {0x08,0x00,0x39}, "Spider Systems" },
|
|
{ {0x08,0x00,0x41}, "DCA" },
|
|
{ {0x08,0x00,0x45}, "Xylogics" },
|
|
{ {0x08,0x00,0x46}, "Sony" },
|
|
{ {0x08,0x00,0x47}, "Sequent" },
|
|
{ {0x08,0x00,0x49}, "Univation" },
|
|
{ {0x08,0x00,0x4C}, "Encore" },
|
|
{ {0x08,0x00,0x4E}, "BICC" },
|
|
{ {0x08,0x00,0x56}, "Stanford U." },
|
|
{ {0x08,0x00,0x5A}, "IBM" },
|
|
{ {0x08,0x00,0x67}, "Comdesign" },
|
|
{ {0x08,0x00,0x68}, "Ridge" },
|
|
{ {0x08,0x00,0x69}, "SGI" },
|
|
{ {0x08,0x00,0x6E}, "Excelan/Concurrent" },
|
|
{ {0x08,0x00,0x75}, "DDE" },
|
|
{ {0x08,0x00,0x7C}, "Vitalink" },
|
|
{ {0x08,0x00,0x80}, "XIOS" },
|
|
{ {0x08,0x00,0x86}, "Imagen" },
|
|
{ {0x08,0x00,0x87}, "Xyplex" },
|
|
{ {0x08,0x00,0x89}, "Kinetics" },
|
|
{ {0x08,0x00,0x8B}, "Pyramid" },
|
|
{ {0x08,0x00,0x8D}, "XyVision" },
|
|
{ {0x08,0x00,0x90}, "Retix" },
|
|
{ {0x09,0x00,0x2B}, "DEC-LAT" },
|
|
{ {0x80,0x00,0x10}, "AT&T" }, /* illicit, transposed 0x08 */
|
|
{ {0xAA,0x00,0x03}, "DEC" },
|
|
{ {0xAA,0x00,0x04}, "DEC" },
|
|
{ {0xAB,0x00,0x00}, "DECnet" },
|
|
};
|
|
#define NVENDORS (sizeof vendors / sizeof vendors[0])
|
|
|
|
char *
|
|
ether_vendor(struct etheraddr *ea)
|
|
{
|
|
static Index *vendorcodes;
|
|
|
|
if (vendorcodes == 0) {
|
|
int i;
|
|
|
|
vendorcodes = index(NVENDORS, 3, 0);
|
|
for (i = 0; i < NVENDORS; i++) {
|
|
in_enter(vendorcodes, vendors[i].code,
|
|
vendors[i].abbrev);
|
|
}
|
|
}
|
|
return in_match(vendorcodes, ea->ea_vec);
|
|
}
|
|
|
|
|