summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--proto/ospf/iface.c2
-rw-r--r--proto/ospf/lsupd.c13
-rw-r--r--proto/ospf/ospf.h4
3 files changed, 13 insertions, 6 deletions
diff --git a/proto/ospf/iface.c b/proto/ospf/iface.c
index 7015f01..c7dfa2f 100644
--- a/proto/ospf/iface.c
+++ b/proto/ospf/iface.c
@@ -282,7 +282,7 @@ ospf_iface_default(struct ospf_iface *ifa)
ifa->an=0; /* FIXME This should respect config */
ifa->cost=COST_D;
ifa->rxmtint=RXMTINT_D;
- ifa->iftransdelay=IFTRANSDELAY_D;
+ ifa->inftransdelay=INFTRANSDELAY_D;
ifa->priority=PRIORITY_D;
ifa->helloint=HELLOINT_D;
ifa->deadc=DEADC_D;
diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c
index 3390abb..b372a21 100644
--- a/proto/ospf/lsupd.c
+++ b/proto/ospf/lsupd.c
@@ -105,9 +105,16 @@ flood_lsa(struct ospf_neighbor *n, struct ospf_lsa_header *hn,
{
u8 *help;
struct top_hash_entry *en;
- htonlsah(hh,(struct ospf_lsa_header *)(pk+1));
- help=(u8 *)(pk+1);
- help+=sizeof(struct ospf_lsa_header);
+ struct ospf_lsa_header *lh;
+ u16 age;
+
+ lh=(struct ospf_lsa_header *)(pk+1);
+ htonlsah(hh,lh);
+ age=hh->age;
+ age+=ifa->inftransdelay;
+ if(age>LSA_MAXAGE) age=LSA_MAXAGE;
+ lh->age=htons(age);
+ help=(u8 *)(lh+1);
en=ospf_hash_find_header(oa->gr,hh);
htonlsab(en->lsa_body,help,hh->type,hh->length);
len=hh->length;
diff --git a/proto/ospf/ospf.h b/proto/ospf/ospf.h
index 40ac691..9ce0be9 100644
--- a/proto/ospf/ospf.h
+++ b/proto/ospf/ospf.h
@@ -63,7 +63,7 @@ struct ospf_iface {
list neigh_list; /* List of neigbours */
u16 cost; /* Cost of iface */
u16 rxmtint; /* number of seconds between LSA retransmissions */
- u16 iftransdelay; /* The estimated number of seconds it takes to
+ u16 inftransdelay; /* The estimated number of seconds it takes to
transmit a Link State Update Packet over this
interface. LSAs contained in the update */
u8 priority; /* A router priority for DR election */
@@ -95,7 +95,7 @@ struct ospf_iface {
/* Default values for interface parameters */
#define COST_D 10
#define RXMTINT_D 5
-#define IFTRANSDELAY_D 1
+#define INFTRANSDELAY_D 1
#define PRIORITY_D 1
#define HELLOINT_D 10
#define DEADC_D 4