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>