File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / isisd / isis_constants.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Oct 9 09:22:28 2012 UTC (11 years, 9 months ago) by misho
Branches: quagga, MAIN
CVS tags: v0_99_22p0, v0_99_22, v0_99_21, HEAD
quagga

    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_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 */
   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: 
   43: #define IIH_JITTER                    10	/* % */
   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: 
   51: #define ISIS_LEVELS                   2
   52: #define ISIS_LEVEL1                   1
   53: #define ISIS_LEVEL2                   2
   54: 
   55: /*
   56:  * Default values
   57:  * ISO - 10589 Section 7.3.21 - Parameters
   58:  * RFC 4444
   59:  */
   60: #define MAX_AGE                       1200
   61: #define ZERO_AGE_LIFETIME             60
   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: 
   74: #define MIN_LSP_TRANS_INTERVAL        5
   75: 
   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
   91: 
   92: #define MIN_PRIORITY                  0
   93: #define MAX_PRIORITY                  127
   94: #define DEFAULT_PRIORITY              64
   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
  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
  132: #define ISIS_NSEL_LEN    1
  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) \
  165:           ((if_is_broadcast ((C)->interface)) ? \
  166:            (C->interface->mtu - LLC_LEN) : (C->interface->mtu))
  167: 
  168: #ifndef ETH_ALEN
  169: #define ETH_ALEN 6
  170: #endif
  171: 
  172: #endif /* ISIS_CONSTANTS_H */

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