diff options
author | jardin <jardin> | 2003-12-23 09:09:43 +0100 |
---|---|---|
committer | jardin <jardin> | 2003-12-23 09:09:43 +0100 |
commit | eb5d44eb8dcf25a1b328e57d1eabb1f89e3bc59b (patch) | |
tree | 2973e8563fcbd4a8cf901d211ff4f8de00c36381 /isisd/isis_constants.h | |
parent | Reorder free(f); unlink(f); to unlink before freeing. (diff) | |
download | frr-eb5d44eb8dcf25a1b328e57d1eabb1f89e3bc59b.tar.xz frr-eb5d44eb8dcf25a1b328e57d1eabb1f89e3bc59b.zip |
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 000000000..c5b59aa30 --- /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 */ + + + + + + + + |