Annotation of embedaddon/quagga/isisd/isis_constants.h, revision 1.1
1.1 ! misho 1: /*
! 2: * IS-IS Rout(e)ing protocol - isis_constants.h
! 3: *
! 4: * Copyright (C) 2001,2002 Sampo Saaristo
! 5: * Tampere University of Technology
! 6: * Institute of Communications Engineering
! 7: *
! 8: * This program is free software; you can redistribute it and/or modify it
! 9: * under the terms of the GNU General Public Licenseas published by the Free
! 10: * Software Foundation; either version 2 of the License, or (at your option)
! 11: * any later version.
! 12: *
! 13: * This program is distributed in the hope that it will be useful,but WITHOUT
! 14: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
! 15: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
! 16: * more details.
! 17:
! 18: * You should have received a copy of the GNU General Public License along
! 19: * with this program; if not, write to the Free Software Foundation, Inc.,
! 20: * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! 21: */
! 22:
! 23: #ifndef ISIS_CONSTANTS_H
! 24: #define ISIS_CONSTANTS_H
! 25:
! 26: /*
! 27: * Architectural constant values from p. 35 of ISO/IEC 10589
! 28: */
! 29:
! 30: #define MAX_LINK_METRIC 63
! 31: #define MAX_PATH_METRIC 1023
! 32: #define ISO_SAP 0xFE
! 33: #define INTRADOMAIN_ROUTEING_SELECTOR 0
! 34: #define SEQUENCE_MODULUS 4294967296
! 35: #define RECEIVE_LSP_BUFFER_SIZE 1492
! 36:
! 37: /*
! 38: * implementation specific jitter values
! 39: */
! 40:
! 41: #define IIH_JITTER 25 /* % */
! 42: #define MAX_AGE_JITTER 5 /* % */
! 43: #define MAX_LSP_GEN_JITTER 5 /* % */
! 44: #define CSNP_JITTER 10 /* % */
! 45: #define PSNP_JITTER 10 /* % */
! 46:
! 47: #define RANDOM_SPREAD 100000.0
! 48:
! 49: /*
! 50: * Default values
! 51: * ISO - 10589
! 52: * Section 7.3.21 - Parameters
! 53: */
! 54: #define MAX_AGE 1200
! 55: #define ZERO_AGE_LIFETIME 60
! 56: #define MAX_LSP_GEN_INTERVAL 900
! 57: #define MIN_LSP_GEN_INTERVAL 30
! 58: #define MIN_LSP_TRANS_INTERVAL 5
! 59: #define ISIS_MIN_LSP_LIFETIME 380
! 60: #define CSNP_INTERVAL 10
! 61: #define PSNP_INTERVAL 2
! 62: #define ISIS_MAX_PATH_SPLITS 3
! 63:
! 64: #define ISIS_LEVELS 2
! 65: #define ISIS_LEVEL1 1
! 66: #define ISIS_LEVEL2 2
! 67:
! 68: #define HELLO_INTERVAL 10
! 69: #define HELLO_MINIMAL HELLO_INTERVAL
! 70: #define HELLO_MULTIPLIER 3
! 71: #define DEFAULT_PRIORITY 64
! 72: /* different vendors implement different values 5-10 on average */
! 73: #define LSP_GEN_INTERVAL_DEFAULT 10
! 74: #define LSP_INTERVAL 33 /* msecs */
! 75: #define DEFAULT_CIRCUIT_METRICS 10
! 76: #define METRICS_UNSUPPORTED 0x80
! 77: #define PERIODIC_SPF_INTERVAL 60 /* at the top of my head */
! 78: #define MINIMUM_SPF_INTERVAL 5 /* .. same here */
! 79:
! 80: /*
! 81: * NLPID values
! 82: */
! 83: #define NLPID_IP 204
! 84: #define NLPID_IPV6 142
! 85: #define NLPID_SNAP 128
! 86: #define NLPID_CLNP 129
! 87: #define NLPID_ESIS 130
! 88:
! 89: /*
! 90: * Return values for functions
! 91: */
! 92: #define ISIS_OK 0
! 93: #define ISIS_WARNING 1
! 94: #define ISIS_ERROR 2
! 95: #define ISIS_CRITICAL 3
! 96:
! 97: /*
! 98: * IS-IS Circuit Types
! 99: */
! 100:
! 101: #define IS_LEVEL_1 1
! 102: #define IS_LEVEL_2 2
! 103: #define IS_LEVEL_1_AND_2 3
! 104:
! 105: #define SNPA_ADDRSTRLEN 18
! 106: #define ISIS_SYS_ID_LEN 6
! 107: #define SYSID_STRLEN 24
! 108:
! 109: /*
! 110: * LSP bit masks
! 111: */
! 112: #define LSPBIT_P 0x80
! 113: #define LSPBIT_ATT 0x78
! 114: #define LSPBIT_OL 0x04
! 115: #define LSPBIT_IST 0x03
! 116:
! 117: /*
! 118: * LSP bit masking macros
! 119: * taken from tcpdumps
! 120: * print-isoclns.c
! 121: */
! 122:
! 123: #define ISIS_MASK_LSP_OL_BIT(x) ((x)&0x4)
! 124: #define ISIS_MASK_LSP_IS_L1_BIT(x) ((x)&0x1)
! 125: #define ISIS_MASK_LSP_IS_L2_BIT(x) ((x)&0x2)
! 126: #define ISIS_MASK_LSP_PARTITION_BIT(x) ((x)&0x80)
! 127: #define ISIS_MASK_LSP_ATT_BITS(x) ((x)&0x78)
! 128: #define ISIS_MASK_LSP_ATT_ERROR_BIT(x) ((x)&0x40)
! 129: #define ISIS_MASK_LSP_ATT_EXPENSE_BIT(x) ((x)&0x20)
! 130: #define ISIS_MASK_LSP_ATT_DELAY_BIT(x) ((x)&0x10)
! 131: #define ISIS_MASK_LSP_ATT_DEFAULT_BIT(x) ((x)&0x8)
! 132:
! 133: #define LLC_LEN 3
! 134:
! 135: /* we need to be aware of the fact we are using ISO sized
! 136: * packets, using isomtu = mtu - LLC_LEN
! 137: */
! 138: #define ISO_MTU(C) \
! 139: (C->circ_type==CIRCUIT_T_BROADCAST) ? \
! 140: (C->interface->mtu - LLC_LEN) : (C->interface->mtu)
! 141:
! 142: #ifndef ETH_ALEN
! 143: #define ETH_ALEN 6
! 144: #endif
! 145:
! 146: #endif /* ISIS_CONSTANTS_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>