]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospf6d/ospf6_route.h
Merge pull request #5785 from ton31337/fix/replace_gtsm_hops_to_readable_macros
[mirror_frr.git] / ospf6d / ospf6_route.h
index 7ad1f19fc6c5d6dcbf6ab7760d8c2026783ed047..13b01a3487a3365a6a676392430a5ce0f1854e0c 100644 (file)
@@ -91,6 +91,9 @@ struct ospf6_path {
        /* Cost */
        uint8_t metric_type;
        uint32_t cost;
+
+       struct prefix ls_prefix;
+
        union {
                uint32_t cost_e2;
                uint32_t cost_config;
@@ -212,8 +215,8 @@ struct ospf6_route_table {
 #define OSPF6_ROUTE_TABLE_CREATE(s, t)                                         \
        ospf6_route_table_create(OSPF6_SCOPE_TYPE_##s, OSPF6_TABLE_TYPE_##t)
 
-extern const char *ospf6_dest_type_str[OSPF6_DEST_TYPE_MAX];
-extern const char *ospf6_dest_type_substr[OSPF6_DEST_TYPE_MAX];
+extern const char *const ospf6_dest_type_str[OSPF6_DEST_TYPE_MAX];
+extern const char *const ospf6_dest_type_substr[OSPF6_DEST_TYPE_MAX];
 #define OSPF6_DEST_TYPE_NAME(x)                                                \
        (0 < (x) && (x) < OSPF6_DEST_TYPE_MAX ? ospf6_dest_type_str[(x)]       \
                                              : ospf6_dest_type_str[0])
@@ -221,8 +224,8 @@ extern const char *ospf6_dest_type_substr[OSPF6_DEST_TYPE_MAX];
        (0 < (x) && (x) < OSPF6_DEST_TYPE_MAX ? ospf6_dest_type_substr[(x)]    \
                                              : ospf6_dest_type_substr[0])
 
-extern const char *ospf6_path_type_str[OSPF6_PATH_TYPE_MAX];
-extern const char *ospf6_path_type_substr[OSPF6_PATH_TYPE_MAX];
+extern const char *const ospf6_path_type_str[OSPF6_PATH_TYPE_MAX];
+extern const char *const ospf6_path_type_substr[OSPF6_PATH_TYPE_MAX];
 #define OSPF6_PATH_TYPE_NAME(x)                                                \
        (0 < (x) && (x) < OSPF6_PATH_TYPE_MAX ? ospf6_path_type_str[(x)]       \
                                              : ospf6_path_type_str[0])
@@ -246,6 +249,7 @@ extern const char *ospf6_path_type_substr[OSPF6_PATH_TYPE_MAX];
        ((ra)->type == (rb)->type                                              \
         && memcmp(&(ra)->prefix, &(rb)->prefix, sizeof(struct prefix)) == 0   \
         && memcmp(&(ra)->path, &(rb)->path, sizeof(struct ospf6_path)) == 0   \
+        && listcount(ra->paths) == listcount(rb->paths)                       \
         && ospf6_route_cmp_nexthops(ra, rb) == 0)
 
 #define ospf6_route_is_best(r) (CHECK_FLAG ((r)->flag, OSPF6_ROUTE_BEST))
@@ -340,5 +344,6 @@ extern void ospf6_route_init(void);
 extern void ospf6_clean(void);
 extern void ospf6_path_free(struct ospf6_path *op);
 extern struct ospf6_path *ospf6_path_dup(struct ospf6_path *path);
+extern void ospf6_copy_paths(struct list *dst, struct list *src);
 
 #endif /* OSPF6_ROUTE_H */