summaryrefslogtreecommitdiff
path: root/zebra/rib.h
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/rib.h')
-rw-r--r--zebra/rib.h20
1 files changed, 11 insertions, 9 deletions
diff --git a/zebra/rib.h b/zebra/rib.h
index d80ea6cbd8..c0cde50baf 100644
--- a/zebra/rib.h
+++ b/zebra/rib.h
@@ -32,6 +32,7 @@
#include "vrf.h"
#include "if.h"
#include "mpls.h"
+#include "srcdest_table.h"
#define DISTANCE_INFINITY 255
#define ZEBRA_KERNEL_TABLE_MAX 252 /* support for no more than this rt tables */
@@ -311,9 +312,10 @@ extern enum multicast_mode multicast_mode_ipv4_get (void);
extern int nexthop_has_fib_child(struct nexthop *);
extern void rib_lookup_and_dump (struct prefix_ipv4 *, vrf_id_t);
extern void rib_lookup_and_pushup (struct prefix_ipv4 *, vrf_id_t);
-#define rib_dump(prefix ,rib) _rib_dump(__func__, prefix, rib)
+#define rib_dump(prefix, src, rib) _rib_dump(__func__, prefix, src, rib)
extern void _rib_dump (const char *,
- union prefix46constptr, const struct rib *);
+ union prefixconstptr,
+ union prefixconstptr, const struct rib *);
extern int rib_lookup_ipv4_route (struct prefix_ipv4 *, union sockunion *,
vrf_id_t);
#define ZEBRA_RIB_LOOKUP_ERROR -1
@@ -342,17 +344,17 @@ extern int rib_uninstall_kernel (struct route_node *rn, struct rib *rib);
* also implicitly withdraw equal prefix of same type. */
extern int rib_add (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
u_short instance, int flags, struct prefix *p,
- union g_addr *gate, union g_addr *src,
+ struct prefix_ipv6 *src_p, union g_addr *gate, union g_addr *src,
ifindex_t ifindex, u_int32_t table_id,
u_int32_t, u_int32_t, u_char);
extern int rib_add_multipath (afi_t afi, safi_t safi, struct prefix *,
- struct rib *);
+ struct prefix_ipv6 *src_p, struct rib *);
-extern int rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
- u_short instance, int flags, struct prefix *p,
- union g_addr *gate, ifindex_t ifindex,
- u_int32_t table_id);
+extern void rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
+ u_short instance, int flags, struct prefix *p,
+ struct prefix_ipv6 *src_p, union g_addr *gate,
+ ifindex_t ifindex, u_int32_t table_id);
extern struct rib *rib_match (afi_t afi, safi_t safi, vrf_id_t, union g_addr *,
struct route_node **rn_out);
@@ -444,7 +446,7 @@ rib_dest_af (rib_dest_t *dest)
static inline struct route_table *
rib_dest_table (rib_dest_t *dest)
{
- return dest->rnode->table;
+ return srcdest_rnode_table(dest->rnode);
}
/*