0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00

lsa_cmp moved into lsalib.c

This commit is contained in:
Ondrej Filip 2000-04-02 19:04:23 +00:00
parent 10be74da20
commit db9fb72769
4 changed files with 24 additions and 23 deletions

View File

@ -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 void
ospf_dbdes_reqladd(struct ospf_dbdes_packet *ps, struct proto *p, ospf_dbdes_reqladd(struct ospf_dbdes_packet *ps, struct proto *p,
struct ospf_neighbor *n) struct ospf_neighbor *n)
@ -296,8 +276,6 @@ ospf_dbdes_rx(struct ospf_dbdes_packet *ps, struct proto *p,
break; break;
} }
} }
//break; /* I should probably continue processing packet */
case NEIGHBOR_EXCHANGE: case NEIGHBOR_EXCHANGE:
if((ps->imms.byte==n->imms.byte) && (ps->options=n->options) && if((ps->imms.byte==n->imms.byte) && (ps->options=n->options) &&
(ntohl(ps->ddseq)==n->ddr)) (ntohl(ps->ddseq)==n->ddr))

View File

@ -16,3 +16,4 @@ void ospf_dbdes_rx(struct ospf_dbdes_packet *ps, struct proto *p,
struct ospf_iface *ifa, u16 size); struct ospf_iface *ifa, u16 size);
#endif /* _BIRD_OSPF_DBDES_H_ */ #endif /* _BIRD_OSPF_DBDES_H_ */

View File

@ -283,3 +283,20 @@ lsasum_calculate(struct ospf_lsa_header *h,void *body,struct proto_ospf *po)
ntohlsab(b,b,h->type,length+2); 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;
}

View File

@ -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 ntohlsah(struct ospf_lsa_header *n, struct ospf_lsa_header *h);
void htonlsab(void *h, void *n, u8 type, u16 len); void htonlsab(void *h, void *n, u8 type, u16 len);
void ntohlsab(void *n, void *h, 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_ */ #endif /* _BIRD_OSPF_LSALIB_H_ */