summaryrefslogtreecommitdiffstats
path: root/proto/ospf
diff options
context:
space:
mode:
Diffstat (limited to 'proto/ospf')
-rw-r--r--proto/ospf/dbdes.c22
-rw-r--r--proto/ospf/dbdes.h1
-rw-r--r--proto/ospf/lsalib.c17
-rw-r--r--proto/ospf/lsalib.h7
4 files changed, 24 insertions, 23 deletions
diff --git a/proto/ospf/dbdes.c b/proto/ospf/dbdes.c
index 3a8a9a1..ee2f96f 100644
--- a/proto/ospf/dbdes.c
+++ b/proto/ospf/dbdes.c
@@ -168,26 +168,6 @@ rxmt_timer_hook(timer *timer)
}
}
-int
-lsa_comp(struct ospf_lsa_header *l1, struct ospf_lsa_header *l2)
- /*
- * 1 l1 is newer
- * 0 identical
- * -1 l2 is newer
- */
-{
- if(l1->sn<l2->sn) return 1;
- if(l1->sn==l2->sn)
- {
- if(l1->checksum=!l2->checksum) return l1->checksum<l2->checksum ? -1 :1;
- if(l1->age==MAXAGE) return 1;
- if(l2->age==MAXAGE) return -1;
- if(abs(l1->age-l2->age)>MAXAGEDIFF) return l1->age<l2->age ? 1 : -1;
- }
- return 0;
-
-}
-
void
ospf_dbdes_reqladd(struct ospf_dbdes_packet *ps, struct proto *p,
struct ospf_neighbor *n)
@@ -296,8 +276,6 @@ ospf_dbdes_rx(struct ospf_dbdes_packet *ps, struct proto *p,
break;
}
}
- //break; /* I should probably continue processing packet */
-
case NEIGHBOR_EXCHANGE:
if((ps->imms.byte==n->imms.byte) && (ps->options=n->options) &&
(ntohl(ps->ddseq)==n->ddr))
diff --git a/proto/ospf/dbdes.h b/proto/ospf/dbdes.h
index 6cbad97..09642ff 100644
--- a/proto/ospf/dbdes.h
+++ b/proto/ospf/dbdes.h
@@ -16,3 +16,4 @@ void ospf_dbdes_rx(struct ospf_dbdes_packet *ps, struct proto *p,
struct ospf_iface *ifa, u16 size);
#endif /* _BIRD_OSPF_DBDES_H_ */
+
diff --git a/proto/ospf/lsalib.c b/proto/ospf/lsalib.c
index d7ae1c6..72ca55c 100644
--- a/proto/ospf/lsalib.c
+++ b/proto/ospf/lsalib.c
@@ -283,3 +283,20 @@ lsasum_calculate(struct ospf_lsa_header *h,void *body,struct proto_ospf *po)
ntohlsab(b,b,h->type,length+2);
}
+int
+lsa_comp(struct ospf_lsa_header *l1, struct ospf_lsa_header *l2)
+ /* Return codes form view of l1 */
+{
+ if(l1->sn<l2->sn) return CMP_NEWER;
+ if(l1->sn==l2->sn)
+ {
+ if(l1->checksum=!l2->checksum)
+ return l1->checksum<l2->checksum ? CMP_OLDER : CMP_NEWER;
+ if(l1->age==MAXAGE) return CMP_NEWER;
+ if(l2->age==MAXAGE) return CMP_OLDER;
+ if(abs(l1->age-l2->age)>MAXAGEDIFF)
+ return l1->age<l2->age ? CMP_NEWER : CMP_OLDER;
+ }
+ return CMP_SAME;
+}
+
diff --git a/proto/ospf/lsalib.h b/proto/ospf/lsalib.h
index 0eb6dce..b6547c7 100644
--- a/proto/ospf/lsalib.h
+++ b/proto/ospf/lsalib.h
@@ -14,6 +14,11 @@ void htonlsah(struct ospf_lsa_header *h, struct ospf_lsa_header *n);
void ntohlsah(struct ospf_lsa_header *n, struct ospf_lsa_header *h);
void htonlsab(void *h, void *n, u8 type, u16 len);
void ntohlsab(void *n, void *h, u8 type, u16 len);
-void lsasum_calculate(struct ospf_lsa_header *header, void *body, struct proto_ospf *p);
+void lsasum_calculate(struct ospf_lsa_header *header, void *body,
+ struct proto_ospf *p);
+#define CMP_NEWER 1
+#define CMP_SAME 0
+#define CMP_OLDER -1
+int lsa_comp(struct ospf_lsa_header *l1, struct ospf_lsa_header *l2);
#endif /* _BIRD_OSPF_LSALIB_H_ */