summaryrefslogtreecommitdiff
path: root/lib/zclient.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/zclient.h')
-rw-r--r--lib/zclient.h103
1 files changed, 44 insertions, 59 deletions
diff --git a/lib/zclient.h b/lib/zclient.h
index 0926281f2e..09f0acad84 100644
--- a/lib/zclient.h
+++ b/lib/zclient.h
@@ -76,6 +76,7 @@ typedef enum {
ZEBRA_INTERFACE_UP,
ZEBRA_INTERFACE_DOWN,
ZEBRA_INTERFACE_SET_MASTER,
+ ZEBRA_INTERFACE_SET_PROTODOWN,
ZEBRA_ROUTE_ADD,
ZEBRA_ROUTE_DELETE,
ZEBRA_ROUTE_NOTIFY_OWNER,
@@ -221,66 +222,49 @@ struct zclient {
/* Redistribute defauilt. */
vrf_bitmap_t default_information[AFI_MAX];
+#define ZAPI_CALLBACK_ARGS \
+ int cmd, struct zclient *zclient, uint16_t length, vrf_id_t vrf_id
+
/* Pointer to the callback functions. */
void (*zebra_connected)(struct zclient *);
void (*zebra_capabilities)(struct zclient_capabilities *cap);
- int (*router_id_update)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*interface_add)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*interface_delete)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*interface_up)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*interface_down)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*interface_address_add)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*interface_address_delete)(int, struct zclient *, uint16_t,
- vrf_id_t);
- int (*interface_link_params)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*interface_bfd_dest_update)(int, struct zclient *, uint16_t,
- vrf_id_t);
- int (*interface_nbr_address_add)(int, struct zclient *, uint16_t,
- vrf_id_t);
- int (*interface_nbr_address_delete)(int, struct zclient *, uint16_t,
- vrf_id_t);
- int (*interface_vrf_update)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*nexthop_update)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*import_check_update)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*bfd_dest_replay)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*redistribute_route_add)(int, struct zclient *, uint16_t,
- vrf_id_t);
- int (*redistribute_route_del)(int, struct zclient *, uint16_t,
- vrf_id_t);
+ int (*router_id_update)(ZAPI_CALLBACK_ARGS);
+ int (*interface_add)(ZAPI_CALLBACK_ARGS);
+ int (*interface_delete)(ZAPI_CALLBACK_ARGS);
+ int (*interface_up)(ZAPI_CALLBACK_ARGS);
+ int (*interface_down)(ZAPI_CALLBACK_ARGS);
+ int (*interface_address_add)(ZAPI_CALLBACK_ARGS);
+ int (*interface_address_delete)(ZAPI_CALLBACK_ARGS);
+ int (*interface_link_params)(ZAPI_CALLBACK_ARGS);
+ int (*interface_bfd_dest_update)(ZAPI_CALLBACK_ARGS);
+ int (*interface_nbr_address_add)(ZAPI_CALLBACK_ARGS);
+ int (*interface_nbr_address_delete)(ZAPI_CALLBACK_ARGS);
+ int (*interface_vrf_update)(ZAPI_CALLBACK_ARGS);
+ int (*nexthop_update)(ZAPI_CALLBACK_ARGS);
+ int (*import_check_update)(ZAPI_CALLBACK_ARGS);
+ int (*bfd_dest_replay)(ZAPI_CALLBACK_ARGS);
+ int (*redistribute_route_add)(ZAPI_CALLBACK_ARGS);
+ int (*redistribute_route_del)(ZAPI_CALLBACK_ARGS);
int (*fec_update)(int, struct zclient *, uint16_t);
- int (*local_es_add)(int command, struct zclient *zclient,
- uint16_t length, vrf_id_t vrf_id);
- int (*local_es_del)(int command, struct zclient *zclient,
- uint16_t length, vrf_id_t vrf_id);
- int (*local_vni_add)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*local_vni_del)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*local_l3vni_add)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*local_l3vni_del)(int, struct zclient *, uint16_t, vrf_id_t);
- void (*local_ip_prefix_add)(int, struct zclient *, uint16_t, vrf_id_t);
- void (*local_ip_prefix_del)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*local_macip_add)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*local_macip_del)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*pw_status_update)(int, struct zclient *, uint16_t, vrf_id_t);
- int (*route_notify_owner)(int command, struct zclient *zclient,
- uint16_t length, vrf_id_t vrf_id);
- int (*rule_notify_owner)(int command, struct zclient *zclient,
- uint16_t length, vrf_id_t vrf_id);
- void (*label_chunk)(int command, struct zclient *zclient,
- uint16_t length, vrf_id_t vrf_id);
- int (*ipset_notify_owner)(int command, struct zclient *zclient,
- uint16_t length, vrf_id_t vrf_id);
- int (*ipset_entry_notify_owner)(int command,
- struct zclient *zclient,
- uint16_t length,
- vrf_id_t vrf_id);
- int (*iptable_notify_owner)(int command,
- struct zclient *zclient,
- uint16_t length,
- vrf_id_t vrf_id);
- int (*vxlan_sg_add)(int command, struct zclient *client,
- uint16_t length, vrf_id_t vrf_id);
- int (*vxlan_sg_del)(int command, struct zclient *client,
- uint16_t length, vrf_id_t vrf_id_t);
+ int (*local_es_add)(ZAPI_CALLBACK_ARGS);
+ int (*local_es_del)(ZAPI_CALLBACK_ARGS);
+ int (*local_vni_add)(ZAPI_CALLBACK_ARGS);
+ int (*local_vni_del)(ZAPI_CALLBACK_ARGS);
+ int (*local_l3vni_add)(ZAPI_CALLBACK_ARGS);
+ int (*local_l3vni_del)(ZAPI_CALLBACK_ARGS);
+ void (*local_ip_prefix_add)(ZAPI_CALLBACK_ARGS);
+ void (*local_ip_prefix_del)(ZAPI_CALLBACK_ARGS);
+ int (*local_macip_add)(ZAPI_CALLBACK_ARGS);
+ int (*local_macip_del)(ZAPI_CALLBACK_ARGS);
+ int (*pw_status_update)(ZAPI_CALLBACK_ARGS);
+ int (*route_notify_owner)(ZAPI_CALLBACK_ARGS);
+ int (*rule_notify_owner)(ZAPI_CALLBACK_ARGS);
+ void (*label_chunk)(ZAPI_CALLBACK_ARGS);
+ int (*ipset_notify_owner)(ZAPI_CALLBACK_ARGS);
+ int (*ipset_entry_notify_owner)(ZAPI_CALLBACK_ARGS);
+ int (*iptable_notify_owner)(ZAPI_CALLBACK_ARGS);
+ int (*vxlan_sg_add)(ZAPI_CALLBACK_ARGS);
+ int (*vxlan_sg_del)(ZAPI_CALLBACK_ARGS);
};
/* Zebra API message flag. */
@@ -483,6 +467,9 @@ extern void zclient_send_interface_radv_req(struct zclient *zclient,
vrf_id_t vrf_id,
struct interface *ifp, int enable,
int ra_interval);
+extern int zclient_send_interface_protodown(struct zclient *zclient,
+ vrf_id_t vrf_id,
+ struct interface *ifp, bool down);
/* Send redistribute command to zebra daemon. Do not update zclient state. */
extern int zebra_redistribute_send(int command, struct zclient *, afi_t,
@@ -597,9 +584,7 @@ extern int tm_release_table_chunk(struct zclient *zclient, uint32_t start,
extern int zebra_send_pw(struct zclient *zclient, int command,
struct zapi_pw *pw);
-extern void zebra_read_pw_status_update(int command, struct zclient *zclient,
- zebra_size_t length, vrf_id_t vrf_id,
- struct zapi_pw_status *pw);
+extern void zebra_read_pw_status_update(ZAPI_CALLBACK_ARGS, struct zapi_pw_status *pw);
extern int zclient_route_send(uint8_t, struct zclient *, struct zapi_route *);
extern int zclient_send_rnh(struct zclient *zclient, int command,