diff options
Diffstat (limited to 'lib/zclient.h')
| -rw-r--r-- | lib/zclient.h | 506 | 
1 files changed, 258 insertions, 248 deletions
diff --git a/lib/zclient.h b/lib/zclient.h index c7cc857ef7..efa5c32c16 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 */  | 
