+ const fib_prefix_t *conn);
+
+/**
+ * @brief Get an existing glean
+ *
+ * @return INVALID if it does not exist
+ */
+extern adj_index_t adj_glean_get(fib_protocol_t proto,
+ u32 sw_if_index,
+ const ip46_address_t *nh_addr);
+
+/**
+ * adj_glean_update_rewrite
+ *
+ * Called by an adjacency provider (an interface type) to configure
+ * a glean adj (i.e. and adjacency linked to a connected prefix) to
+ * its default behaviour.
+ * Other interface types (i.e. 6RD tunnels) can can choose not to use
+ * glean behaviour on an adjacency liked to a connected prefix.
+ */
+extern void adj_glean_update_rewrite(adj_index_t adj_index);
+extern void adj_glean_update_rewrite_itf(u32 sw_if_index);
+
+/**
+ * Return the source address from the glean
+ */
+const ip46_address_t *adj_glean_get_src(fib_protocol_t proto,
+ u32 sw_if_index,
+ const ip46_address_t *nh_addr);