Annotation of embedaddon/quagga/isisd/isis_constants.h, revision 1.1.1.2

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: 
1.1.1.2 ! misho      30: #define MAX_NARROW_LINK_METRIC        63
        !            31: #define MAX_NARROW_PATH_METRIC        1023
        !            32: #define MAX_WIDE_LINK_METRIC          0x00FFFFFF  /* RFC4444 */
        !            33: #define MAX_WIDE_PATH_METRIC          0xFE000000  /* RFC3787 */
1.1       misho      34: #define ISO_SAP                       0xFE
                     35: #define INTRADOMAIN_ROUTEING_SELECTOR 0
                     36: #define SEQUENCE_MODULUS              4294967296
                     37: #define RECEIVE_LSP_BUFFER_SIZE       1492
                     38: 
                     39: /*
                     40:  * implementation specific jitter values
                     41:  */
                     42: 
1.1.1.2 ! misho      43: #define IIH_JITTER                    10       /* % */
1.1       misho      44: #define MAX_AGE_JITTER                 5       /* % */
                     45: #define MAX_LSP_GEN_JITTER             5       /* % */
                     46: #define CSNP_JITTER                   10       /* % */
                     47: #define PSNP_JITTER                   10       /* % */
                     48: 
                     49: #define RANDOM_SPREAD           100000.0
                     50: 
1.1.1.2 ! misho      51: #define ISIS_LEVELS                   2
        !            52: #define ISIS_LEVEL1                   1
        !            53: #define ISIS_LEVEL2                   2
        !            54: 
1.1       misho      55: /*
                     56:  * Default values
1.1.1.2 ! misho      57:  * ISO - 10589 Section 7.3.21 - Parameters
        !            58:  * RFC 4444
1.1       misho      59:  */
                     60: #define MAX_AGE                       1200
                     61: #define ZERO_AGE_LIFETIME             60
1.1.1.2 ! misho      62: #define MIN_LSP_LIFETIME              350
        !            63: #define MAX_LSP_LIFETIME              65535
        !            64: #define DEFAULT_LSP_LIFETIME          1200
        !            65: 
        !            66: #define MIN_MAX_LSP_GEN_INTERVAL      1
        !            67: #define MAX_MAX_LSP_GEN_INTERVAL      65235
        !            68: #define DEFAULT_MAX_LSP_GEN_INTERVAL  900
        !            69: 
        !            70: #define MIN_MIN_LSP_GEN_INTERVAL      1
        !            71: #define MAX_MIN_LSP_GEN_INTERVAL      120  /* RFC 4444 says 65535 */
        !            72: #define DEFAULT_MIN_LSP_GEN_INTERVAL  30
        !            73: 
1.1       misho      74: #define MIN_LSP_TRANS_INTERVAL        5
                     75: 
1.1.1.2 ! misho      76: #define MIN_CSNP_INTERVAL             1
        !            77: #define MAX_CSNP_INTERVAL             600
        !            78: #define DEFAULT_CSNP_INTERVAL         10
        !            79: 
        !            80: #define MIN_PSNP_INTERVAL             1
        !            81: #define MAX_PSNP_INTERVAL             120
        !            82: #define DEFAULT_PSNP_INTERVAL         2
        !            83: 
        !            84: #define MIN_HELLO_INTERVAL            1
        !            85: #define MAX_HELLO_INTERVAL            600
        !            86: #define DEFAULT_HELLO_INTERVAL        3
        !            87: 
        !            88: #define MIN_HELLO_MULTIPLIER          2
        !            89: #define MAX_HELLO_MULTIPLIER          100
        !            90: #define DEFAULT_HELLO_MULTIPLIER      10
1.1       misho      91: 
1.1.1.2 ! misho      92: #define MIN_PRIORITY                  0
        !            93: #define MAX_PRIORITY                  127
1.1       misho      94: #define DEFAULT_PRIORITY              64
1.1.1.2 ! misho      95: 
        !            96: /* min and max metric varies by new vs old metric types */
        !            97: #define DEFAULT_CIRCUIT_METRIC        10
        !            98: 
        !            99: #define METRICS_UNSUPPORTED           0x80
        !           100: 
        !           101: #define MINIMUM_SPF_INTERVAL          1
        !           102: 
        !           103: #define ISIS_MAX_PATH_SPLITS          64
1.1       misho     104: 
                    105: /*
                    106:  * NLPID values
                    107:  */
                    108: #define NLPID_IP   204
                    109: #define NLPID_IPV6 142
                    110: #define NLPID_SNAP 128
                    111: #define NLPID_CLNP 129
                    112: #define NLPID_ESIS 130
                    113: 
                    114: /*
                    115:  * Return values for functions
                    116:  */
                    117: #define ISIS_OK       0
                    118: #define ISIS_WARNING  1
                    119: #define ISIS_ERROR    2
                    120: #define ISIS_CRITICAL 3
                    121: 
                    122: /*
                    123:  * IS-IS Circuit Types
                    124:  */
                    125: 
                    126: #define IS_LEVEL_1       1
                    127: #define IS_LEVEL_2       2
                    128: #define IS_LEVEL_1_AND_2 3
                    129: 
                    130: #define SNPA_ADDRSTRLEN 18
                    131: #define ISIS_SYS_ID_LEN  6
1.1.1.2 ! misho     132: #define ISIS_NSEL_LEN    1
1.1       misho     133: #define SYSID_STRLEN    24
                    134: 
                    135: /*
                    136:  * LSP bit masks
                    137:  */
                    138: #define LSPBIT_P   0x80
                    139: #define LSPBIT_ATT 0x78
                    140: #define LSPBIT_OL  0x04
                    141: #define LSPBIT_IST 0x03
                    142: 
                    143: /*
                    144:  * LSP bit masking macros
                    145:  * taken from tcpdumps
                    146:  * print-isoclns.c
                    147:  */
                    148: 
                    149: #define ISIS_MASK_LSP_OL_BIT(x)            ((x)&0x4)
                    150: #define ISIS_MASK_LSP_IS_L1_BIT(x)         ((x)&0x1)
                    151: #define ISIS_MASK_LSP_IS_L2_BIT(x)         ((x)&0x2)
                    152: #define ISIS_MASK_LSP_PARTITION_BIT(x)     ((x)&0x80)
                    153: #define ISIS_MASK_LSP_ATT_BITS(x)          ((x)&0x78)
                    154: #define ISIS_MASK_LSP_ATT_ERROR_BIT(x)     ((x)&0x40)
                    155: #define ISIS_MASK_LSP_ATT_EXPENSE_BIT(x)   ((x)&0x20)
                    156: #define ISIS_MASK_LSP_ATT_DELAY_BIT(x)     ((x)&0x10)
                    157: #define ISIS_MASK_LSP_ATT_DEFAULT_BIT(x)   ((x)&0x8)
                    158: 
                    159: #define LLC_LEN 3
                    160: 
                    161: /* we need to be aware of the fact we are using ISO sized
                    162:  * packets, using isomtu = mtu - LLC_LEN
                    163:  */
                    164: #define ISO_MTU(C) \
1.1.1.2 ! misho     165:           ((if_is_broadcast ((C)->interface)) ? \
        !           166:            (C->interface->mtu - LLC_LEN) : (C->interface->mtu))
1.1       misho     167: 
                    168: #ifndef ETH_ALEN
                    169: #define ETH_ALEN 6
                    170: #endif
                    171: 
                    172: #endif /* ISIS_CONSTANTS_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>