Annotation of embedaddon/bird/proto/ospf/lsalib.h, revision 1.1

1.1     ! misho       1: /*
        !             2:  *      BIRD -- OSPF
        !             3:  *
        !             4:  *      (c) 1999--2000 Ondrej Filip <feela@network.cz>
        !             5:  *     (c) 2009--2014 Ondrej Zajicek <santiago@crfreenet.org>
        !             6:  *     (c) 2009--2014 CZ.NIC z.s.p.o.
        !             7:  *
        !             8:  *      Can be freely distributed and used under the terms of the GNU GPL.
        !             9:  */
        !            10: 
        !            11: #ifndef _BIRD_OSPF_LSALIB_H_
        !            12: #define _BIRD_OSPF_LSALIB_H_
        !            13: 
        !            14: #ifdef CPU_BIG_ENDIAN
        !            15: static inline void lsa_hton_hdr(struct ospf_lsa_header *h, struct ospf_lsa_header *n) { *n = *h; };
        !            16: static inline void lsa_ntoh_hdr(struct ospf_lsa_header *n, struct ospf_lsa_header *h) { *h = *n; };
        !            17: static inline void lsa_hton_body(void *h, void *n, u16 len) { ASSERT(h != n); memcpy(n, h, len); };
        !            18: static inline void lsa_ntoh_body(void *n, void *h, u16 len) { ASSERT(n != h); memcpy(h, n, len); };
        !            19: static inline void lsa_hton_body1(void *h, u16 len) { };
        !            20: static inline void lsa_ntoh_body1(void *n, u16 len) { };
        !            21: #else
        !            22: void lsa_hton_hdr(struct ospf_lsa_header *h, struct ospf_lsa_header *n);
        !            23: void lsa_ntoh_hdr(struct ospf_lsa_header *n, struct ospf_lsa_header *h);
        !            24: void lsa_hton_body(void *h, void *n, u16 len);
        !            25: void lsa_ntoh_body(void *n, void *h, u16 len);
        !            26: static inline void lsa_hton_body1(void *h, u16 len) { lsa_hton_body(h, h, len); };
        !            27: static inline void lsa_ntoh_body1(void *n, u16 len) { lsa_ntoh_body(n, n, len); };
        !            28: #endif
        !            29: 
        !            30: struct ospf_lsa_rt_walk {
        !            31:   struct top_hash_entry *en;
        !            32:   void *buf, *bufend;
        !            33:   int ospf2;
        !            34:   u16 type, metric;
        !            35:   u32 id, data, lif, nif;
        !            36: };
        !            37: 
        !            38: 
        !            39: void lsa_get_type_domain_(u32 itype, struct ospf_iface *ifa, u32 *otype, u32 *domain);
        !            40: 
        !            41: static inline void lsa_get_type_domain(struct ospf_lsa_header *lsa, struct ospf_iface *ifa, u32 *otype, u32 *domain)
        !            42: { lsa_get_type_domain_(lsa->type_raw, ifa, otype, domain); }
        !            43: 
        !            44: static inline u32 lsa_get_etype(struct ospf_lsa_header *h, struct ospf_proto *p UNUSED4 UNUSED6)
        !            45: { return ospf_is_v2(p) ? (h->type_raw & LSA_T_V2_MASK) : h->type_raw; }
        !            46: 
        !            47: 
        !            48: int lsa_flooding_allowed(u32 type, u32 domain, struct ospf_iface *ifa);
        !            49: void lsa_generate_checksum(struct ospf_lsa_header *lsa, const u8 *body);
        !            50: u16 lsa_verify_checksum(const void *lsa_n, int lsa_len);
        !            51: 
        !            52: #define CMP_NEWER 1
        !            53: #define CMP_SAME 0
        !            54: #define CMP_OLDER -1
        !            55: int lsa_comp(struct ospf_lsa_header *l1, struct ospf_lsa_header *l2);
        !            56: void lsa_walk_rt_init(struct ospf_proto *po, struct top_hash_entry *act, struct ospf_lsa_rt_walk *rt);
        !            57: int lsa_walk_rt(struct ospf_lsa_rt_walk *rt);
        !            58: void lsa_parse_sum_net(struct top_hash_entry *en, int ospf2, ip_addr *ip, int *pxlen, u8 *pxopts, u32 *metric);
        !            59: void lsa_parse_sum_rt(struct top_hash_entry *en, int ospf2, u32 *drid, u32 *metric, u32 *options);
        !            60: void lsa_parse_ext(struct top_hash_entry *en, int ospf2, struct ospf_lsa_ext_local *rt);
        !            61: int lsa_validate(struct ospf_lsa_header *lsa, u32 lsa_type, int ospf2, void *body);
        !            62: 
        !            63: #endif /* _BIRD_OSPF_LSALIB_H_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>