zebra: Collapse struct static_ipv[4|6] into struct static_route
The 'struct static_ipv4' and 'struct static_ipv6' structures
are essentially the same. Collapse them into one data structure
'struct static_route'.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
diff --git a/zebra/rib.h b/zebra/rib.h
index fbf4fc4..408ceb4 100644
--- a/zebra/rib.h
+++ b/zebra/rib.h
@@ -173,11 +173,11 @@
RIB_DEST_FOREACH_ROUTE_SAFE (rib_dest_from_rnode (rn), rib, next)
/* Static route information. */
-struct static_ipv4
+struct static_route
{
/* For linked list. */
- struct static_ipv4 *prev;
- struct static_ipv4 *next;
+ struct static_route *prev;
+ struct static_route *next;
/* VRF identifier. */
vrf_id_t vrf_id;
@@ -187,47 +187,15 @@
/* Flag for this static route's type. */
u_char type;
-#define STATIC_IPV4_GATEWAY 1
-#define STATIC_IPV4_IFNAME 2
-#define STATIC_IPV4_BLACKHOLE 3
+#define STATIC_IPV4_GATEWAY 1
+#define STATIC_IPV4_IFNAME 2
+#define STATIC_IPV4_BLACKHOLE 3
+#define STATIC_IPV6_GATEWAY 4
+#define STATIC_IPV6_GATEWAY_IFNAME 5
+#define STATIC_IPV6_IFNAME 6
/* Nexthop value. */
- union
- {
- struct in_addr ipv4;
- char *ifname;
- } gate;
-
- /* bit flags */
- u_char flags;
-/*
- see ZEBRA_FLAG_REJECT
- ZEBRA_FLAG_BLACKHOLE
- */
-};
-
-#ifdef HAVE_IPV6
-/* Static route information. */
-struct static_ipv6
-{
- /* For linked list. */
- struct static_ipv6 *prev;
- struct static_ipv6 *next;
-
- /* VRF identifier. */
- vrf_id_t vrf_id;
-
- /* Administrative distance. */
- u_char distance;
-
- /* Flag for this static route's type. */
- u_char type;
-#define STATIC_IPV6_GATEWAY 1
-#define STATIC_IPV6_GATEWAY_IFNAME 2
-#define STATIC_IPV6_IFNAME 3
-
- /* Nexthop value. */
- struct in6_addr ipv6;
+ union g_addr addr;
char *ifname;
/* bit flags */
@@ -237,7 +205,6 @@
ZEBRA_FLAG_BLACKHOLE
*/
};
-#endif /* HAVE_IPV6 */
enum nexthop_types_t
{