Statistics
| Branch: | Revision:

iof-bird-daemon / proto / ospf / lsalib.h @ 506fa1a7

History | View | Annotate | Download (1.65 KB)

1
/*
2
 *      BIRD -- OSPF
3
 *
4
 *      (c) 1999 - 2000 Ondrej Filip <feela@network.cz>
5
 *
6
 *      Can be freely distributed and used under the terms of the GNU GPL.
7
 *
8
 */
9

    
10
#ifndef _BIRD_OSPF_LSALIB_H_
11
#define _BIRD_OSPF_LSALIB_H_
12

    
13
#ifdef CPU_BIG_ENDIAN
14
static inline void htonlsah(struct ospf_lsa_header *h, struct ospf_lsa_header *n) { *n = *h; };
15
static inline void ntohlsah(struct ospf_lsa_header *n, struct ospf_lsa_header *h) { *h = *n; };
16
static inline void htonlsab(void *h, void *n, u16 len) { ASSERT(h != n); memcpy(n, h, len); };
17
static inline void ntohlsab(void *n, void *h, u16 len) { ASSERT(n != h); memcpy(h, n, len); };
18
static inline void htonlsab1(void *h, u16 len) { };
19
static inline void ntohlsab1(void *n, u16 len) { };
20
#else
21
void htonlsah(struct ospf_lsa_header *h, struct ospf_lsa_header *n);
22
void ntohlsah(struct ospf_lsa_header *n, struct ospf_lsa_header *h);
23
void htonlsab(void *h, void *n, u16 len);
24
void ntohlsab(void *n, void *h, u16 len);
25
static inline void htonlsab1(void *h, u16 len) { htonlsab(h, h, len); };
26
static inline void ntohlsab1(void *n, u16 len) { ntohlsab(n, n, len); };
27
#endif
28

    
29
void lsasum_calculate(struct ospf_lsa_header *header, void *body);
30
u16 lsasum_check(struct ospf_lsa_header *h, void *body);
31
#define CMP_NEWER 1
32
#define CMP_SAME 0
33
#define CMP_OLDER -1
34
int lsa_comp(struct ospf_lsa_header *l1, struct ospf_lsa_header *l2);
35
int lsa_validate(struct ospf_lsa_header *lsa, void *body);
36
struct top_hash_entry * lsa_install_new(struct proto_ospf *po, struct ospf_lsa_header *lsa, u32 domain, void *body);
37
void ospf_age(struct proto_ospf *po);
38
void flush_lsa(struct top_hash_entry *en, struct proto_ospf *po);
39

    
40
#endif /* _BIRD_OSPF_LSALIB_H_ */