summaryrefslogtreecommitdiffstats
path: root/lib/zclient.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/zclient.h')
-rw-r--r--lib/zclient.h506
1 files changed, 258 insertions, 248 deletions
diff --git a/lib/zclient.h b/lib/zclient.h
index c7cc857ef..efa5c32c1 100644
--- a/lib/zclient.h
+++ b/lib/zclient.h
@@ -38,148 +38,154 @@
/* Zebra message types. */
typedef enum {
- ZEBRA_INTERFACE_ADD,
- ZEBRA_INTERFACE_DELETE,
- ZEBRA_INTERFACE_ADDRESS_ADD,
- ZEBRA_INTERFACE_ADDRESS_DELETE,
- ZEBRA_INTERFACE_UP,
- ZEBRA_INTERFACE_DOWN,
- ZEBRA_IPV4_ROUTE_ADD,
- ZEBRA_IPV4_ROUTE_DELETE,
- ZEBRA_IPV6_ROUTE_ADD,
- ZEBRA_IPV6_ROUTE_DELETE,
- ZEBRA_REDISTRIBUTE_ADD,
- ZEBRA_REDISTRIBUTE_DELETE,
- ZEBRA_REDISTRIBUTE_DEFAULT_ADD,
- ZEBRA_REDISTRIBUTE_DEFAULT_DELETE,
- ZEBRA_ROUTER_ID_ADD,
- ZEBRA_ROUTER_ID_DELETE,
- ZEBRA_ROUTER_ID_UPDATE,
- ZEBRA_HELLO,
- ZEBRA_NEXTHOP_REGISTER,
- ZEBRA_NEXTHOP_UNREGISTER,
- ZEBRA_NEXTHOP_UPDATE,
- ZEBRA_INTERFACE_NBR_ADDRESS_ADD,
- ZEBRA_INTERFACE_NBR_ADDRESS_DELETE,
- ZEBRA_INTERFACE_BFD_DEST_UPDATE,
- ZEBRA_IMPORT_ROUTE_REGISTER,
- ZEBRA_IMPORT_ROUTE_UNREGISTER,
- ZEBRA_IMPORT_CHECK_UPDATE,
- ZEBRA_IPV4_ROUTE_IPV6_NEXTHOP_ADD,
- ZEBRA_BFD_DEST_REGISTER,
- ZEBRA_BFD_DEST_DEREGISTER,
- ZEBRA_BFD_DEST_UPDATE,
- ZEBRA_BFD_DEST_REPLAY,
- ZEBRA_REDISTRIBUTE_IPV4_ADD,
- ZEBRA_REDISTRIBUTE_IPV4_DEL,
- ZEBRA_REDISTRIBUTE_IPV6_ADD,
- ZEBRA_REDISTRIBUTE_IPV6_DEL,
- ZEBRA_VRF_UNREGISTER,
- ZEBRA_VRF_ADD,
- ZEBRA_VRF_DELETE,
- ZEBRA_INTERFACE_VRF_UPDATE,
- ZEBRA_BFD_CLIENT_REGISTER,
- ZEBRA_INTERFACE_ENABLE_RADV,
- ZEBRA_INTERFACE_DISABLE_RADV,
- ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB,
- ZEBRA_INTERFACE_LINK_PARAMS,
- ZEBRA_MPLS_LABELS_ADD,
- ZEBRA_MPLS_LABELS_DELETE,
- ZEBRA_IPV4_NEXTHOP_ADD,
- ZEBRA_IPV4_NEXTHOP_DELETE,
- ZEBRA_IPV6_NEXTHOP_ADD,
- ZEBRA_IPV6_NEXTHOP_DELETE,
- ZEBRA_IPMR_ROUTE_STATS,
- ZEBRA_LABEL_MANAGER_CONNECT,
- ZEBRA_GET_LABEL_CHUNK,
- ZEBRA_RELEASE_LABEL_CHUNK,
- ZEBRA_FEC_REGISTER,
- ZEBRA_FEC_UNREGISTER,
- ZEBRA_FEC_UPDATE,
- ZEBRA_ADVERTISE_ALL_VNI,
- ZEBRA_VNI_ADD,
- ZEBRA_VNI_DEL,
- ZEBRA_REMOTE_VTEP_ADD,
- ZEBRA_REMOTE_VTEP_DEL,
- ZEBRA_MACIP_ADD,
- ZEBRA_MACIP_DEL,
- ZEBRA_REMOTE_MACIP_ADD,
- ZEBRA_REMOTE_MACIP_DEL,
+ ZEBRA_INTERFACE_ADD,
+ ZEBRA_INTERFACE_DELETE,
+ ZEBRA_INTERFACE_ADDRESS_ADD,
+ ZEBRA_INTERFACE_ADDRESS_DELETE,
+ ZEBRA_INTERFACE_UP,
+ ZEBRA_INTERFACE_DOWN,
+ ZEBRA_IPV4_ROUTE_ADD,
+ ZEBRA_IPV4_ROUTE_DELETE,
+ ZEBRA_IPV6_ROUTE_ADD,
+ ZEBRA_IPV6_ROUTE_DELETE,
+ ZEBRA_REDISTRIBUTE_ADD,
+ ZEBRA_REDISTRIBUTE_DELETE,
+ ZEBRA_REDISTRIBUTE_DEFAULT_ADD,
+ ZEBRA_REDISTRIBUTE_DEFAULT_DELETE,
+ ZEBRA_ROUTER_ID_ADD,
+ ZEBRA_ROUTER_ID_DELETE,
+ ZEBRA_ROUTER_ID_UPDATE,
+ ZEBRA_HELLO,
+ ZEBRA_NEXTHOP_REGISTER,
+ ZEBRA_NEXTHOP_UNREGISTER,
+ ZEBRA_NEXTHOP_UPDATE,
+ ZEBRA_INTERFACE_NBR_ADDRESS_ADD,
+ ZEBRA_INTERFACE_NBR_ADDRESS_DELETE,
+ ZEBRA_INTERFACE_BFD_DEST_UPDATE,
+ ZEBRA_IMPORT_ROUTE_REGISTER,
+ ZEBRA_IMPORT_ROUTE_UNREGISTER,
+ ZEBRA_IMPORT_CHECK_UPDATE,
+ ZEBRA_IPV4_ROUTE_IPV6_NEXTHOP_ADD,
+ ZEBRA_BFD_DEST_REGISTER,
+ ZEBRA_BFD_DEST_DEREGISTER,
+ ZEBRA_BFD_DEST_UPDATE,
+ ZEBRA_BFD_DEST_REPLAY,
+ ZEBRA_REDISTRIBUTE_IPV4_ADD,
+ ZEBRA_REDISTRIBUTE_IPV4_DEL,
+ ZEBRA_REDISTRIBUTE_IPV6_ADD,
+ ZEBRA_REDISTRIBUTE_IPV6_DEL,
+ ZEBRA_VRF_UNREGISTER,
+ ZEBRA_VRF_ADD,
+ ZEBRA_VRF_DELETE,
+ ZEBRA_INTERFACE_VRF_UPDATE,
+ ZEBRA_BFD_CLIENT_REGISTER,
+ ZEBRA_INTERFACE_ENABLE_RADV,
+ ZEBRA_INTERFACE_DISABLE_RADV,
+ ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB,
+ ZEBRA_INTERFACE_LINK_PARAMS,
+ ZEBRA_MPLS_LABELS_ADD,
+ ZEBRA_MPLS_LABELS_DELETE,
+ ZEBRA_IPV4_NEXTHOP_ADD,
+ ZEBRA_IPV4_NEXTHOP_DELETE,
+ ZEBRA_IPV6_NEXTHOP_ADD,
+ ZEBRA_IPV6_NEXTHOP_DELETE,
+ ZEBRA_IPMR_ROUTE_STATS,
+ ZEBRA_LABEL_MANAGER_CONNECT,
+ ZEBRA_GET_LABEL_CHUNK,
+ ZEBRA_RELEASE_LABEL_CHUNK,
+ ZEBRA_FEC_REGISTER,
+ ZEBRA_FEC_UNREGISTER,
+ ZEBRA_FEC_UPDATE,
+ ZEBRA_ADVERTISE_ALL_VNI,
+ ZEBRA_VNI_ADD,
+ ZEBRA_VNI_DEL,
+ ZEBRA_REMOTE_VTEP_ADD,
+ ZEBRA_REMOTE_VTEP_DEL,
+ ZEBRA_MACIP_ADD,
+ ZEBRA_MACIP_DEL,
+ ZEBRA_REMOTE_MACIP_ADD,
+ ZEBRA_REMOTE_MACIP_DEL,
} zebra_message_types_t;
-struct redist_proto
-{
- u_char enabled;
- struct list *instances;
+struct redist_proto {
+ u_char enabled;
+ struct list *instances;
};
/* Structure for the zebra client. */
-struct zclient
-{
- /* The thread master we schedule ourselves on */
- struct thread_master *master;
-
- /* Socket to zebra daemon. */
- int sock;
-
- /* Flag of communication to zebra is enabled or not. Default is on.
- This flag is disabled by `no router zebra' statement. */
- int enable;
-
- /* Connection failure count. */
- int fail;
-
- /* Input buffer for zebra message. */
- struct stream *ibuf;
-
- /* Output buffer for zebra message. */
- struct stream *obuf;
-
- /* Buffer of data waiting to be written to zebra. */
- struct buffer *wb;
-
- /* Read and connect thread. */
- struct thread *t_read;
- struct thread *t_connect;
-
- /* Thread to write buffered data to zebra. */
- struct thread *t_write;
-
- /* Redistribute information. */
- u_char redist_default; /* clients protocol */
- u_short instance;
- struct redist_proto mi_redist[AFI_MAX][ZEBRA_ROUTE_MAX];
- vrf_bitmap_t redist[AFI_MAX][ZEBRA_ROUTE_MAX];
-
- /* Redistribute defauilt. */
- vrf_bitmap_t default_information;
-
- /* Pointer to the callback functions. */
- void (*zebra_connected) (struct zclient *);
- 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);
- 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_ipv4_add) (int, struct zclient *, uint16_t, vrf_id_t);
- int (*redistribute_route_ipv4_del) (int, struct zclient *, uint16_t, vrf_id_t);
- int (*redistribute_route_ipv6_add) (int, struct zclient *, uint16_t, vrf_id_t);
- int (*redistribute_route_ipv6_del) (int, struct zclient *, uint16_t, vrf_id_t);
- int (*fec_update) (int, struct zclient *, uint16_t);
- 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_macip_add) (int, struct zclient *, uint16_t, vrf_id_t);
- int (*local_macip_del) (int, struct zclient *, uint16_t, vrf_id_t);
+struct zclient {
+ /* The thread master we schedule ourselves on */
+ struct thread_master *master;
+
+ /* Socket to zebra daemon. */
+ int sock;
+
+ /* Flag of communication to zebra is enabled or not. Default is on.
+ This flag is disabled by `no router zebra' statement. */
+ int enable;
+
+ /* Connection failure count. */
+ int fail;
+
+ /* Input buffer for zebra message. */
+ struct stream *ibuf;
+
+ /* Output buffer for zebra message. */
+ struct stream *obuf;
+
+ /* Buffer of data waiting to be written to zebra. */
+ struct buffer *wb;
+
+ /* Read and connect thread. */
+ struct thread *t_read;
+ struct thread *t_connect;
+
+ /* Thread to write buffered data to zebra. */
+ struct thread *t_write;
+
+ /* Redistribute information. */
+ u_char redist_default; /* clients protocol */
+ u_short instance;
+ struct redist_proto mi_redist[AFI_MAX][ZEBRA_ROUTE_MAX];
+ vrf_bitmap_t redist[AFI_MAX][ZEBRA_ROUTE_MAX];
+
+ /* Redistribute defauilt. */
+ vrf_bitmap_t default_information;
+
+ /* Pointer to the callback functions. */
+ void (*zebra_connected)(struct zclient *);
+ 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);
+ 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_ipv4_add)(int, struct zclient *, uint16_t,
+ vrf_id_t);
+ int (*redistribute_route_ipv4_del)(int, struct zclient *, uint16_t,
+ vrf_id_t);
+ int (*redistribute_route_ipv6_add)(int, struct zclient *, uint16_t,
+ vrf_id_t);
+ int (*redistribute_route_ipv6_del)(int, struct zclient *, uint16_t,
+ vrf_id_t);
+ int (*fec_update)(int, struct zclient *, uint16_t);
+ 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_macip_add)(int, struct zclient *, uint16_t, vrf_id_t);
+ int (*local_macip_del)(int, struct zclient *, uint16_t, vrf_id_t);
};
/* Zebra API message flag. */
@@ -193,176 +199,180 @@ struct zclient
#define ZAPI_MESSAGE_LABEL 0x80
/* Zserv protocol message header */
-struct zserv_header
-{
- uint16_t length;
- uint8_t marker; /* corresponds to command field in old zserv
- * always set to 255 in new zserv.
- */
- uint8_t version;
+struct zserv_header {
+ uint16_t length;
+ uint8_t marker; /* corresponds to command field in old zserv
+ * always set to 255 in new zserv.
+ */
+ uint8_t version;
#define ZSERV_VERSION 4
- vrf_id_t vrf_id;
- uint16_t command;
+ vrf_id_t vrf_id;
+ uint16_t command;
};
-struct zapi_route
-{
- u_char type;
- u_short instance;
+struct zapi_route {
+ u_char type;
+ u_short instance;
- u_int32_t flags;
+ u_int32_t flags;
- u_char message;
+ u_char message;
- safi_t safi;
+ safi_t safi;
- u_char nexthop_num;
- struct nexthop **nexthop;
+ u_char nexthop_num;
+ struct nexthop **nexthop;
- u_char distance;
+ u_char distance;
- u_int32_t metric;
+ u_int32_t metric;
- route_tag_t tag;
+ route_tag_t tag;
- u_int32_t mtu;
+ u_int32_t mtu;
- vrf_id_t vrf_id;
+ vrf_id_t vrf_id;
};
/* Zebra IPv4 route message API. */
-struct zapi_ipv4
-{
- u_char type;
- u_short instance;
+struct zapi_ipv4 {
+ u_char type;
+ u_short instance;
- u_int32_t flags;
+ u_int32_t flags;
- u_char message;
+ u_char message;
- safi_t safi;
+ safi_t safi;
- u_char nexthop_num;
- struct in_addr **nexthop;
+ u_char nexthop_num;
+ struct in_addr **nexthop;
- u_char ifindex_num;
- ifindex_t *ifindex;
+ u_char ifindex_num;
+ ifindex_t *ifindex;
- u_char label_num;
- unsigned int *label;
+ u_char label_num;
+ unsigned int *label;
- u_char distance;
+ u_char distance;
- u_int32_t metric;
+ u_int32_t metric;
- route_tag_t tag;
+ route_tag_t tag;
- u_int32_t mtu;
+ u_int32_t mtu;
- vrf_id_t vrf_id;
+ vrf_id_t vrf_id;
};
/* Prototypes of zebra client service functions. */
-extern struct zclient *zclient_new (struct thread_master *);
-extern void zclient_init (struct zclient *, int, u_short);
-extern int zclient_start (struct zclient *);
-extern void zclient_stop (struct zclient *);
-extern void zclient_reset (struct zclient *);
-extern void zclient_free (struct zclient *);
+extern struct zclient *zclient_new(struct thread_master *);
+extern void zclient_init(struct zclient *, int, u_short);
+extern int zclient_start(struct zclient *);
+extern void zclient_stop(struct zclient *);
+extern void zclient_reset(struct zclient *);
+extern void zclient_free(struct zclient *);
-extern int zclient_socket_connect (struct zclient *);
-extern void zclient_serv_path_set (char *path);
-extern const char *zclient_serv_path_get (void);
+extern int zclient_socket_connect(struct zclient *);
+extern void zclient_serv_path_set(char *path);
+extern const char *zclient_serv_path_get(void);
-extern u_short *redist_check_instance (struct redist_proto *, u_short);
-extern void redist_add_instance (struct redist_proto *, u_short);
-extern void redist_del_instance (struct redist_proto *, u_short);
+extern u_short *redist_check_instance(struct redist_proto *, u_short);
+extern void redist_add_instance(struct redist_proto *, u_short);
+extern void redist_del_instance(struct redist_proto *, u_short);
-extern void zclient_send_reg_requests (struct zclient *, vrf_id_t);
-extern void zclient_send_dereg_requests (struct zclient *, vrf_id_t);
+extern void zclient_send_reg_requests(struct zclient *, vrf_id_t);
+extern void zclient_send_dereg_requests(struct zclient *, vrf_id_t);
-extern void zclient_send_interface_radv_req (struct zclient *zclient, vrf_id_t vrf_id,
- struct interface *ifp, int enable, int ra_interval);
+extern void zclient_send_interface_radv_req(struct zclient *zclient,
+ vrf_id_t vrf_id,
+ struct interface *ifp, int enable,
+ int ra_interval);
/* Send redistribute command to zebra daemon. Do not update zclient state. */
-extern int zebra_redistribute_send (int command, struct zclient *, afi_t, int type, u_short instance, vrf_id_t vrf_id);
+extern int zebra_redistribute_send(int command, struct zclient *, afi_t,
+ int type, u_short instance, vrf_id_t vrf_id);
/* If state has changed, update state and call zebra_redistribute_send. */
-extern void zclient_redistribute (int command, struct zclient *, afi_t, int type,
- u_short instance, vrf_id_t vrf_id);
+extern void zclient_redistribute(int command, struct zclient *, afi_t, int type,
+ u_short instance, vrf_id_t vrf_id);
/* If state has changed, update state and send the command to zebra. */
-extern void zclient_redistribute_default (int command, struct zclient *,
- vrf_id_t vrf_id);
+extern void zclient_redistribute_default(int command, struct zclient *,
+ vrf_id_t vrf_id);
/* Send the message in zclient->obuf to the zebra daemon (or enqueue it).
Returns 0 for success or -1 on an I/O error. */
extern int zclient_send_message(struct zclient *);
/* create header for command, length to be filled in by user later */
-extern void zclient_create_header (struct stream *, uint16_t, vrf_id_t);
-extern int zclient_read_header (struct stream *s, int sock, u_int16_t *size,
- u_char *marker, u_char *version,
- vrf_id_t *vrf_id, u_int16_t *cmd);
-
-extern struct interface *zebra_interface_add_read (struct stream *, vrf_id_t);
-extern struct interface *zebra_interface_state_read (struct stream *s, vrf_id_t);
-extern struct connected *zebra_interface_address_read (int, struct stream *, vrf_id_t);
-extern struct nbr_connected *zebra_interface_nbr_address_read (int, struct stream *, vrf_id_t);
-extern struct interface * zebra_interface_vrf_update_read (struct stream *s, vrf_id_t vrf_id,
- vrf_id_t *new_vrf_id);
-extern void zebra_interface_if_set_value (struct stream *, struct interface *);
-extern void zebra_router_id_update_read (struct stream *s, struct prefix *rid);
-extern int zapi_ipv4_route (u_char, struct zclient *, struct prefix_ipv4 *,
- struct zapi_ipv4 *);
-
-extern struct interface *zebra_interface_link_params_read (struct stream *);
-extern size_t zebra_interface_link_params_write (struct stream *,
- struct interface *);
-extern int lm_label_manager_connect (struct zclient *zclient);
-extern int lm_get_label_chunk (struct zclient *zclient, u_char keep,
- uint32_t chunk_size, uint32_t *start, uint32_t *end);
-extern int lm_release_label_chunk (struct zclient *zclient, uint32_t start, uint32_t end);
+extern void zclient_create_header(struct stream *, uint16_t, vrf_id_t);
+extern int zclient_read_header(struct stream *s, int sock, u_int16_t *size,
+ u_char *marker, u_char *version,
+ vrf_id_t *vrf_id, u_int16_t *cmd);
+
+extern struct interface *zebra_interface_add_read(struct stream *, vrf_id_t);
+extern struct interface *zebra_interface_state_read(struct stream *s, vrf_id_t);
+extern struct connected *zebra_interface_address_read(int, struct stream *,
+ vrf_id_t);
+extern struct nbr_connected *
+zebra_interface_nbr_address_read(int, struct stream *, vrf_id_t);
+extern struct interface *zebra_interface_vrf_update_read(struct stream *s,
+ vrf_id_t vrf_id,
+ vrf_id_t *new_vrf_id);
+extern void zebra_interface_if_set_value(struct stream *, struct interface *);
+extern void zebra_router_id_update_read(struct stream *s, struct prefix *rid);
+extern int zapi_ipv4_route(u_char, struct zclient *, struct prefix_ipv4 *,
+ struct zapi_ipv4 *);
+
+extern struct interface *zebra_interface_link_params_read(struct stream *);
+extern size_t zebra_interface_link_params_write(struct stream *,
+ struct interface *);
+extern int lm_label_manager_connect(struct zclient *zclient);
+extern int lm_get_label_chunk(struct zclient *zclient, u_char keep,
+ uint32_t chunk_size, uint32_t *start,
+ uint32_t *end);
+extern int lm_release_label_chunk(struct zclient *zclient, uint32_t start,
+ uint32_t end);
/* IPv6 prefix add and delete function prototype. */
-struct zapi_ipv6
-{
- u_char type;
- u_short instance;
+struct zapi_ipv6 {
+ u_char type;
+ u_short instance;
- u_int32_t flags;
+ u_int32_t flags;
- u_char message;
+ u_char message;
- safi_t safi;
+ safi_t safi;
- u_char nexthop_num;
- struct in6_addr **nexthop;
+ u_char nexthop_num;
+ struct in6_addr **nexthop;
- u_char ifindex_num;
- ifindex_t *ifindex;
+ u_char ifindex_num;
+ ifindex_t *ifindex;
- u_char label_num;
- unsigned int *label;
+ u_char label_num;
+ unsigned int *label;
- u_char distance;
+ u_char distance;
- u_int32_t metric;
+ u_int32_t metric;
- route_tag_t tag;
+ route_tag_t tag;
- u_int32_t mtu;
+ u_int32_t mtu;
- vrf_id_t vrf_id;
+ vrf_id_t vrf_id;
};
-extern int zapi_ipv6_route (u_char cmd, struct zclient *zclient,
- struct prefix_ipv6 *p, struct prefix_ipv6 *src_p,
- struct zapi_ipv6 *api);
-extern int zapi_ipv4_route_ipv6_nexthop (u_char, struct zclient *,
- struct prefix_ipv4 *, struct zapi_ipv6 *);
-extern int zapi_route (u_char cmd, struct zclient *zclient,
- struct prefix *p, struct prefix_ipv6 *src_p,
- struct zapi_route *api);
+extern int zapi_ipv6_route(u_char cmd, struct zclient *zclient,
+ struct prefix_ipv6 *p, struct prefix_ipv6 *src_p,
+ struct zapi_ipv6 *api);
+extern int zapi_ipv4_route_ipv6_nexthop(u_char, struct zclient *,
+ struct prefix_ipv4 *,
+ struct zapi_ipv6 *);
+extern int zapi_route(u_char cmd, struct zclient *zclient, struct prefix *p,
+ struct prefix_ipv6 *src_p, struct zapi_route *api);
#endif /* _ZEBRA_ZCLIENT_H */