windows-nt/Source/XPSP1/NT/net/rras/ipx/ipxwan/packet.h
2020-09-26 16:20:57 +08:00

156 lines
3.8 KiB
C

/*******************************************************************/
/* Copyright(c) 1993 Microsoft Corporation */
/*******************************************************************/
//***
//
// Filename: packet.h
//
// Description: Contains general definitions for the ipx and ipxwan packets
//
// Author: Stefan Solomon (stefans) February 6, 1996.
//
// Revision History:
//
//***
#ifndef _PACKET_
#define _PACKET_
// IPXWAN Packets Format:
//
// IPX header - fixed length
// IPXWAN header - fixed length
// IPXWAN option 1 - fixed length header + variable length data
// ....
// IPXWAN option n
//*** Socket Numbers
#undef IPXWAN_SOCKET
#define IPXWAN_SOCKET (USHORT)0x9004
//*** IPXWAN Confidence Identifier
#define IPXWAN_CONFIDENCE_ID "WASM" // 0x5741534D
//*** IPX Packet Exchange Type (encapsulating the IPXWAN packet)
#define IPX_PACKET_EXCHANGE_TYPE 4
//*** Offsets into the IPX header
#define IPXH_HDRSIZE 30 // Size of the IPX header
#define IPXH_CHECKSUM 0 // Checksum
#define IPXH_LENGTH 2 // Length
#define IPXH_XPORTCTL 4 // Transport Control
#define IPXH_PKTTYPE 5 // Packet Type
#define IPXH_DESTADDR 6 // Dest. Address (Total)
#define IPXH_DESTNET 6 // Dest. Network Address
#define IPXH_DESTNODE 10 // Dest. Node Address
#define IPXH_DESTSOCK 16 // Dest. Socket Number
#define IPXH_SRCADDR 18 // Source Address (Total)
#define IPXH_SRCNET 18 // Source Network Address
#define IPXH_SRCNODE 22 // Source Node Address
#define IPXH_SRCSOCK 28 // Source Socket Number
#define IPX_NET_LEN 4
#define IPX_NODE_LEN 6
//*** Offsets of the IPXWAN header
#define IPXWAN_HDRSIZE 11
#define WIDENTIFIER 0
#define WPACKET_TYPE 4
#define WNODE_ID 5
#define WSEQUENCE_NUMBER 9
#define WNUM_OPTIONS 10
// packet types
#define TIMER_REQUEST 0
#define TIMER_RESPONSE 1
#define INFORMATION_REQUEST 2
#define INFORMATION_RESPONSE 3
#define NAK 0xFF
// IPXWAN option format
//
// IPXWAN option header - fixed length
// IPXWAN option data - variable length
//*** Offsets of the IPXWAN Option header
#define OPTION_HDRSIZE 4
#define WOPTION_NUMBER 0 // identifies a particular option, see list below
#define WACCEPT_OPTION 1 // see below
#define WOPTION_DATA_LEN 2 // length of the option data part
#define WOPTION_DATA 4
// accept option definitions
#define NO 0
#define YES 1
#define NOT_APPLICABLE 3
// option definitions
//*** Routing Type Option ***
#define ROUTING_TYPE_OPTION 0 // option number
#define ROUTING_TYPE_DATA_LEN 1
// values of the data part
#define NUMBERED_RIP_ROUTING_TYPE 0
#define NLSP_ROUTING_TYPE 1
#define UNNUMBERED_RIP_ROUTING_TYPE 2
#define ON_DEMAND_ROUTING_TYPE 3
#define WORKSTATION_ROUTING_TYPE 4 // client-router connection
//*** Extended Node Id Option ***
#define EXTENDED_NODE_ID_OPTION 4
#define EXTENDED_NODE_ID_DATA_LEN 4
//*** RIP/SAP Info Exchange Option ***
#define RIP_SAP_INFO_EXCHANGE_OPTION 1
#define RIP_SAP_INFO_EXCHANGE_DATA_LEN 54
// values
// offsets in the data part (from the beginning of the option header)
#define WAN_LINK_DELAY 4
#define COMMON_NETWORK_NUMBER 6
#define ROUTER_NAME 10
//*** Node Number Option ***
#define NODE_NUMBER_OPTION 5
#define NODE_NUMBER_DATA_LEN 6
// values
// IPX node number to be used by the client on a client-router connection.
//*** Pad Option ***
#define PAD_OPTION 0xFF
// Unsupported Options
#define NLSP_INFORMATION_OPTION 2
#define NLSP_RAW_THROUGHPUT_DATA_OPTION 3
#define COMPRESSION_OPTION 0x80
//*** Packet Lengths ***
#define TIMER_REQUEST_PACKET_LENGTH 576
#define MAX_IPXWAN_PACKET_LEN TIMER_REQUEST_PACKET_LENGTH
#endif