summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_route.h
diff options
context:
space:
mode:
Diffstat (limited to 'ospf6d/ospf6_route.h')
-rw-r--r--ospf6d/ospf6_route.h36
1 files changed, 14 insertions, 22 deletions
diff --git a/ospf6d/ospf6_route.h b/ospf6d/ospf6_route.h
index e29439b95e..633b8d77cd 100644
--- a/ospf6d/ospf6_route.h
+++ b/ospf6d/ospf6_route.h
@@ -186,7 +186,7 @@ struct ospf6_route {
struct timeval changed;
/* flag */
- uint8_t flag;
+ uint16_t flag;
/* Prefix Options */
uint8_t prefix_options;
@@ -221,14 +221,15 @@ struct ospf6_route {
#define OSPF6_DEST_TYPE_RANGE 5
#define OSPF6_DEST_TYPE_MAX 6
-#define OSPF6_ROUTE_CHANGE 0x01
-#define OSPF6_ROUTE_ADD 0x02
-#define OSPF6_ROUTE_REMOVE 0x04
-#define OSPF6_ROUTE_BEST 0x08
-#define OSPF6_ROUTE_ACTIVE_SUMMARY 0x10
-#define OSPF6_ROUTE_DO_NOT_ADVERTISE 0x20
-#define OSPF6_ROUTE_WAS_REMOVED 0x40
-#define OSPF6_ROUTE_BLACKHOLE_ADDED 0x80
+#define OSPF6_ROUTE_CHANGE 0x0001
+#define OSPF6_ROUTE_ADD 0x0002
+#define OSPF6_ROUTE_REMOVE 0x0004
+#define OSPF6_ROUTE_BEST 0x0008
+#define OSPF6_ROUTE_ACTIVE_SUMMARY 0x0010
+#define OSPF6_ROUTE_DO_NOT_ADVERTISE 0x0020
+#define OSPF6_ROUTE_WAS_REMOVED 0x0040
+#define OSPF6_ROUTE_BLACKHOLE_ADDED 0x0080
+#define OSPF6_ROUTE_NSSA_RANGE 0x0100
struct ospf6;
struct ospf6_route_table {
@@ -241,8 +242,6 @@ struct ospf6_route_table {
uint32_t count;
- bitfield_t idspace;
-
/* hooks */
void (*hook_add)(struct ospf6_route *);
void (*hook_change)(struct ospf6_route *);
@@ -292,20 +291,13 @@ extern const char *const ospf6_path_type_substr[OSPF6_PATH_TYPE_MAX];
#define OSPF6_ROUTE_PREFIX_STR "Display the route\n"
#define OSPF6_ROUTE_MATCH_STR "Display the route matches the prefix\n"
-#define ospf6_route_is_prefix(p, r) \
- (memcmp(p, &(r)->prefix, sizeof(struct prefix)) == 0)
+#define ospf6_route_is_prefix(p, r) (prefix_same(p, &(r)->prefix))
#define ospf6_route_is_same(ra, rb) (prefix_same(&(ra)->prefix, &(rb)->prefix))
#define ospf6_route_is_same_origin(ra, rb) \
((ra)->path.area_id == (rb)->path.area_id \
- && memcmp(&(ra)->path.origin, &(rb)->path.origin, \
- sizeof(struct ospf6_ls_origin)) \
- == 0)
-#define ospf6_route_is_identical(ra, rb) \
- ((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)
+ && (ra)->path.origin.type == (rb)->path.origin.type \
+ && (ra)->path.origin.id == (rb)->path.origin.id \
+ && (ra)->path.origin.adv_router == (rb)->path.origin.adv_router)
#define ospf6_route_is_best(r) (CHECK_FLAG ((r)->flag, OSPF6_ROUTE_BEST))