diff options
| author | jardin <jardin> | 2003-12-23 08:09:43 +0000 | 
|---|---|---|
| committer | jardin <jardin> | 2003-12-23 08:09:43 +0000 | 
| commit | eb5d44eb8dcf25a1b328e57d1eabb1f89e3bc59b (patch) | |
| tree | 2973e8563fcbd4a8cf901d211ff4f8de00c36381 /isisd/isis_constants.h | |
| parent | 3dbf99698a3be2e920871c3127ea089e061a127c (diff) | |
Initial revision
Diffstat (limited to 'isisd/isis_constants.h')
| -rw-r--r-- | isisd/isis_constants.h | 151 | 
1 files changed, 151 insertions, 0 deletions
diff --git a/isisd/isis_constants.h b/isisd/isis_constants.h new file mode 100644 index 0000000000..c5b59aa30b --- /dev/null +++ b/isisd/isis_constants.h @@ -0,0 +1,151 @@ +/* + * IS-IS Rout(e)ing protocol - isis_constants.h    + * + * Copyright (C) 2001,2002   Sampo Saaristo + *                           Tampere University of Technology       + *                           Institute of Communications Engineering + * + * This program is free software; you can redistribute it and/or modify it  + * under the terms of the GNU General Public Licenseas 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.,  + * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. + */ + +#ifndef ISIS_CONSTANTS_H +#define ISIS_CONSTANTS_H + +/* + * Architectural constant values from p. 35 of ISO/IEC 10589 + */  + +#define MAX_LINK_METRIC               63  +#define MAX_PATH_METRIC               1023 +#define ISO_SAP                       0xFE +#define INTRADOMAIN_ROUTEING_SELECTOR 0 +#define SEQUENCE_MODULUS              4294967296 +#define RECEIVE_LSP_BUFFER_SIZE       1492 + +/* + * implementation specific jitter values + */ + +#define IIH_JITTER                    25  /* % */ +#define MAX_AGE_JITTER                 5  /* % */ +#define MAX_LSP_GEN_JITTER             5  /* % */ +#define CSNP_JITTER                   10  /* % */ +#define PSNP_JITTER                   10  /* % */ + +#define RANDOM_SPREAD           100000.0 + +/* + * Default values + * ISO - 10589 + * Section 7.3.21 - Parameters + */ +#define MAX_AGE                       1200 +#define ZERO_AGE_LIFETIME             60 +#define MAX_LSP_GEN_INTERVAL          900 +#define MIN_LSP_GEN_INTERVAL          30 +#define MIN_LSP_TRANS_INTERVAL        5 +#define ISIS_MIN_LSP_LIFETIME         380 +#define CSNP_INTERVAL                 10 +#define PSNP_INTERVAL                 2 +#define ISIS_MAX_PATH_SPLITS          3 + +#define ISIS_LEVELS                   2 +#define ISIS_LEVEL1                   1 +#define ISIS_LEVEL2                   2 + +#define HELLO_INTERVAL                1 +#define HELLO_MINIMAL HELLO_INTERVAL +#define HELLO_MULTIPLIER              3 +#define DEFAULT_PRIORITY              64 +/* different vendors implement different values 5-10 on average */ +#define LSP_GEN_INTERVAL_DEFAULT      10  +#define LSP_INTERVAL                  33  /* msecs */ +#define DEFAULT_CIRCUIT_METRICS 10 +#define METRICS_UNSUPPORTED 0x80 +#define PERIODIC_SPF_INTERVAL         60 /* at the top of my head */ +#define MINIMUM_SPF_INTERVAL           5 /* .. same here          */  + +/* + * NLPID values + */ +#define NLPID_IP   204 +#define NLPID_IPV6 142 + +/* + * Return values for functions + */ +#define ISIS_OK       0 +#define ISIS_WARNING  1 +#define ISIS_ERROR    2 +#define ISIS_CRITICAL 3 + +/* + * IS-IS Circuit Types + */ + +#define IS_LEVEL_1       1 +#define IS_LEVEL_2       2 +#define IS_LEVEL_1_AND_2 3 + +#define SNPA_ADDRSTRLEN 18 +#define ISIS_SYS_ID_LEN  6 +#define SYSID_STRLEN    24 + +/* + * LSP bit masks + */ +#define LSPBIT_P   0x80 +#define LSPBIT_ATT 0x78 +#define LSPBIT_OL  0x04 +#define LSPBIT_IST 0x03 + +/* + * LSP bit masking macros + * taken from tcpdumps + * print-isoclns.c + */ + +#define ISIS_MASK_LSP_OL_BIT(x)            ((x)&0x4) +#define ISIS_MASK_LSP_IS_L1_BIT(x)         ((x)&0x1) +#define ISIS_MASK_LSP_IS_L2_BIT(x)         ((x)&0x2) +#define ISIS_MASK_LSP_PARTITION_BIT(x)     ((x)&0x80) +#define ISIS_MASK_LSP_ATT_BITS(x)          ((x)&0x78) +#define ISIS_MASK_LSP_ATT_ERROR_BIT(x)     ((x)&0x40) +#define ISIS_MASK_LSP_ATT_EXPENSE_BIT(x)   ((x)&0x20) +#define ISIS_MASK_LSP_ATT_DELAY_BIT(x)     ((x)&0x10) +#define ISIS_MASK_LSP_ATT_DEFAULT_BIT(x)   ((x)&0x8) + +#define LLC_LEN 3 + +/* we need to be aware of the fact we are using ISO sized + * packets, using isomtu = mtu - LLC_LEN + */ +#define ISO_MTU(C) \ +          (C->circ_type==CIRCUIT_T_BROADCAST) ? \ +          (C->interface->mtu - LLC_LEN) : (C->interface->mtu) + +#ifndef ETH_ALEN +#define ETH_ALEN 6 +#endif + +#endif  /* ISIS_CONSTANTS_H */ + + + + + + + +  | 
