diff options
Diffstat (limited to 'ospfd/ospf_opaque.h')
-rw-r--r-- | ospfd/ospf_opaque.h | 138 |
1 files changed, 63 insertions, 75 deletions
diff --git a/ospfd/ospf_opaque.h b/ospfd/ospf_opaque.h index 69cbb0766..8bad51e65 100644 --- a/ospfd/ospf_opaque.h +++ b/ospfd/ospf_opaque.h @@ -25,10 +25,9 @@ #include "vty.h" -#define IS_OPAQUE_LSA(type) \ - ((type) == OSPF_OPAQUE_LINK_LSA || \ - (type) == OSPF_OPAQUE_AREA_LSA || \ - (type) == OSPF_OPAQUE_AS_LSA) +#define IS_OPAQUE_LSA(type) \ + ((type) == OSPF_OPAQUE_LINK_LSA || (type) == OSPF_OPAQUE_AREA_LSA \ + || (type) == OSPF_OPAQUE_AS_LSA) /* * Opaque LSA's link state ID is redefined as follows. @@ -42,15 +41,12 @@ #define LSID_OPAQUE_TYPE_MASK 0xff000000 /* 8 bits */ #define LSID_OPAQUE_ID_MASK 0x00ffffff /* 24 bits */ -#define GET_OPAQUE_TYPE(lsid) \ - (((u_int32_t)(lsid) & LSID_OPAQUE_TYPE_MASK) >> 24) +#define GET_OPAQUE_TYPE(lsid) (((u_int32_t)(lsid)&LSID_OPAQUE_TYPE_MASK) >> 24) -#define GET_OPAQUE_ID(lsid) \ - ((u_int32_t)(lsid) & LSID_OPAQUE_ID_MASK) +#define GET_OPAQUE_ID(lsid) ((u_int32_t)(lsid)&LSID_OPAQUE_ID_MASK) -#define SET_OPAQUE_LSID(type, id) \ - ((((type) << 24) & LSID_OPAQUE_TYPE_MASK) \ - | ((id) & LSID_OPAQUE_ID_MASK)) +#define SET_OPAQUE_LSID(type, id) \ + ((((type) << 24) & LSID_OPAQUE_TYPE_MASK) | ((id)&LSID_OPAQUE_ID_MASK)) /* * Opaque LSA types will be assigned by IANA. @@ -72,74 +68,66 @@ /* Ugly hack to make use of an unallocated value for wildcard matching! */ #define OPAQUE_TYPE_WILDCARD 0 -#define OPAQUE_TYPE_RANGE_UNASSIGNED(type) \ - ( OPAQUE_TYPE_MAX <= (type) && (type) <= 127) +#define OPAQUE_TYPE_RANGE_UNASSIGNED(type) \ + (OPAQUE_TYPE_MAX <= (type) && (type) <= 127) -#define OPAQUE_TYPE_RANGE_RESERVED(type) \ - (127 < (type) && (type) <= 255) +#define OPAQUE_TYPE_RANGE_RESERVED(type) (127 < (type) && (type) <= 255) -#define VALID_OPAQUE_INFO_LEN(lsahdr) \ - ((ntohs((lsahdr)->length) >= sizeof (struct lsa_header)) && \ - ((ntohs((lsahdr)->length) % sizeof (u_int32_t)) == 0)) +#define VALID_OPAQUE_INFO_LEN(lsahdr) \ + ((ntohs((lsahdr)->length) >= sizeof(struct lsa_header)) \ + && ((ntohs((lsahdr)->length) % sizeof(u_int32_t)) == 0)) /* Prototypes. */ -extern void ospf_opaque_init (void); -extern void ospf_opaque_term (void); -extern int ospf_opaque_type9_lsa_init (struct ospf_interface *oi); -extern void ospf_opaque_type9_lsa_term (struct ospf_interface *oi); -extern int ospf_opaque_type10_lsa_init (struct ospf_area *area); -extern void ospf_opaque_type10_lsa_term (struct ospf_area *area); -extern int ospf_opaque_type11_lsa_init (struct ospf *ospf); -extern void ospf_opaque_type11_lsa_term (struct ospf *ospf); - -extern int -ospf_register_opaque_functab ( - u_char lsa_type, - u_char opaque_type, - int (* new_if_hook)(struct interface *ifp), - int (* del_if_hook)(struct interface *ifp), - void (* ism_change_hook)(struct ospf_interface *oi, int old_status), - void (* nsm_change_hook)(struct ospf_neighbor *nbr, int old_status), - void (* config_write_router)(struct vty *vty), - void (* config_write_if )(struct vty *vty, struct interface *ifp), - void (* config_write_debug )(struct vty *vty), - void (* show_opaque_info )(struct vty *vty, struct ospf_lsa *lsa), - int (* lsa_originator)(void *arg), - struct ospf_lsa *(* lsa_refresher )(struct ospf_lsa *lsa), - int (* new_lsa_hook)(struct ospf_lsa *lsa), - int (* del_lsa_hook)(struct ospf_lsa *lsa) -); -extern void ospf_delete_opaque_functab (u_char lsa_type, u_char opaque_type); - -extern int ospf_opaque_new_if (struct interface *ifp); -extern int ospf_opaque_del_if (struct interface *ifp); -extern void ospf_opaque_ism_change (struct ospf_interface *oi, - int old_status); -extern void ospf_opaque_nsm_change (struct ospf_neighbor *nbr, - int old_status); -extern void ospf_opaque_config_write_router (struct vty *vty, struct ospf *); -extern void ospf_opaque_config_write_if (struct vty *vty, - struct interface *ifp); -extern void ospf_opaque_config_write_debug (struct vty *vty); -extern void show_opaque_info_detail (struct vty *vty, struct ospf_lsa *lsa); -extern void ospf_opaque_lsa_dump (struct stream *s, u_int16_t length); - -extern void ospf_opaque_lsa_originate_schedule (struct ospf_interface *oi, - int *init_delay); -extern struct ospf_lsa *ospf_opaque_lsa_install (struct ospf_lsa *, - int rt_recalc); -extern struct ospf_lsa *ospf_opaque_lsa_refresh (struct ospf_lsa *lsa); - -extern void ospf_opaque_lsa_reoriginate_schedule (void *lsa_type_dependent, - u_char lsa_type, - u_char opaque_type); -extern void ospf_opaque_lsa_refresh_schedule (struct ospf_lsa *lsa); -extern void ospf_opaque_lsa_flush_schedule (struct ospf_lsa *lsa); - -extern void ospf_opaque_self_originated_lsa_received (struct ospf_neighbor - *nbr, - struct ospf_lsa *lsa); -extern struct ospf *oi_to_top (struct ospf_interface *oi); +extern void ospf_opaque_init(void); +extern void ospf_opaque_term(void); +extern int ospf_opaque_type9_lsa_init(struct ospf_interface *oi); +extern void ospf_opaque_type9_lsa_term(struct ospf_interface *oi); +extern int ospf_opaque_type10_lsa_init(struct ospf_area *area); +extern void ospf_opaque_type10_lsa_term(struct ospf_area *area); +extern int ospf_opaque_type11_lsa_init(struct ospf *ospf); +extern void ospf_opaque_type11_lsa_term(struct ospf *ospf); + +extern int ospf_register_opaque_functab( + u_char lsa_type, u_char opaque_type, + int (*new_if_hook)(struct interface *ifp), + int (*del_if_hook)(struct interface *ifp), + void (*ism_change_hook)(struct ospf_interface *oi, int old_status), + void (*nsm_change_hook)(struct ospf_neighbor *nbr, int old_status), + void (*config_write_router)(struct vty *vty), + void (*config_write_if)(struct vty *vty, struct interface *ifp), + void (*config_write_debug)(struct vty *vty), + void (*show_opaque_info)(struct vty *vty, struct ospf_lsa *lsa), + int (*lsa_originator)(void *arg), + struct ospf_lsa *(*lsa_refresher)(struct ospf_lsa *lsa), + int (*new_lsa_hook)(struct ospf_lsa *lsa), + int (*del_lsa_hook)(struct ospf_lsa *lsa)); +extern void ospf_delete_opaque_functab(u_char lsa_type, u_char opaque_type); + +extern int ospf_opaque_new_if(struct interface *ifp); +extern int ospf_opaque_del_if(struct interface *ifp); +extern void ospf_opaque_ism_change(struct ospf_interface *oi, int old_status); +extern void ospf_opaque_nsm_change(struct ospf_neighbor *nbr, int old_status); +extern void ospf_opaque_config_write_router(struct vty *vty, struct ospf *); +extern void ospf_opaque_config_write_if(struct vty *vty, struct interface *ifp); +extern void ospf_opaque_config_write_debug(struct vty *vty); +extern void show_opaque_info_detail(struct vty *vty, struct ospf_lsa *lsa); +extern void ospf_opaque_lsa_dump(struct stream *s, u_int16_t length); + +extern void ospf_opaque_lsa_originate_schedule(struct ospf_interface *oi, + int *init_delay); +extern struct ospf_lsa *ospf_opaque_lsa_install(struct ospf_lsa *, + int rt_recalc); +extern struct ospf_lsa *ospf_opaque_lsa_refresh(struct ospf_lsa *lsa); + +extern void ospf_opaque_lsa_reoriginate_schedule(void *lsa_type_dependent, + u_char lsa_type, + u_char opaque_type); +extern void ospf_opaque_lsa_refresh_schedule(struct ospf_lsa *lsa); +extern void ospf_opaque_lsa_flush_schedule(struct ospf_lsa *lsa); + +extern void ospf_opaque_self_originated_lsa_received(struct ospf_neighbor *nbr, + struct ospf_lsa *lsa); +extern struct ospf *oi_to_top(struct ospf_interface *oi); #endif /* _ZEBRA_OSPF_OPAQUE_H */ |