~ubuntu-branches/ubuntu/breezy/quagga/breezy-security

« back to all changes in this revision

Viewing changes to ospfd/ospf_nsm.h

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Mueller
  • Date: 2005-05-20 13:16:12 UTC
  • Revision ID: james.westby@ubuntu.com-20050520131612-pr6paalox60o3x3n
Tags: upstream-0.99.1
ImportĀ upstreamĀ versionĀ 0.99.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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_Down                1
 
30
#define NSM_Attempt             2
 
31
#define NSM_Init                3
 
32
#define NSM_TwoWay              4
 
33
#define NSM_ExStart             5
 
34
#define NSM_Exchange            6
 
35
#define NSM_Loading             7
 
36
#define NSM_Full                8
 
37
#define OSPF_NSM_STATE_MAX      9
 
38
 
 
39
/* OSPF Neighbor State Machine Event. */
 
40
#define NSM_NoEvent             0
 
41
#define NSM_HelloReceived       1
 
42
#define NSM_Start               2
 
43
#define NSM_TwoWayReceived      3
 
44
#define NSM_NegotiationDone     4
 
45
#define NSM_ExchangeDone        5
 
46
#define NSM_BadLSReq            6
 
47
#define NSM_LoadingDone         7
 
48
#define NSM_AdjOK               8
 
49
#define NSM_SeqNumberMismatch   9
 
50
#define NSM_OneWayReceived     10
 
51
#define NSM_KillNbr            11
 
52
#define NSM_InactivityTimer    12
 
53
#define NSM_LLDown             13
 
54
#define OSPF_NSM_EVENT_MAX     14
 
55
 
 
56
/* Macro for OSPF NSM timer turn on. */
 
57
#define OSPF_NSM_TIMER_ON(T,F,V)                                              \
 
58
      do {                                                                    \
 
59
        if (!(T))                                                             \
 
60
          (T) = thread_add_timer (master, (F), nbr, (V));                     \
 
61
      } while (0)
 
62
 
 
63
/* Macro for OSPF NSM timer turn off. */
 
64
#define OSPF_NSM_TIMER_OFF(X)                                                 \
 
65
      do {                                                                    \
 
66
        if (X)                                                                \
 
67
          {                                                                   \
 
68
            thread_cancel (X);                                                \
 
69
            (X) = NULL;                                                       \
 
70
          }                                                                   \
 
71
      } while (0)
 
72
 
 
73
/* Macro for OSPF NSM schedule event. */
 
74
#define OSPF_NSM_EVENT_SCHEDULE(N,E)                                          \
 
75
      thread_add_event (master, ospf_nsm_event, (N), (E))
 
76
 
 
77
/* Macro for OSPF NSM execute event. */
 
78
#define OSPF_NSM_EVENT_EXECUTE(N,E)                                           \
 
79
      thread_execute (master, ospf_nsm_event, (N), (E))
 
80
 
 
81
/* Prototypes. */
 
82
int ospf_nsm_event (struct thread *);
 
83
void nsm_change_state (struct ospf_neighbor *, int);
 
84
void ospf_check_nbr_loading (struct ospf_neighbor *);
 
85
int ospf_db_summary_isempty (struct ospf_neighbor *);
 
86
int ospf_db_summary_count (struct ospf_neighbor *);
 
87
void ospf_db_summary_clear (struct ospf_neighbor *);
 
88
 
 
89
#endif /* _ZEBRA_OSPF_NSM_H */
 
90