|  | /**************************************************************************** | 
|  | *******                                                              ******* | 
|  | *******                 R O U T E     H E A D E R | 
|  | *******                                                              ******* | 
|  | **************************************************************************** | 
|  |  | 
|  | Author  : Ian Nandhra / Jeremy Rolls | 
|  | Date    : | 
|  |  | 
|  | * | 
|  | *  (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK. | 
|  | * | 
|  | *      This program is free software; you can redistribute it and/or modify | 
|  | *      it under the terms of the GNU General Public License as published by | 
|  | *      the Free Software Foundation; either version 2 of the License, or | 
|  | *      (at your option) any later version. | 
|  | * | 
|  | *      This program is distributed in the hope that it will be useful, | 
|  | *      but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | *      GNU General Public License for more details. | 
|  | * | 
|  | *      You should have received a copy of the GNU General Public License | 
|  | *      along with this program; if not, write to the Free Software | 
|  | *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 
|  |  | 
|  | Version : 0.01 | 
|  |  | 
|  |  | 
|  | Mods | 
|  | ---------------------------------------------------------------------------- | 
|  | Date     By                Description | 
|  | ---------------------------------------------------------------------------- | 
|  |  | 
|  | ***************************************************************************/ | 
|  |  | 
|  | #ifndef _route_h | 
|  | #define _route_h | 
|  |  | 
|  | #ifdef SCCS_LABELS | 
|  | #ifndef lint | 
|  | /* static char *_rio_route_h_sccs = "@(#)route.h	1.3"; */ | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #define MAX_LINKS 4 | 
|  | #define MAX_NODES 17                          /* Maximum nodes in a subnet */ | 
|  | #define NODE_BYTES ((MAX_NODES / 8) + 1)      /* Number of bytes needed for | 
|  | 1 bit per node */ | 
|  | #define ROUTE_DATA_SIZE  (NODE_BYTES + 2)     /* Number of bytes for complete | 
|  | info about cost etc. */ | 
|  | #define ROUTES_PER_PACKET ((PKT_MAX_DATA_LEN -2)/ ROUTE_DATA_SIZE) | 
|  | /* Number of nodes we can squeeze | 
|  | into one packet */ | 
|  | #define MAX_TOPOLOGY_PACKETS (MAX_NODES / ROUTES_PER_PACKET + 1) | 
|  | /************************************************ | 
|  | * Define the types of command for the ROUTE RUP. | 
|  | ************************************************/ | 
|  | #define ROUTE_REQUEST    0                    /* Request an ID */ | 
|  | #define ROUTE_FOAD       1                    /* Kill the RTA */ | 
|  | #define ROUTE_ALREADY    2                    /* ID given already */ | 
|  | #define ROUTE_USED       3                    /* All ID's used */ | 
|  | #define ROUTE_ALLOCATE   4                    /* Here it is */ | 
|  | #define ROUTE_REQ_TOP    5                    /* I bet you didn't expect.... | 
|  | the Topological Inquisition */ | 
|  | #define ROUTE_TOPOLOGY   6                    /* Topology request answered FD */ | 
|  | /******************************************************************* | 
|  | * Define the Route Map Structure | 
|  | * | 
|  | * The route map gives a pointer to a Link Structure to use. | 
|  | * This allows Disconnected Links to be checked quickly | 
|  | ******************************************************************/ | 
|  | typedef struct COST_ROUTE COST_ROUTE; | 
|  | struct COST_ROUTE { | 
|  | unsigned char cost;        /* Cost down this link */ | 
|  | unsigned char route[NODE_BYTES]; /* Nodes thorough this route */ | 
|  | } ; | 
|  |  | 
|  | typedef struct ROUTE_STR ROUTE_STR ; | 
|  | struct  ROUTE_STR { | 
|  | COST_ROUTE cost_route[MAX_LINKS]; | 
|  | /* cost / route for this link */ | 
|  | ushort favoured;          /* favoured link */ | 
|  | } ; | 
|  |  | 
|  |  | 
|  | #define NO_LINK            (short) 5      /* Link unattached */ | 
|  | #define ROUTE_NO_ID        (short) 100    /* No Id */ | 
|  | #define ROUTE_DISCONNECT   (ushort) 0xff  /* Not connected */ | 
|  | #define ROUTE_INTERCONNECT (ushort) 0x40  /* Sub-net interconnect */ | 
|  |  | 
|  |  | 
|  | #define SYNC_RUP         (ushort) 255 | 
|  | #define COMMAND_RUP      (ushort) 254 | 
|  | #define ERROR_RUP        (ushort) 253 | 
|  | #define POLL_RUP         (ushort) 252 | 
|  | #define BOOT_RUP         (ushort) 251 | 
|  | #define ROUTE_RUP        (ushort) 250 | 
|  | #define STATUS_RUP       (ushort) 249 | 
|  | #define POWER_RUP        (ushort) 248 | 
|  |  | 
|  | #define HIGHEST_RUP      (ushort) 255   /* Set to Top one */ | 
|  | #define LOWEST_RUP       (ushort) 248   /* Set to bottom one */ | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /*********** end of file ***********/ | 
|  |  |