2000-03-31 08:21:41 +08:00
|
|
|
/*
|
|
|
|
* BIRD -- OSPF
|
|
|
|
*
|
2000-06-08 06:31:47 +08:00
|
|
|
* (c) 1999 - 2000 Ondrej Filip <feela@network.cz>
|
2000-03-31 08:21:41 +08:00
|
|
|
*
|
|
|
|
* Can be freely distributed and used under the terms of the GNU GPL.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _BIRD_OSPF_LSALIB_H_
|
|
|
|
#define _BIRD_OSPF_LSALIB_H_
|
|
|
|
|
2010-04-26 02:12:34 +08:00
|
|
|
#ifdef CPU_BIG_ENDIAN
|
|
|
|
static inline void htonlsah(struct ospf_lsa_header *h, struct ospf_lsa_header *n) { *n = *h; };
|
|
|
|
static inline void ntohlsah(struct ospf_lsa_header *n, struct ospf_lsa_header *h) { *h = *n; };
|
2010-05-03 04:41:40 +08:00
|
|
|
static inline void htonlsab(void *h, void *n, u16 len) { ASSERT(h != n); memcpy(n, h, len); };
|
|
|
|
static inline void ntohlsab(void *n, void *h, u16 len) { ASSERT(n != h); memcpy(h, n, len); };
|
2010-04-26 02:12:34 +08:00
|
|
|
static inline void htonlsab1(void *h, u16 len) { };
|
|
|
|
static inline void ntohlsab1(void *n, u16 len) { };
|
|
|
|
#else
|
2000-03-31 08:21:41 +08:00
|
|
|
void htonlsah(struct ospf_lsa_header *h, struct ospf_lsa_header *n);
|
|
|
|
void ntohlsah(struct ospf_lsa_header *n, struct ospf_lsa_header *h);
|
2010-02-21 21:34:53 +08:00
|
|
|
void htonlsab(void *h, void *n, u16 len);
|
|
|
|
void ntohlsab(void *n, void *h, u16 len);
|
2010-04-26 02:12:34 +08:00
|
|
|
static inline void htonlsab1(void *h, u16 len) { htonlsab(h, h, len); };
|
|
|
|
static inline void ntohlsab1(void *n, u16 len) { ntohlsab(n, n, len); };
|
|
|
|
#endif
|
|
|
|
|
2004-06-07 02:45:08 +08:00
|
|
|
void lsasum_calculate(struct ospf_lsa_header *header, void *body);
|
|
|
|
u16 lsasum_check(struct ospf_lsa_header *h, void *body);
|
2000-04-03 03:04:23 +08:00
|
|
|
#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);
|
2009-10-30 06:57:42 +08:00
|
|
|
int lsa_validate(struct ospf_lsa_header *lsa, void *body);
|
2009-08-21 15:27:52 +08:00
|
|
|
struct top_hash_entry * lsa_install_new(struct proto_ospf *po, struct ospf_lsa_header *lsa, u32 domain, void *body);
|
2004-07-16 00:37:52 +08:00
|
|
|
void ospf_age(struct proto_ospf *po);
|
|
|
|
void flush_lsa(struct top_hash_entry *en, struct proto_ospf *po);
|
2011-03-17 22:53:36 +08:00
|
|
|
void ospf_flush_area(struct proto_ospf *po, u32 areaid);
|
|
|
|
|
2000-03-31 08:21:41 +08:00
|
|
|
|
|
|
|
#endif /* _BIRD_OSPF_LSALIB_H_ */
|