File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / ospfd / ospf_nsm.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jul 21 23:54:40 2013 UTC (10 years, 11 months ago) by misho
Branches: quagga, MAIN
CVS tags: v1_0_20160315, v0_99_22p0, v0_99_22, HEAD
0.99.22

    1: /*
    2:  * OSPF version 2  Neighbor State Machine
    3:  *   From RFC2328 [OSPF Version 2]
    4:  *   Copyright (C) 1999 Toshiaki Takada
    5:  *
    6:  * This file is part of GNU Zebra.
    7:  *
    8:  * GNU Zebra is free software; you can redistribute it and/or modify it
    9:  * under the terms of the GNU General Public License as published by the
   10:  * Free Software Foundation; either version 2, or (at your option) any
   11:  * later version.
   12:  *
   13:  * GNU Zebra is distributed in the hope that it will be useful, but
   14:  * WITHOUT ANY WARRANTY; without even the implied warranty of
   15:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   16:  * General Public License for more details.
   17:  *
   18:  * You should have received a copy of the GNU General Public License
   19:  * along with GNU Zebra; see the file COPYING.  If not, write to the Free
   20:  * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
   21:  * 02111-1307, USA.
   22:  */
   23: 
   24: #ifndef _ZEBRA_OSPF_NSM_H
   25: #define _ZEBRA_OSPF_NSM_H
   26: 
   27: /* OSPF Neighbor State Machine State. */
   28: #define NSM_DependUpon          0
   29: #define NSM_Deleted		1
   30: #define NSM_Down		2
   31: #define NSM_Attempt		3
   32: #define NSM_Init		4
   33: #define NSM_TwoWay		5
   34: #define NSM_ExStart		6
   35: #define NSM_Exchange		7
   36: #define NSM_Loading		8
   37: #define NSM_Full		9
   38: #define OSPF_NSM_STATE_MAX     10
   39: 
   40: /* OSPF Neighbor State Machine Event. */
   41: #define NSM_NoEvent	        0
   42: #define NSM_PacketReceived	1 /* HelloReceived in the protocol */
   43: #define NSM_Start		2
   44: #define NSM_TwoWayReceived	3
   45: #define NSM_NegotiationDone	4
   46: #define NSM_ExchangeDone	5
   47: #define NSM_BadLSReq		6
   48: #define NSM_LoadingDone		7
   49: #define NSM_AdjOK		8
   50: #define NSM_SeqNumberMismatch	9
   51: #define NSM_OneWayReceived     10
   52: #define NSM_KillNbr	       11
   53: #define NSM_InactivityTimer    12
   54: #define NSM_LLDown	       13
   55: #define OSPF_NSM_EVENT_MAX     14
   56: 
   57: /* Macro for OSPF NSM timer turn on. */
   58: #define OSPF_NSM_TIMER_ON(T,F,V)                                              \
   59:       do {                                                                    \
   60:         if (!(T))                                                             \
   61:           (T) = thread_add_timer (master, (F), nbr, (V));                     \
   62:       } while (0)
   63: 
   64: /* Macro for OSPF NSM timer turn off. */
   65: #define OSPF_NSM_TIMER_OFF(X)                                                 \
   66:       do {                                                                    \
   67:         if (X)                                                                \
   68:           {                                                                   \
   69:             thread_cancel (X);                                                \
   70:             (X) = NULL;                                                       \
   71:           }                                                                   \
   72:       } while (0)
   73: 
   74: /* Macro for OSPF NSM schedule event. */
   75: #define OSPF_NSM_EVENT_SCHEDULE(N,E)                                          \
   76:       thread_add_event (master, ospf_nsm_event, (N), (E))
   77: 
   78: /* Macro for OSPF NSM execute event. */
   79: #define OSPF_NSM_EVENT_EXECUTE(N,E)                                           \
   80:       thread_execute (master, ospf_nsm_event, (N), (E))
   81: 
   82: /* Prototypes. */
   83: extern int ospf_nsm_event (struct thread *);
   84: extern void ospf_check_nbr_loading (struct ospf_neighbor *);
   85: extern int ospf_db_summary_isempty (struct ospf_neighbor *);
   86: extern int ospf_db_summary_count (struct ospf_neighbor *);
   87: extern void ospf_db_summary_clear (struct ospf_neighbor *);
   88: 
   89: #endif /* _ZEBRA_OSPF_NSM_H */
   90: 

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