• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src/router/quagga/bgpd/

Lines Matching defs:adj

157 bgp_adj_out_free (struct bgp_adj_out *adj)
159 peer_unlock (adj->peer); /* adj_out peer reference */
160 XFREE (MTYPE_BGP_ADJ_OUT, adj);
167 struct bgp_adj_out *adj;
169 for (adj = rn->adj_out; adj; adj = adj->next)
170 if (adj->peer == peer)
173 if (! adj)
176 return (adj->adv
177 ? (adj->adv->baa ? 1 : 0)
178 : (adj->attr ? 1 : 0));
182 bgp_advertise_clean (struct peer *peer, struct bgp_adj_out *adj,
189 adv = adj->adv;
209 bgp_advertise_free (adj->adv);
210 adj->adv = NULL;
220 struct bgp_adj_out *adj = NULL;
229 for (adj = rn->adj_out; adj; adj = adj->next)
230 if (adj->peer == peer)
234 if (! adj)
236 adj = XCALLOC (MTYPE_BGP_ADJ_OUT, sizeof (struct bgp_adj_out));
237 adj->peer = peer_lock (peer); /* adj_out peer reference */
241 BGP_ADJ_OUT_ADD (rn, adj);
246 if (adj->adv)
247 bgp_advertise_clean (peer, adj, afi, safi);
249 adj->adv = bgp_advertise_new ();
251 adv = adj->adv;
261 adv->adj = adj;
273 struct bgp_adj_out *adj;
280 for (adj = rn->adj_out; adj; adj = adj->next)
281 if (adj->peer == peer)
284 if (! adj)
288 if (adj->adv)
289 bgp_advertise_clean (peer, adj, afi, safi);
291 if (adj->attr)
294 adj->adv = bgp_advertise_new ();
295 adv = adj->adv;
297 adv->adj = adj;
308 BGP_ADJ_OUT_DEL (rn, adj);
311 bgp_adj_out_free (adj);
318 bgp_adj_out_remove (struct bgp_node *rn, struct bgp_adj_out *adj,
321 if (adj->attr)
322 bgp_attr_unintern (&adj->attr);
324 if (adj->adv)
325 bgp_advertise_clean (peer, adj, afi, safi);
327 BGP_ADJ_OUT_DEL (rn, adj);
328 bgp_adj_out_free (adj);
334 struct bgp_adj_in *adj;
336 for (adj = rn->adj_in; adj; adj = adj->next)
338 if (adj->peer == peer)
340 if (adj->attr != attr)
342 bgp_attr_unintern (&adj->attr);
343 adj->attr = bgp_attr_intern (attr);
348 adj = XCALLOC (MTYPE_BGP_ADJ_IN, sizeof (struct bgp_adj_in));
349 adj->peer = peer_lock (peer); /* adj_in peer reference */
350 adj->attr = bgp_attr_intern (attr);
351 BGP_ADJ_IN_ADD (rn, adj);
367 struct bgp_adj_in *adj;
369 for (adj = rn->adj_in; adj; adj = adj->next)
370 if (adj->peer == peer)
373 if (! adj)
376 bgp_adj_in_remove (rn, adj);