• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/zebra/ospfd/

Lines Matching refs:oi

55 ospf_if_get_output_cost (struct ospf_interface *oi)
61 bw = oi->ifp->bandwidth ? oi->ifp->bandwidth : OSPF_DEFAULT_BANDWIDTH;
65 if (OSPF_IF_PARAM_CONFIGURED (IF_DEF_PARAMS (oi->ifp), output_cost_cmd) ||
66 OSPF_IF_PARAM_CONFIGURED (oi->params, output_cost_cmd))
67 cost = OSPF_IF_PARAM (oi, output_cost_cmd);
90 struct ospf_interface *oi;
92 if ( (oi = rn->info) == NULL)
95 newcost = ospf_if_get_output_cost (oi);
98 if (oi->output_cost != newcost)
100 oi->output_cost = newcost;
101 ospf_router_lsa_timer_add (oi->area);
107 ospf_if_reset_variables (struct ospf_interface *oi)
110 /* don't clear this flag. oi->flag = OSPF_IF_DISABLE; */
112 if (oi->vl_data)
113 oi->type = OSPF_IFTYPE_VIRTUALLINK;
116 if (oi->type != OSPF_IFTYPE_NBMA)
117 oi->type = OSPF_IFTYPE_BROADCAST;
119 oi->state = ISM_Down;
121 oi->crypt_seqnum = 0;
126 oi->v_ls_ack = 1;
130 ospf_add_to_if (struct interface *ifp, struct ospf_interface *oi)
135 p = *oi->address;
140 rn->info = oi;
144 ospf_delete_from_if (struct interface *ifp, struct ospf_interface *oi)
149 p = *oi->address;
152 rn = route_node_lookup (IF_OIFS (oi->ifp), &p);
163 struct ospf_interface *oi;
165 oi = XCALLOC (MTYPE_OSPF_IF, sizeof (struct ospf_interface));
166 memset (oi, 0, sizeof (struct ospf_interface));
169 oi->ifp = ifp;
170 oi->address = p;
172 ospf_add_to_if (ifp, oi);
173 listnode_add (ospf_top->oiflist, oi);
176 oi->network_lsa_self = NULL;
179 oi->nbrs = route_table_init ();
182 oi->nbr_nbma = list_new ();
185 oi->ls_ack = list_new ();
186 oi->ls_ack_direct.ls_ack = list_new ();
189 ospf_if_reset_variables (oi);
192 oi->nbr_self = ospf_nbr_new (oi);
193 oi->nbr_self->state = NSM_TwoWay;
194 /* oi->nbr_self->router_id = ospf_top->router_id; */
195 oi->nbr_self->priority = OSPF_IF_PARAM (oi, priority);
196 oi->nbr_self->options = OSPF_OPTION_E;
198 oi->ls_upd_queue = route_table_init ();
199 oi->t_ls_upd_event = NULL;
200 oi->t_ls_ack_direct = NULL;
203 ospf_opaque_type9_lsa_init (oi);
206 oi->ospf = ospf_top;
208 return oi;
214 ospf_if_cleanup (struct ospf_interface *oi)
220 /* oi->nbrs and oi->nbr_nbma should be deletete on InterafceDown event */
222 for (node = listhead (oi->nbr_nbma); node; )
235 nbr_nbma->oi = NULL;
237 listnode_delete (oi->nbr_nbma, nbr_nbma);
241 for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
243 if (nbr != oi->nbr_self)
247 for (node = listhead (oi->ls_ack); node; nextnode (node))
249 list_delete_all_node (oi->ls_ack);
251 oi->crypt_seqnum = 0;
254 ospf_ls_upd_queue_empty (oi);
257 ospf_nbr_delete (oi->nbr_self);
258 oi->nbr_self = ospf_nbr_new (oi);
259 oi->nbr_self->state = NSM_TwoWay;
260 oi->nbr_self->priority = OSPF_IF_PARAM (oi, priority);
261 oi->nbr_self->options = OSPF_OPTION_E;
263 ospf_lsa_unlock (oi->network_lsa_self);
264 oi->network_lsa_self = NULL;
265 OSPF_TIMER_OFF (oi->t_network_lsa_self);
269 ospf_if_free (struct ospf_interface *oi)
271 ospf_if_down (oi);
273 assert (oi->state == ISM_Down);
276 ospf_opaque_type9_lsa_term (oi);
280 ospf_nbr_delete (oi->nbr_self);
282 route_table_finish (oi->nbrs);
283 route_table_finish (oi->ls_upd_queue);
286 list_free (oi->nbr_nbma);
288 list_free (oi->ls_ack);
289 list_free (oi->ls_ack_direct.ls_ack);
291 ospf_delete_from_if (oi->ifp, oi);
293 listnode_delete (ospf_top->oiflist, oi);
294 listnode_delete (oi->area->oiflist, oi);
296 memset (oi, 0, sizeof (*oi));
297 XFREE (MTYPE_OSPF_IF, oi);
310 struct ospf_interface *oi;
314 if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
316 if (oi->type == OSPF_IFTYPE_POINTOPOINT)
317 addr = oi->connected->destination;
319 addr = oi->address;
322 return oi;
329 ospf_if_is_up (struct ospf_interface *oi)
331 return if_is_up (oi->ifp);
338 struct ospf_interface *oi;
341 if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
343 if (ifp && oi->ifp != ifp)
346 if (IPV4_ADDR_SAME (&address, &oi->address->u.prefix4))
347 return oi;
357 struct ospf_interface *oi;
362 if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
364 if (oi->type == OSPF_IFTYPE_POINTOPOINT) {
365 prefix_copy (&ptmp, oi->connected->destination);
369 prefix_copy (&ptmp, oi->address);
373 return oi;
385 struct ospf_interface *oi, *match;
395 oi = getdata (node);
397 if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
400 if (oi->type == OSPF_IFTYPE_POINTOPOINT)
402 if (IPV4_ADDR_SAME (&oi->connected->destination->u.prefix4, &src))
403 return oi;
407 if (prefix_match (oi->address, (struct prefix *) &addr))
408 match = oi;
417 ospf_if_stream_set (struct ospf_interface *oi)
420 if (oi->obuf == NULL)
421 oi->obuf = ospf_fifo_new ();
425 ospf_if_stream_unset (struct ospf_interface *oi)
427 if (oi->obuf)
429 ospf_fifo_free (oi->obuf);
430 oi->obuf = NULL;
432 if (oi->on_write_q)
434 listnode_delete (ospf_top->oi_write_q, oi);
435 oi->on_write_q = 0;
555 struct ospf_interface *oi;
559 if ((oi = rn->info) == NULL)
562 if (IPV4_ADDR_SAME (&oi->address->u.prefix4, &addr))
563 oi->params = ospf_lookup_if_params (ifp, oi->address->u.prefix4);
629 ospf_if_is_enable (struct ospf_interface *oi)
631 if (!if_is_loopback (oi->ifp))
632 if (if_is_up (oi->ifp))
639 ospf_if_up (struct ospf_interface *oi)
641 if (oi == NULL)
644 if (oi->type == OSPF_IFTYPE_LOOPBACK)
645 OSPF_ISM_EVENT_SCHEDULE (oi, ISM_LoopInd);
648 if (oi->type != OSPF_IFTYPE_VIRTUALLINK)
649 ospf_if_add_allspfrouters (ospf_top, oi->address, oi->ifp->ifindex);
650 ospf_if_stream_set (oi);
651 OSPF_ISM_EVENT_SCHEDULE (oi, ISM_InterfaceUp);
658 ospf_if_down (struct ospf_interface *oi)
660 if (oi == NULL)
663 OSPF_ISM_EVENT_EXECUTE (oi, ISM_InterfaceDown);
665 ospf_if_stream_unset (oi);
666 if (oi->type != OSPF_IFTYPE_VIRTUALLINK)
667 ospf_if_drop_allspfrouters (ospf_top, oi->address, oi->ifp->ifindex);
800 struct ospf_interface *oi;
802 if ((oi = vl_data->vl_oi) == NULL)
805 oi->address->u.prefix4.s_addr = 0;
806 oi->address->prefixlen = 0;
808 UNSET_FLAG (oi->ifp->flags, IFF_UP);
809 /* OSPF_ISM_EVENT_SCHEDULE (oi, ISM_InterfaceDown); */
810 OSPF_ISM_EVENT_EXECUTE (oi, ISM_InterfaceDown);
857 vl_data->out_oi = (struct ospf_interface *) nh->oi;
892 struct ospf_interface *oi;
918 oi = vl_data->vl_oi;
924 if (oi->state == ISM_Down)
928 SET_FLAG (oi->ifp->flags, IFF_UP);
929 OSPF_ISM_EVENT_SCHEDULE (oi, ISM_InterfaceUp);