diff options
Diffstat (limited to 'zebra/zebra_ptm_redistribute.c')
| -rw-r--r-- | zebra/zebra_ptm_redistribute.c | 166 | 
1 files changed, 82 insertions, 84 deletions
diff --git a/zebra/zebra_ptm_redistribute.c b/zebra/zebra_ptm_redistribute.c index d6902142a3..1378ea186d 100644 --- a/zebra/zebra_ptm_redistribute.c +++ b/zebra/zebra_ptm_redistribute.c @@ -26,102 +26,100 @@  #include "zebra/zebra_ptm_redistribute.h"  #include "zebra/zebra_memory.h" -static int -zsend_interface_bfd_update (int cmd, struct zserv *client, -                            struct interface *ifp, struct prefix *dp, -                            struct prefix *sp, int status, vrf_id_t vrf_id) +static int zsend_interface_bfd_update(int cmd, struct zserv *client, +				      struct interface *ifp, struct prefix *dp, +				      struct prefix *sp, int status, +				      vrf_id_t vrf_id)  { -  int blen; -  struct stream *s; - -  /* Check this client need interface information. */ -  if (! client->ifinfo) -    return 0; - -  s = client->obuf; -  stream_reset (s); - -  zserv_create_header (s, cmd, vrf_id); -  if (ifp) -    stream_putl (s, ifp->ifindex); -  else -    stream_putl (s, 0); - -  /* BFD destination prefix information. */ -  stream_putc (s, dp->family); -  blen = prefix_blen (dp); -  stream_put (s, &dp->u.prefix, blen); -  stream_putc (s, dp->prefixlen); - -  /* BFD status */ -  stream_putl(s, status); - -  /* BFD source prefix information. */ -  stream_putc (s, sp->family); -  blen = prefix_blen (sp); -  stream_put (s, &sp->u.prefix, blen); -  stream_putc (s, sp->prefixlen); - -  /* Write packet size. */ -  stream_putw_at (s, 0, stream_get_endp (s)); - -  client->if_bfd_cnt++; -  return zebra_server_send_message(client); +	int blen; +	struct stream *s; + +	/* Check this client need interface information. */ +	if (!client->ifinfo) +		return 0; + +	s = client->obuf; +	stream_reset(s); + +	zserv_create_header(s, cmd, vrf_id); +	if (ifp) +		stream_putl(s, ifp->ifindex); +	else +		stream_putl(s, 0); + +	/* BFD destination prefix information. */ +	stream_putc(s, dp->family); +	blen = prefix_blen(dp); +	stream_put(s, &dp->u.prefix, blen); +	stream_putc(s, dp->prefixlen); + +	/* BFD status */ +	stream_putl(s, status); + +	/* BFD source prefix information. */ +	stream_putc(s, sp->family); +	blen = prefix_blen(sp); +	stream_put(s, &sp->u.prefix, blen); +	stream_putc(s, sp->prefixlen); + +	/* Write packet size. */ +	stream_putw_at(s, 0, stream_get_endp(s)); + +	client->if_bfd_cnt++; +	return zebra_server_send_message(client);  } -void -zebra_interface_bfd_update (struct interface *ifp, struct prefix *dp, -                            struct prefix *sp, int status, vrf_id_t vrf_id) +void zebra_interface_bfd_update(struct interface *ifp, struct prefix *dp, +				struct prefix *sp, int status, vrf_id_t vrf_id)  { -  struct listnode *node, *nnode; -  struct zserv *client; - -  for (ALL_LIST_ELEMENTS (zebrad.client_list, node, nnode, client)) -    { -      /* Supporting for OSPF, BGP and PIM */ -      if (client->proto != ZEBRA_ROUTE_OSPF && client->proto != ZEBRA_ROUTE_BGP -          && client->proto != ZEBRA_ROUTE_OSPF6 && client->proto != ZEBRA_ROUTE_PIM) -        continue; - -      /* Notify to the protocol daemons. */ -      zsend_interface_bfd_update (ZEBRA_INTERFACE_BFD_DEST_UPDATE, client, ifp, -                                    dp, sp, status, vrf_id); -    } +	struct listnode *node, *nnode; +	struct zserv *client; + +	for (ALL_LIST_ELEMENTS(zebrad.client_list, node, nnode, client)) { +		/* Supporting for OSPF, BGP and PIM */ +		if (client->proto != ZEBRA_ROUTE_OSPF +		    && client->proto != ZEBRA_ROUTE_BGP +		    && client->proto != ZEBRA_ROUTE_OSPF6 +		    && client->proto != ZEBRA_ROUTE_PIM) +			continue; + +		/* Notify to the protocol daemons. */ +		zsend_interface_bfd_update(ZEBRA_INTERFACE_BFD_DEST_UPDATE, +					   client, ifp, dp, sp, status, vrf_id); +	}  } -static int -zsend_bfd_peer_replay (int cmd, struct zserv *client) +static int zsend_bfd_peer_replay(int cmd, struct zserv *client)  { -  struct stream *s; +	struct stream *s; -  s = client->obuf; -  stream_reset (s); +	s = client->obuf; +	stream_reset(s); -  zserv_create_header (s, cmd, VRF_DEFAULT); //Pending: adjust when multi-vrf bfd work +	zserv_create_header( +		s, cmd, VRF_DEFAULT); // Pending: adjust when multi-vrf bfd work -  /* Write packet size. */ -  stream_putw_at (s, 0, stream_get_endp (s)); +	/* Write packet size. */ +	stream_putw_at(s, 0, stream_get_endp(s)); -  client->bfd_peer_replay_cnt++; -  return zebra_server_send_message(client); +	client->bfd_peer_replay_cnt++; +	return zebra_server_send_message(client);  } -void -zebra_bfd_peer_replay_req (void) +void zebra_bfd_peer_replay_req(void)  { -  struct listnode *node, *nnode; -  struct zserv *client; - -  for (ALL_LIST_ELEMENTS (zebrad.client_list, node, nnode, client)) -    { -      /* Supporting for BGP */ -      if ((client->proto != ZEBRA_ROUTE_BGP) && -          (client->proto != ZEBRA_ROUTE_OSPF) && -          (client->proto != ZEBRA_ROUTE_OSPF6) && -          (client->proto != ZEBRA_ROUTE_PIM)) -        continue; - -      /* Notify to the protocol daemons. */ -      zsend_bfd_peer_replay (ZEBRA_BFD_DEST_REPLAY, client); -    } +	struct listnode *node, *nnode; +	struct zserv *client; + +	for (ALL_LIST_ELEMENTS(zebrad.client_list, node, nnode, client)) { +		/* Supporting for BGP */ +		if ((client->proto != ZEBRA_ROUTE_BGP) +		    && (client->proto != ZEBRA_ROUTE_OSPF) +		    && (client->proto != ZEBRA_ROUTE_OSPF6) +		    && (client->proto != ZEBRA_ROUTE_PIM)) +			continue; + +		/* Notify to the protocol daemons. */ +		zsend_bfd_peer_replay(ZEBRA_BFD_DEST_REPLAY, client); +	}  }  | 
