mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
2.9 KiB
119 lines
2.9 KiB
/*++
|
|
|
|
Copyright (c) 1991 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
aarp.h
|
|
|
|
Abstract:
|
|
|
|
header file for aarp.
|
|
|
|
Author:
|
|
|
|
Garth Conboy Initial Coding
|
|
Nikhil Kamkolkar Rewritten for microsoft coding style, mp-safe
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
#define GetRandom(min, max) (((long)RandomNumber() % \
|
|
(long)(((max+1) - (min))) + (min)))
|
|
|
|
|
|
// AARP hardware types:
|
|
#define AARP_ETHERNETHARDWARETYPE 1
|
|
#define AARP_TOKENRINGHARDWARETYPE 2
|
|
|
|
#define AARP_MAXIMUMHARDWAREADDRESSLENGTH (MAXIMUM_HARDWAREADDRESSLENGTH)
|
|
#define AARP_MINIMUMHARDWAREADDRESSLENGTH 1
|
|
|
|
#define AARP_APPLETALKPROTOCOLTYPE 0x809B
|
|
|
|
// Packet sizes.
|
|
#define MAXIMUM_AARPDATASIZE 28 // Var fields... Enet is max
|
|
#define MINIMUM_AARPDATASIZE 28
|
|
#define MAXIMUM_AARPPACKETSIZE (MAXIMUM_HEADERLENGTH + \
|
|
MAXIMUM_AARPDATASIZE)
|
|
|
|
// AARP offsets (skipping Link/Hardware headers):
|
|
#define AARP_HARDWARETYPEOFFSET 0
|
|
#define AARP_PROTOCOLTYPEOFFSET 2
|
|
#define AARP_HARDWARELENGTHOFFSET 4
|
|
#define AARP_PROTOCOLLENGTHOFFSET 5
|
|
#define AARP_COMMANDOFFSET 6
|
|
#define AARP_SOURCEADDRESSOFFSET 8
|
|
|
|
// AARP Command types:
|
|
#define AARP_REQUEST 1
|
|
#define AARP_RESPONSE 2
|
|
#define AARP_PROBE 3
|
|
|
|
//
|
|
// Suposed to be (for AppleTalk phase II) 10 * 1/5 seconds... but we'll be
|
|
// a little more patient.
|
|
//
|
|
|
|
#define AARP_PROBETIMERINHUNDRETHS 20
|
|
#define NUMBER_OFAARPPROBES 15
|
|
|
|
#define OFFCABLE_MASK 0x0F
|
|
#define AARP_PROTOCOLADDRESSLENGTH 4
|
|
|
|
|
|
#define BUILD_AARPPROBE(Port,hardwareLength,Node,PacketLength) \
|
|
BuildAarpPacket( \
|
|
Port, \
|
|
AARP_PROBE, \
|
|
hardwareLength, \
|
|
GET_PORTDESCRIPTOR(Port)->MyAddress, \
|
|
Node, \
|
|
zeros, \
|
|
Node, \
|
|
NULL, \
|
|
NULL, \
|
|
0, \
|
|
PacketLength);
|
|
|
|
|
|
|
|
|
|
#define BUILD_AARPRESPONSE(Port,hardwareLength,hardwareAddress, \
|
|
RoutingInfo,RoutingInfoLength,SourceNode, \
|
|
destinationNode,PacketLength) \
|
|
\
|
|
BuildAarpPacket( \
|
|
Port, \
|
|
AARP_RESPONSE, \
|
|
hardwareLength, \
|
|
GET_PORTDESCRIPTOR(Port)->MyAddress, \
|
|
SourceNode, \
|
|
hardwareAddress, \
|
|
destinationNode, \
|
|
hardwareAddress, \
|
|
RoutingInfo, \
|
|
RoutingInfoLength, \
|
|
PacketLength);
|
|
|
|
#define BUILD_AARPREQUEST(Port,hardwareLength,SourceNode, \
|
|
destinationNode,PacketLength ) \
|
|
\
|
|
BuildAarpPacket( \
|
|
Port, \
|
|
AARP_REQUEST, \
|
|
hardwareLength, \
|
|
GET_PORTDESCRIPTOR(Port)->MyAddress, \
|
|
SourceNode, \
|
|
zeros, \
|
|
destinationNode, \
|
|
NULL, \
|
|
NULL, \
|
|
0, \
|
|
PacketLength);
|
|
|
|
|
|
|
|
|