home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / nwnet / root / usr / include / sys / ipxspx_diag.h / ipxspx_diag
Text File  |  1998-08-19  |  9KB  |  341 lines

  1. /*
  2.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  3.  *                                                                         
  4.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  5.  *                   SANTA CRUZ OPERATION INC.                             
  6.  *                                                                         
  7.  *   The copyright notice above does not evidence any actual or intended   
  8.  *   publication of such source code.                                      
  9.  */
  10.  
  11. /* $Novell-NWU: $Header: /proj6/ncps/nwu_top/nwnet/include/sys/ipxspx_diag.h,v 1.2 1996/04/05 21:56:11 vtag Exp $ */
  12. /*    Copyright (c) 1990, 1991, 1992, 1993 Novell, Inc. All Rights Reserved.    */
  13. /*    Copyright (c) 1984, 1985, 1986, 1987, 1988, 1989, 1990 Novell, Inc. All Rights Reserved.    */
  14. /*      All Rights Reserved      */
  15.  
  16. /*    THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Novell Inc.    */
  17. /*    The copyright notice above does not evidence any       */
  18. /*    actual or intended publication of such source code.    */
  19.  
  20. #ifndef _NET_NW_IPXSPX_DIAG_H  /* wrapper symbol for kernel use */
  21. #define _NET_NW_IPXSPX_DIAG_H  /* subject to change without notice */
  22.  
  23. #ident "@(#)ipxspx_diag.h    1.2"
  24.  
  25.  
  26. /*
  27.  * Copyright 1991, 1992 Novell, Inc. 
  28.  * All Rights Reserved.
  29.  *
  30.  * This work is subject to U.S. and International copyright laws and
  31.  * treaties.  No part of this work may be used, practiced, performed,
  32.  * copied, distributed, revised, modified, translated, abridged,
  33.  * condensed, expanded, collected, compiled, linked, recast,
  34.  * transformed or adapted without the prior written consent
  35.  * of Novell.  Any use or exploitation of this work without
  36.  * authorization could subject the perpetrator to criminal and
  37.  * civil liability.
  38.  *
  39.  */
  40.  
  41. #ifdef _KERNEL_HEADERS
  42. #include    <nwu/nwnet/include/sap.h>
  43. #else
  44. #include    <sys/sap.h>
  45. #endif /* _KERNEL_HEADERS */
  46.  
  47. /****************************************************
  48.  * IPX diagnostics structs and defines used in common
  49.  * with SPX diagnostics, applications, and daemons.
  50.  ****************************************************/
  51.  
  52. #define DIAGS_VER_MAJ 1
  53. #define DIAGS_VER_MIN 0
  54. #define MAX_EXCLUSIONS 80
  55.  
  56. /* IPX Configuration Request
  57.  * and exclusion list structures.
  58.  */
  59. typedef struct StructExclusionListEntry
  60. {    uint8    nodeAddress[6];
  61. } exclusionEntry_t;
  62.  
  63. typedef struct StructExclusionPacket
  64. {    uint8                exclusionCount;
  65.     exclusionEntry_t    exclList[MAX_EXCLUSIONS];
  66. } exclusionList_t;
  67.  
  68. typedef struct ipxConfigReq
  69. {    ipxHdr_t    header;
  70.     exclusionList_t        excludeList;
  71. } ipxConfigRequest_t;
  72.  
  73.  
  74. typedef struct structConfiguration
  75. {    uint8    majorVersion;
  76.     uint8    minorVersion;
  77.     uint16    spxDiagSock;
  78.     uint8    numberOfComponents;
  79.     uint8    componentStructure[IPX_MAX_PACKET_DATA - 5];
  80. } ipxConfiguration_t;
  81.  
  82. /* IPX Configuration Response
  83.  */
  84. typedef struct StructConfigurationResponse
  85. {    ipxHdr_t    header;
  86.     ipxConfiguration_t    config;
  87. } ipxConfigResponse_t;
  88.  
  89. #define MAX_LOCAL_NETWORKS 4
  90.  
  91. #define LAN_BOARD 0
  92. #define VIRTUAL_BOARD 1
  93. #define REDIRECTED_REMOTE_LINE 2
  94.  
  95. #define IPX_SPX_COMPONENT 0            /* spx active */
  96. #define BRIDGE_DRIVER_COMPONENT 1    /* vs shell */
  97. #define SHELL_DRIVER_COMPONENT 2    /* don't use PNW/NWU */
  98. #define SHELL_COMPONENT 3            /* don't use PNW/NWU */
  99. #define VAP_SHELL_COMPONENT 4        /* don't use PNW/NWU */
  100. #define EXTERNAL_BRIDGE 5            /* we route */
  101. #define INTERNAL_BRIDGE 6            /* we consume */
  102. #define BRIDGE_COMPONENT 5            /* we route */
  103. #define FILE_SERVER_COMPONENT 6
  104. #define NONDEDICATED_IPX_SPX_COMPONENT 7    /* don't use PNW/NWU */
  105. #define IPX_ONLY 8                    /* spx not active */
  106.  
  107. typedef struct structDriver
  108. {    uint8    localNetworkType;
  109.     uint8    network[4];
  110.     uint8    node[6];
  111. } lanDriver_t;
  112.  
  113. typedef struct structBridge
  114. {    uint8        numberOfNets;
  115.     lanDriver_t        drivers[MAX_LOCAL_NETWORKS];
  116. } bridgeDrivers_t;
  117.  
  118. /****************************************************
  119.  * SPX diagnostics structs and defines available for
  120.  * applications and daemons.
  121.  ****************************************************/
  122. /* IPX/SIPX component defines
  123.  */
  124. #define    IPXSPX_VERSION    0
  125. #define    IPXSPX_RTN_IPX_STATS    1
  126. #define    IPXSPX_RTN_SPX_STATS    2
  127. #define    IPXSPX_START_SEND    3
  128. #define    IPXSPX_ABORT_SEND    4
  129. #define    IPXSPX_START_PKT_CNT    5
  130. #define    IPXSPX_RTN_RCVD_PKT_CNT    6
  131.  
  132. #define IPX_MAJ_VER        4
  133. #define IPX_MIN_VER        10
  134. #define SPX_MAJ_VER        4
  135. #define SPX_MIN_VER        10
  136.  
  137. /* Bridge Driver component defines
  138.  */
  139. #define    BDRIVER_RTN_STATUS    0
  140. #define    BDRIVER_RTN_CONFIG    1
  141. #define    BDRIVER_RTN_DIAG_STATS    2
  142.  
  143. #define    BDRIVER_BOARD_RUNNING    0
  144. #define    BDRIVER_BOARD_NOEXIST    1
  145. #define    BDRIVER_BOARD_DEAD    2
  146.  
  147. /* Bridge component defines
  148.  */
  149. #define    BRIDGE_RTN_STATS    0
  150. #define    BRIDGE_RTN_LOCAL_TABLES    1
  151. #define    BRIDGE_RTN_ALL_KNOWN_NETS    2
  152. #define    BRIDGE_RTN_SPECIFIC_NET_INFO    3
  153. #define    BRIDGE_RTN_ALL_KNOWN_SERVERS    4
  154. #define    BRIDGE_RTN_SPECIFIC_SERVER_INFO    5
  155. #define    BRIDGE_RESET_LAN_BOARD    6
  156. #define    BRIDGE_REINIT_ROUTING_TABLES    7
  157.  
  158. typedef struct spxDiagRequest {
  159.     uint8    index;
  160.     uint8    type;
  161.     uint8    data[576 - 42 - 2];    /* union ? */
  162. } spxDiagReq_t;
  163.  
  164. typedef struct spxDiagResponse {
  165.     uint8    cCode;
  166.     uint8    interval[4];
  167.     uint8    data[576 - 42 - 5];    /* union ? */
  168. } spxDiagResp_t;
  169.  
  170. typedef struct structIpxStats
  171. {    uint8    sendPacketCount[4];
  172.     uint8    malformedPacketCount[2];
  173.     uint8    getECBRequestCount[4];
  174.     uint8    getECBFailureCount[4];
  175.     uint8    AESEventCount[4];
  176.     uint8    postponedAESEventCount[2];
  177.     uint8    maxConfiguredSocketsCount[2];
  178.     uint8    maxOpenSocketsCount[2];
  179.     uint8    openSocketFailureCount[2];
  180.     uint8    listenECBCount[4];
  181.     uint8    ECBCancelFailureCount[2];
  182.     uint8    findRouteFailureCount[2];
  183. } IpxStats_t;
  184.  
  185. typedef struct structSpxStats
  186. {    uint8    maxConnectionsCount[2];
  187.     uint8    maxUsedConnectionsCount[2];
  188.     uint8    establishConnectionRequest[2];
  189.     uint8    establishConnectionFailure[2];
  190.     uint8    listenConnectionRequestCount[2];
  191.     uint8    listenConnectionFailureCount[2];
  192.     uint8    sendPacketCount[4];
  193.     uint8    windowChokeCount[4];
  194.     uint8    badSendPacketCount[2];
  195.     uint8    sendFailureCount[2];
  196.     uint8    abortConnectionCount[2];
  197.     uint8    listenPacketCount[4];
  198.     uint8    badListenPacketCount[2];
  199.     uint8    incomingPacketCount[4];
  200.     uint8    badIncomingPacketCount[2];
  201.     uint8    suppressedPacketCount[2];
  202.     uint8    noSessionListenECBCount[2];
  203.     uint8    watchdogDestroySessionCount[2];
  204. } SpxStats_t;
  205.  
  206. typedef struct SPReq
  207. {
  208.     uint8    target[12];
  209.     uint8    immediateAddress[6];
  210.     uint16    numberOfPkts;
  211.     uint8    ticksPerInterval;
  212.     uint8    pktsPerInterval;
  213.     uint16    pktSize;
  214.     uint16    changeSize;
  215. } sendPktsRequest_t;
  216.  
  217. typedef struct StructDriverConf
  218. {
  219.     uint8    networkAddress[4];
  220.     uint8    nodeAddress[6];
  221.     uint8    LANMode;
  222.     uint8    nodeAddressType;
  223.     uint8    maxDataSize[2];
  224.     uint8    reserved1[2];
  225.     uint8    LANHardwareID;
  226.     uint8    transportTime[2];
  227.     uint8    reserved2[11];
  228.     uint8    majorVersion;
  229.     uint8    minorVersion;
  230.     uint8    ethernetFlagBits;
  231.     uint8    selectedConfiguration;
  232.     uint8    LANDescription[80];
  233.     uint8    IOAddress1[2];
  234.     uint8    IODecodeRange1[2];
  235.     uint8    IOAddress2[2];
  236.     uint8    IODecodeRange2[2];
  237.     uint8    memoryAddress1[3];
  238.     uint8    memoryDecodeRange1[2];
  239.     uint8    memoryAddress2[3];
  240.     uint8    memoryDecodeRange2[2];
  241.     uint8    interruptIsUsed1;
  242.     uint8    interruptLine1;
  243.     uint8    interruptIsUsed2;
  244.     uint8    interruptLine2;
  245.     uint8    DMAIsUsed1;
  246.     uint8    DMALine1;
  247.     uint8    DMAIsUsed2;
  248.     uint8    DMALine2;
  249.     uint8    microChannelFlagBits;
  250.     uint8    reserved3;
  251.     uint8    textDescription[80];
  252. } bDriverConfig_t;
  253.  
  254. typedef struct StructDriverStat
  255. {
  256.     uint8     driverVersion[2];
  257.     uint8     statisticsVersion[2];
  258.     uint8     totalTxPacketCount[4];
  259.     uint8     totalRxPacketCount[4];
  260.     uint8     noECBAvailableCount[2];
  261.     uint8     packetTxTooBigCount[2];
  262.     uint8     packetTxTooSmallCount[2];
  263.     uint8     packetRxOverflowCount[2];
  264.     uint8     packetRxTooBigCount[2];
  265.     uint8     packetRxTooSmallCount[2];
  266.     uint8     packetTxMiscErrorCount[2];
  267.     uint8     packetRxMiscErrorCount[2];
  268.     uint8     retryTxCount[2];
  269.     uint8     checksumErrorCount[2];
  270.     uint8     hardwareRxMismatchCount[2];
  271.     uint8     numberOfCustomVariables[2];
  272.     uint8     variableData[495];
  273. /*    uint8     variableData[1]; */
  274. } bDriverStats_t;
  275.  
  276. typedef struct StructRoutingInfo
  277. {    uint8    routerForwardingAddress[6];
  278.     uint8    routerBoardNumber;
  279.     uint8    reserved[2];
  280.     uint8    routeHops;
  281.     uint8    routeTime[2];
  282. } RoutingInfo_t;
  283.  
  284. typedef struct StructSpecificNetInfo
  285. {    uint8    networkAddress[4];
  286.     uint8    hopsToNet;
  287.     uint8    reservedA[7];
  288.     uint8    routeTimeToNet[2];
  289.     uint8    numberOfKnownRouters[2];
  290.     RoutingInfo_t    routingInfo[1];
  291.     /* was MAX_ROUTES, but we only know best in 3.11 ?? */
  292. } SpecificNetworkInfo_t;
  293.  
  294. typedef struct strSrvrInfo
  295. {    uint8    serverType[2];
  296.     uint8    serverName[NWMAX_SERVER_NAME_LENGTH];
  297. } serverInfo_t;
  298.  
  299. typedef struct structAllKnownServers
  300. {    uint8    numberOfServers[2];
  301.     serverInfo_t    serverInfo[10];
  302. } allKnownServers_t;
  303.  
  304. typedef struct StructRouteSourceInfo
  305. {    uint8    routeSourceAddress[6];
  306.     uint8    routeHopsToSource[2];
  307.     uint8    reserved[2];
  308. } routeSourceInfo_t;
  309.  
  310. typedef struct {
  311.         uint8    serverType[2];
  312.         char    serverName[NWMAX_SERVER_NAME_LENGTH]; 
  313.         uint8    network[4];
  314.         uint8    node[6];
  315.         uint8    socket[2];
  316.         uint8    hops[2];
  317. } sapServerInfo_t;
  318.  
  319. typedef struct StrSpecSrvrInfo
  320. {/* serverInfo_t    serverInfo;
  321.     uint32    serverNet;
  322.     uint8    serverNode[IPX_NODE_SIZE];
  323.     uint16    serverSock;
  324.     uint16    hopsToServer;
  325.     */
  326.     sapServerInfo_t    sapId;
  327.     uint8    reserved1[2];
  328.     uint8    numberOfRoutes[2];
  329.     routeSourceInfo_t    routeSourceInfo[1];
  330.     /* was MAX_ROUTES, but we only know best in 3.11 ?? */
  331. } specificServerInfo_t;
  332.  
  333. /* This should have been in sap.h (sap_app.h)
  334.  */
  335. typedef struct {
  336.     uint16    replyType;
  337.     SAP_ID_PACKET    sapId[SAP_MAX_UPDATE];
  338. } sapUpdatePacket_t;
  339.  
  340. #endif /* _NET_NW_IPXSPX_DIAG_H */
  341.