|
|
1.1 ! root 1: .TH ETHERNET 4 ! 2: .CT 2 comm_mach ! 3: .SH NAME ! 4: ethernet \(mi Ethernet interface ! 5: .SH SYNOPSIS ! 6: .B #include <sys/enio.h> ! 7: .br ! 8: .B #include <sys/ethernet.h> ! 9: .SH DESCRIPTION ! 10: There are drivers for several hardware interfaces to Ethernet. ! 11: All have the same programming interface. ! 12: .PP ! 13: There are eight software channels for each hardware device. ! 14: A channel sends and receives packets ! 15: for a single Ethernet interface; ! 16: hence eight protocols ! 17: may be used independently on the same device. ! 18: If a channel is open, ! 19: it may not be opened again. ! 20: .PP ! 21: .I Read ! 22: and ! 23: .I write ! 24: deal in Ethernet packets, ! 25: consisting of a header ! 26: followed by no less than 46 ! 27: but no more than 1500 bytes of data. ! 28: The header, ! 29: defined in ! 30: .BR <sys/ethernet.h> , ! 31: is as follows: ! 32: .LP ! 33: .EX ! 34: #define ETHERALEN 6 /* bytes in an ethernet address */ ! 35: ! 36: struct etherpup { ! 37: unsigned char dhost[ETHERALEN]; /* destination address */ ! 38: unsigned char shost[ETHERALEN]; /* source address */ ! 39: unsigned short type; /* protocol type */ ! 40: }; ! 41: .EE ! 42: .LP ! 43: The protocol type is in the network's byte order, ! 44: most significant byte first. ! 45: .PP ! 46: .I Read ! 47: on a channel returns at most one complete packet. ! 48: If only part of a packet fits in the ! 49: .I read ! 50: buffer, ! 51: successive reads return the remainder. ! 52: .I Write ! 53: should be given a single complete packet; ! 54: .B dhost ! 55: and ! 56: .B type ! 57: must be filled in. ! 58: The system supplies ! 59: .BR shost . ! 60: .PP ! 61: There are a few ! 62: .I ioctl ! 63: calls, ! 64: defined in ! 65: .BR <sys/enio.h> : ! 66: .TP "\w'ENIOTYPE 'u" ! 67: .B ENIOTYPE ! 68: The third argument ! 69: points to a short integer; ! 70: use that as the protocol type for this channel. ! 71: .TP ! 72: .B ENIOADDR ! 73: The third argument ! 74: points to a six-character buffer; ! 75: copy the hardware address of this interface there. ! 76: .PP ! 77: Minor device numbers ! 78: 0-7 ! 79: are the eight channels of the first hardware device ! 80: of a given type; ! 81: 8-15 are the second device, ! 82: and so on. ! 83: File names usually end in two digits, ! 84: like ! 85: .B /dev/il13 ! 86: for the fourth channel of the second Interlan device. ! 87: .SH FILES ! 88: .TF /dev/bna?? ! 89: .TP ! 90: .F /dev/il?? ! 91: Interlan NI1010A devices ! 92: .TP ! 93: .F /dev/qe?? ! 94: DEQNA devices ! 95: .TP ! 96: .F /dev/bna?? ! 97: DEBNA devices ! 98: .SH SEE ALSO ! 99: .IR internet (3), ! 100: .IR ipconfig (8) ! 101: .SH BUGS ! 102: The DEQNA driver ! 103: fills in the protocol type field ! 104: in transmitted packets; ! 105: other drivers don't.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.