]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/rt.h
Merge pull request #3069 from donaldsharp/bgp_nexthop_address
[mirror_frr.git] / zebra / rt.h
index 54d45b889a303a9f4c9b014340bb7257b8c869a1..95b48a9a5387bc0809f3eb8eebe90bd34e5e392b 100644 (file)
  */
 
 
-enum southbound_results {
-       SOUTHBOUND_INSTALL_SUCCESS,
-       SOUTHBOUND_INSTALL_FAILURE,
-       SOUTHBOUND_DELETE_SUCCESS,
-       SOUTHBOUND_DELETE_FAILURE,
+enum dp_results {
+       DP_INSTALL_SUCCESS,
+       DP_INSTALL_FAILURE,
+       DP_DELETE_SUCCESS,
+       DP_DELETE_FAILURE,
+};
+
+enum dp_req_result {
+       DP_REQUEST_QUEUED,
+       DP_REQUEST_SUCCESS,
+       DP_REQUEST_FAILURE,
 };
 
 /*
@@ -60,9 +66,11 @@ enum southbound_results {
  * semantics so we will end up with a delete than
  * a re-add.
  */
-extern void kernel_route_rib(struct route_node *rn, struct prefix *p,
-                            struct prefix *src_p, struct route_entry *old,
-                            struct route_entry *new);
+extern enum dp_req_result kernel_route_rib(struct route_node *rn,
+                                          const struct prefix *p,
+                                          const struct prefix *src_p,
+                                          struct route_entry *old,
+                                          struct route_entry *new);
 
 /*
  * So route install/failure may not be immediately known
@@ -70,21 +78,22 @@ extern void kernel_route_rib(struct route_node *rn, struct prefix *p,
  * be passed back up.
  */
 extern void kernel_route_rib_pass_fail(struct route_node *rn,
-                                      struct prefix *p,
+                                      const struct prefix *p,
                                       struct route_entry *re,
-                                      enum southbound_results res);
+                                      enum dp_results res);
 
 extern int kernel_address_add_ipv4(struct interface *, struct connected *);
 extern int kernel_address_delete_ipv4(struct interface *, struct connected *);
-extern int kernel_address_add_ipv6 (struct interface *, struct connected *);
-extern int kernel_address_delete_ipv6 (struct interface *, struct connected *);
-extern int kernel_neigh_update(int, int, uint32_t, char *, int);
+extern int kernel_address_add_ipv6(struct interface *, struct connected *);
+extern int kernel_address_delete_ipv6(struct interface *, struct connected *);
+extern int kernel_neigh_update(int cmd, int ifindex, uint32_t addr, char *lla,
+                              int llalen, ns_id_t ns_id);
 extern int kernel_interface_set_master(struct interface *master,
                                       struct interface *slave);
 
-extern void kernel_add_lsp(zebra_lsp_t *lsp);
-extern void kernel_upd_lsp(zebra_lsp_t *lsp);
-extern void kernel_del_lsp(zebra_lsp_t *lsp);
+extern enum dp_req_result kernel_add_lsp(zebra_lsp_t *lsp);
+extern enum dp_req_result kernel_upd_lsp(zebra_lsp_t *lsp);
+extern enum dp_req_result kernel_del_lsp(zebra_lsp_t *lsp);
 
 /*
  * Add the ability to pass back up the lsp install/delete
@@ -95,8 +104,7 @@ extern void kernel_del_lsp(zebra_lsp_t *lsp);
  * the install/failure to set/unset flags and to notify
  * as needed.
  */
-extern void kernel_lsp_pass_fail(zebra_lsp_t *lsp,
-                                enum southbound_results res);
+extern void kernel_lsp_pass_fail(zebra_lsp_t *lsp, enum dp_results res);
 
 extern int mpls_kernel_init(void);
 
@@ -108,13 +116,12 @@ extern int kernel_del_vtep(vni_t vni, struct interface *ifp,
                           struct in_addr *vtep_ip);
 extern int kernel_add_mac(struct interface *ifp, vlanid_t vid,
                          struct ethaddr *mac, struct in_addr vtep_ip,
-                         u_char sticky);
+                         bool sticky);
 extern int kernel_del_mac(struct interface *ifp, vlanid_t vid,
-                         struct ethaddr *mac, struct in_addr vtep_ip,
-                         int local);
+                         struct ethaddr *mac, struct in_addr vtep_ip);
 
 extern int kernel_add_neigh(struct interface *ifp, struct ipaddr *ip,
-                           struct ethaddr *mac);
+                           struct ethaddr *mac, uint8_t flags);
 extern int kernel_del_neigh(struct interface *ifp, struct ipaddr *ip);
 
 /*