summaryrefslogtreecommitdiff
path: root/isisd
diff options
context:
space:
mode:
authorhasso <hasso>2004-05-19 13:43:50 +0000
committerhasso <hasso>2004-05-19 13:43:50 +0000
commit00995cfcc9cb30afabb3242837753ab1eb7fdb85 (patch)
treefbfebfd74d22b29eb9b7bc279a4d6fd2beec4def /isisd
parent37da8c011408560eeaa74b2439192d36e16c19a4 (diff)
Commit 100% working part of patch from Laurent Rabret ([quagga-dev 830]).
Also tiny temporary fix from me to spf thread crash. Will look at it later.
Diffstat (limited to 'isisd')
-rw-r--r--isisd/ChangeLog9
-rw-r--r--isisd/isis_constants.h2
-rw-r--r--isisd/isis_main.c3
-rw-r--r--isisd/isis_spf.c4
-rw-r--r--isisd/isis_tlv.c15
-rw-r--r--isisd/isis_tlv.h5
6 files changed, 33 insertions, 5 deletions
diff --git a/isisd/ChangeLog b/isisd/ChangeLog
index 1d2e22f5..4c119e2d 100644
--- a/isisd/ChangeLog
+++ b/isisd/ChangeLog
@@ -1,3 +1,12 @@
+2004-05-19 Laurent Rabret <laurent.rabret at francetelecom.com>
+
+ * isis_constants.h: change the ISIS Hello interval from 1 to 10 (cisco's
+ default value).
+ * isis_main.c: suppress a bad "#if 0 #endif" block for isis to be
+ activated on startup.
+ * isis_tlv.[c|h]: LSP recognition of the ISIS Graceful Restart LSP (not
+ implemented yet).
+
2004-05-19 Rivo Nurges <rix at estpak.ee>
* *.c: Removing many useless net/ethernet.h includes and some tiny
diff --git a/isisd/isis_constants.h b/isisd/isis_constants.h
index 852b8a1f..c732bfc4 100644
--- a/isisd/isis_constants.h
+++ b/isisd/isis_constants.h
@@ -65,7 +65,7 @@
#define ISIS_LEVEL1 1
#define ISIS_LEVEL2 2
-#define HELLO_INTERVAL 1
+#define HELLO_INTERVAL 10
#define HELLO_MINIMAL HELLO_INTERVAL
#define HELLO_MULTIPLIER 3
#define DEFAULT_PRIORITY 64
diff --git a/isisd/isis_main.c b/isisd/isis_main.c
index 0d9cf3ef..e763a9e8 100644
--- a/isisd/isis_main.c
+++ b/isisd/isis_main.c
@@ -312,10 +312,9 @@ main (int argc, char **argv, char **envp)
/* parse config file */
/* this is needed three times! because we have interfaces before the areas */
vty_read_config (config_file, config_current, config_default);
-#if 0
vty_read_config (config_file, config_current, config_default);
vty_read_config (config_file, config_current, config_default);
-#endif
+
/* demonize */
if (daemon_mode)
daemon (0, 0);
diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c
index 03f724f6..1987e0d2 100644
--- a/isisd/isis_spf.c
+++ b/isisd/isis_spf.c
@@ -1037,7 +1037,9 @@ isis_spf_schedule (struct isis_area *area, int level)
spftree->pending = 1;
return retval;
}
- THREAD_TIMER_OFF(spftree->t_spf_periodic);
+ /* FIXME: This stuff is just mess. All spf thread add/cancel
+ logic should be reviewed. */
+ /* THREAD_TIMER_OFF(spftree->t_spf_periodic); */
if (diff < MINIMUM_SPF_INTERVAL) {
if (level == 1)
diff --git a/isisd/isis_tlv.c b/isisd/isis_tlv.c
index ab39ceba..d7bbb914 100644
--- a/isisd/isis_tlv.c
+++ b/isisd/isis_tlv.c
@@ -651,6 +651,21 @@ parse_tlvs (char *areatag, u_char *stream, int size, u_int32_t *expected,
}
break;
+ case GRACEFUL_RESTART:
+ /* +-------+-------+-------+-------+-------+-------+-------+-------+
+ * | Reserved | SA | RA | RR | 1
+ * +-------+-------+-------+-------+-------+-------+-------+-------+
+ * | Remaining Time | 2
+ * +---------------------------------------------------------------+
+ * | Restarting Neighbor ID (If known) | 0-8
+ * +---------------------------------------------------------------+
+ */
+ *found |= TLVFLAG_GRACEFUL_RESTART;
+ if (*expected & TLVFLAG_GRACEFUL_RESTART) {
+ /* FIXME: make this work */
+ }
+ pnt += length;
+ break;
default:
zlog_warn ("ISIS-TLV (%s): unsupported TLV type %d, length %d",
diff --git a/isisd/isis_tlv.h b/isisd/isis_tlv.h
index 79c0c46f..e030385e 100644
--- a/isisd/isis_tlv.h
+++ b/isisd/isis_tlv.h
@@ -27,7 +27,7 @@
/*
* Structures found in TLV's.
* this header is fully complient with
- * draft-ietf-isis-wg-tlv-codepoints-02.txt
+ * RFC 3359
1. TLV Codepoints reserved
____________________________________________________
Name Value IIH LSP SNP Status
@@ -46,6 +46,7 @@
LSPBufferSize 14 n y n ISO 10589 Rev 2 Draft
TE IIS Neigh. 22 n y n IETF-draft
DECnet Phase IV 42 y n n DEC (ancient)
+ Lucent Proprietary 66 n y n
IP Int. Reach 128 n y n RFC 1195
Prot. Supported 129 y y n RFC 1195
IP Ext. Address 130 n y n RFC 1195
@@ -87,6 +88,7 @@
#define TE_ROUTER_ID 134
#define TE_IPV4_REACHABILITY 135
#define DYNAMIC_HOSTNAME 137
+#define GRACEFUL_RESTART 211
#define IPV6_REACHABILITY 236
#define IPV6_ADDR 232
#define WAY3_HELLO 240
@@ -236,6 +238,7 @@ struct tlvs {
#define TLVFLAG_3WAY_HELLO (1<<18)
#define TLVFLAG_TE_ROUTER_ID (1<<19)
#define TLVFLAG_CHECKSUM (1<<20)
+#define TLVFLAG_GRACEFUL_RESTART (1<<21)
void init_tlvs (struct tlvs *tlvs, uint32_t expected);
void free_tlvs (struct tlvs *tlvs);