]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospfd/ospf_opaque.h
lib: enforce vrf_name_to_id by returning default_vrf when name is null
[mirror_frr.git] / ospfd / ospf_opaque.h
index 9dc1f92f4dc16ab0decc992dd94c3fdb1405342d..96155608b28335ff20f385c817e5e238179d9f58 100644 (file)
 #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) (((uint32_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) ((uint32_t)(lsid)&LSID_OPAQUE_ID_MASK)
 
 #define SET_OPAQUE_LSID(type, id)                                              \
        ((((unsigned)(type) << 24) & LSID_OPAQUE_TYPE_MASK)                    \
-        | ((id) & LSID_OPAQUE_ID_MASK))
+        | ((id)&LSID_OPAQUE_ID_MASK))
 
 /*
  * Opaque LSA types will be assigned by IANA.
@@ -59,7 +59,9 @@
 #define OPAQUE_TYPE_L1VPN_LSA                          5
 #define OPAQUE_TYPE_ROUTER_INFORMATION_LSA             4
 #define OPAQUE_TYPE_INTER_AS_LSA                       6
-#define OPAQUE_TYPE_MAX                                6
+#define OPAQUE_TYPE_EXTENDED_PREFIX_LSA                7
+#define OPAQUE_TYPE_EXTENDED_LINK_LSA                  8
+#define OPAQUE_TYPE_MAX                                8
 
 /* Followings types are proposed in internet-draft documents. */
 #define OPAQUE_TYPE_8021_QOSPF                         129
 
 #define VALID_OPAQUE_INFO_LEN(lsahdr)                                          \
        ((ntohs((lsahdr)->length) >= sizeof(struct lsa_header))                \
-        && ((ntohs((lsahdr)->length) % sizeof(u_int32_t)) == 0))
+        && ((ntohs((lsahdr)->length) % sizeof(uint32_t)) == 0))
 
 /*
  * Following section defines generic TLV (type, length, value) macros,
  * used for various LSA opaque usage e.g. Traffic Engineering.
  */
 struct tlv_header {
-       u_int16_t type;         /* Type of Value */
-       u_int16_t length;       /* Length of Value portion only, in bytes */
+       uint16_t type;   /* Type of Value */
+       uint16_t length; /* Length of Value portion only, in bytes */
 };
 
 #define TLV_HDR_SIZE   (sizeof(struct tlv_header))
 
-#define TLV_BODY_SIZE(tlvh) \
-       (ROUNDUP(ntohs((tlvh)->length), sizeof(u_int32_t)))
+#define TLV_BODY_SIZE(tlvh) (ROUNDUP(ntohs((tlvh)->length), sizeof(uint32_t)))
 
 #define TLV_SIZE(tlvh) (TLV_HDR_SIZE + TLV_BODY_SIZE(tlvh))
 
-#define TLV_HDR_TOP(lsah) \
+#define TLV_HDR_TOP(lsah)                                                      \
        (struct tlv_header *)((char *)(lsah) + OSPF_LSA_HEADER_SIZE)
 
-#define TLV_HDR_NEXT(tlvh) \
+#define TLV_HDR_NEXT(tlvh)                                                     \
        (struct tlv_header *)((char *)(tlvh) + TLV_SIZE(tlvh))
 
-#define TLV_HDR_SUBTLV(tlvh) \
+#define TLV_HDR_SUBTLV(tlvh)                                                   \
        (struct tlv_header *)((char *)(tlvh) + TLV_HDR_SIZE)
 
 #define TLV_DATA(tlvh) (void *)((char *)(tlvh) + TLV_HDR_SIZE)
@@ -110,16 +111,13 @@ struct tlv_header {
 #define TLV_HDR(tlvh)  tlvh.header
 
 /* Following declaration concerns the Opaque LSA management */
-enum lsa_opcode {
-       REORIGINATE_THIS_LSA,
-       REFRESH_THIS_LSA,
-       FLUSH_THIS_LSA
-};
+enum lsa_opcode { REORIGINATE_THIS_LSA, REFRESH_THIS_LSA, FLUSH_THIS_LSA };
 
 /* Prototypes. */
 
 extern void ospf_opaque_init(void);
 extern void ospf_opaque_term(void);
+extern void ospf_opaque_finish(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);
@@ -128,7 +126,7 @@ 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,
+       uint8_t lsa_type, uint8_t 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),
@@ -141,7 +139,7 @@ extern int ospf_register_opaque_functab(
        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 void ospf_delete_opaque_functab(uint8_t lsa_type, uint8_t opaque_type);
 
 extern int ospf_opaque_new_if(struct interface *ifp);
 extern int ospf_opaque_del_if(struct interface *ifp);
@@ -151,7 +149,7 @@ extern void ospf_opaque_config_write_router(struct vty *vty, struct ospf *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_dump(struct stream *s, uint16_t length);
 
 extern void ospf_opaque_lsa_originate_schedule(struct ospf_interface *oi,
                                               int *init_delay);
@@ -160,8 +158,8 @@ extern struct ospf_lsa *ospf_opaque_lsa_install(struct ospf_lsa *lsa,
 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);
+                                                uint8_t lsa_type,
+                                                uint8_t opaque_type);
 extern void ospf_opaque_lsa_refresh_schedule(struct ospf_lsa *lsa);
 extern void ospf_opaque_lsa_flush_schedule(struct ospf_lsa *lsa);