• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/zebra/bgpd/

Lines Matching defs:ri

117 bgp_info_add (struct bgp_node *rn, struct bgp_info *ri)
123 ri->next = rn->info;
124 ri->prev = NULL;
126 top->prev = ri;
127 rn->info = ri;
131 bgp_info_delete (struct bgp_node *rn, struct bgp_info *ri)
133 if (ri->next)
134 ri->next->prev = ri->prev;
135 if (ri->prev)
136 ri->prev->next = ri->next;
138 rn->info = ri->next;
457 bgp_announce_check (struct bgp_info *ri, struct peer *peer, struct prefix *p,
470 from = ri->peer;
483 if (ri->suppress)
500 if (bgp_community_filter (peer, ri->attr))
505 if (ri->attr->flag & ATTR_FLAG_BIT (BGP_ATTR_ORIGINATOR_ID))
507 if (IPV4_ADDR_SAME (&peer->remote_id, &ri->attr->originator_id))
530 if (bgp_output_filter (peer, p, ri->attr, afi, safi) == FILTER_DENY)
543 if (aspath_loop_check (ri->attr->aspath, peer->as))
556 if (aspath_loop_check(ri->attr->aspath, bgp->confed_id))
597 *attr = *ri->attr;
619 if (ri->peer != bgp->peer_self && ! transparent
628 || (p->family == AF_INET6 && ri->peer != bgp->peer_self))))
635 || (p->family == AF_INET6 && ri->peer == bgp->peer_self)
694 || ri->suppress)
708 if (ri->suppress)
726 struct bgp_info *ri;
776 for (ri = rn->info; ri; ri = ri->next)
778 if (CHECK_FLAG (ri->flags, BGP_INFO_SELECTED))
779 old_select = ri;
781 if (BGP_INFO_HOLDDOWN (ri))
785 && (! CHECK_FLAG (ri->flags, BGP_INFO_DMED_SELECTED)))
787 UNSET_FLAG (ri->flags, BGP_INFO_DMED_CHECK);
790 UNSET_FLAG (ri->flags, BGP_INFO_DMED_CHECK);
791 UNSET_FLAG (ri->flags, BGP_INFO_DMED_SELECTED);
793 if (bgp_info_cmp (bgp, ri, new_select))
794 new_select = ri;
895 bgp_rib_remove (struct bgp_node *rn, struct bgp_info *ri, struct peer *peer,
898 if (! CHECK_FLAG (ri->flags, BGP_INFO_HISTORY))
901 bgp_aggregate_decrement (peer->bgp, &rn->p, ri, afi, safi);
902 UNSET_FLAG (ri->flags, BGP_INFO_VALID);
905 bgp_info_delete (rn, ri);
906 bgp_info_free (ri);
911 bgp_rib_withdraw (struct bgp_node *rn, struct bgp_info *ri, struct peer *peer,
917 if (! CHECK_FLAG (ri->flags, BGP_INFO_HISTORY))
920 bgp_aggregate_decrement (peer->bgp, &rn->p, ri, afi, safi);
927 status = bgp_damp_withdraw (ri, rn, afi, safi, 0);
933 valid = CHECK_FLAG (ri->flags, BGP_INFO_VALID);
934 UNSET_FLAG (ri->flags, BGP_INFO_VALID);
938 SET_FLAG (ri->flags, BGP_INFO_VALID);
942 bgp_info_delete (rn, ri);
943 bgp_info_free (ri);
959 struct bgp_info *ri;
974 for (ri = rn->info; ri; ri = ri->next)
975 if (ri->peer == peer && ri->type == type && ri->sub_type == sub_type)
1059 if (ri)
1061 ri->uptime = time (NULL);
1064 if (attrhash_cmp (ri->attr, attr_new))
1066 UNSET_FLAG (ri->flags, BGP_INFO_ATTR_CHANGED);
1070 && CHECK_FLAG (ri->flags, BGP_INFO_HISTORY))
1079 ret = bgp_damp_update (ri, rn, afi, safi);
1082 bgp_aggregate_increment (bgp, p, ri, afi, safi);
1109 SET_FLAG (ri->flags, BGP_INFO_ATTR_CHANGED);
1117 if (! CHECK_FLAG (ri->flags, BGP_INFO_HISTORY))
1118 bgp_damp_withdraw (ri, rn, afi, safi, 1);
1123 bgp_aggregate_decrement (bgp, p, ri, afi, safi);
1126 bgp_attr_unintern (ri->attr);
1127 ri->attr = attr_new;
1131 memcpy (ri->tag, tag, 3);
1138 ret = bgp_damp_update (ri, rn, afi, safi);
1153 if (bgp_nexthop_lookup (afi, peer, ri, NULL, NULL))
1154 SET_FLAG (ri->flags, BGP_INFO_VALID);
1156 UNSET_FLAG (ri->flags, BGP_INFO_VALID);
1159 SET_FLAG (ri->flags, BGP_INFO_VALID);
1162 bgp_aggregate_increment (bgp, p, ri, afi, safi);
1235 if (ri)
1236 bgp_rib_withdraw (rn, ri, peer, afi, safi, 1);
1251 struct bgp_info *ri;
1272 for (ri = rn->info; ri; ri = ri->next)
1273 if (ri->peer == peer && ri->type == type && ri->sub_type == sub_type)
1277 if (ri && ! CHECK_FLAG (ri->flags, BGP_INFO_HISTORY))
1278 bgp_rib_withdraw (rn, ri, peer, afi, safi, 0);
1375 struct bgp_info *ri;
1386 for (ri = rn->info; ri; ri = ri->next)
1387 if (CHECK_FLAG (ri->flags, BGP_INFO_SELECTED) && ri->peer != peer)
1389 if (bgp_announce_check (ri, peer, &rn->p, &attr, afi, safi))
1390 bgp_adj_out_set (rn, peer, &rn->p, &attr, afi, safi, ri);
1488 struct bgp_info *ri;
1495 for (ri = rn->info; ri; ri = ri->next)
1496 if (ri->peer == peer)
1498 bgp_rib_remove (rn, ri, peer, afi, safi);
1575 struct bgp_info *ri;
1582 for (ri = rn->info; ri; ri = ri->next)
1583 if (CHECK_FLAG (ri->flags, BGP_INFO_SELECTED)
1584 && ri->type == ZEBRA_ROUTE_BGP
1585 && ri->sub_type == BGP_ROUTE_NORMAL)
1586 bgp_zebra_withdraw (&rn->p, ri);
1591 for (ri = rn->info; ri; ri = ri->next)
1592 if (CHECK_FLAG (ri->flags, BGP_INFO_SELECTED)
1593 && ri->type == ZEBRA_ROUTE_BGP
1594 && ri->sub_type == BGP_ROUTE_NORMAL)
1595 bgp_zebra_withdraw (&rn->p, ri);
1790 struct bgp_info *ri;
1828 for (ri = rn->info; ri; ri = ri->next)
1829 if (ri->peer == bgp->peer_self && ri->type == ZEBRA_ROUTE_BGP
1830 && ri->sub_type == BGP_ROUTE_STATIC)
1833 if (ri)
1835 if (attrhash_cmp (ri->attr, attr_new))
1845 SET_FLAG (ri->flags, BGP_INFO_ATTR_CHANGED);
1848 bgp_aggregate_decrement (bgp, p, ri, afi, safi);
1849 bgp_attr_unintern (ri->attr);
1850 ri->attr = attr_new;
1851 ri->uptime = time (NULL);
1854 bgp_aggregate_increment (bgp, p, ri, afi, safi);
1918 struct bgp_info *ri;
1923 for (ri = rn->info; ri; ri = ri->next)
1924 if (ri->peer == bgp->peer_self
1925 && ri->type == ZEBRA_ROUTE_BGP
1926 && ri->sub_type == BGP_ROUTE_STATIC)
1930 if (ri)
1932 bgp_aggregate_decrement (bgp, p, ri, afi, safi);
1933 UNSET_FLAG (ri->flags, BGP_INFO_VALID);
1935 bgp_info_delete (rn, ri);
1936 bgp_info_free (ri);
1949 struct bgp_info *ri;
1954 for (ri = rn->info; ri; ri = ri->next)
1955 if (ri->peer == bgp->peer_self
1956 && ri->type == ZEBRA_ROUTE_BGP
1957 && ri->sub_type == BGP_ROUTE_STATIC)
1961 if (ri)
1963 bgp_aggregate_decrement (bgp, p, ri, afi, safi);
1964 UNSET_FLAG (ri->flags, BGP_INFO_VALID);
1966 bgp_info_delete (rn, ri);
1967 bgp_info_free (ri);
2687 struct bgp_info *ri;
2717 for (ri = rn->info; ri; ri = ri->next)
2719 if (BGP_INFO_HOLDDOWN (ri))
2722 if (del && ri == del)
2727 nexthop = ri->attr->nexthop;
2728 med = ri->attr->med;
2733 if (! IPV4_ADDR_SAME (&ri->attr->nexthop, &nexthop)
2734 || ri->attr->med != med)
2746 if (ri->sub_type != BGP_ROUTE_AGGREGATE)
2750 ri->suppress++;
2751 SET_FLAG (ri->flags, BGP_INFO_ATTR_CHANGED);
2759 if (origin < ri->attr->origin)
2760 origin = ri->attr->origin;
2764 asmerge = aspath_aggregate (aspath, ri->attr->aspath);
2769 aspath = aspath_dup (ri->attr->aspath);
2771 if (ri->attr->community)
2776 ri->attr->community);
2781 community = community_dup (ri->attr->community);
2855 struct bgp_info *ri, afi_t afi, safi_t safi)
2868 if (BGP_INFO_HOLDDOWN (ri))
2878 bgp_aggregate_route (bgp, &rn->p, ri, safi, safi, NULL, aggregate);
2918 struct bgp_info *ri;
2941 for (ri = rn->info; ri; ri = ri->next)
2943 if (BGP_INFO_HOLDDOWN (ri))
2946 if (ri->sub_type != BGP_ROUTE_AGGREGATE)
2952 ri->suppress++;
2953 SET_FLAG (ri->flags, BGP_INFO_ATTR_CHANGED);
2960 if (origin < ri->attr->origin)
2961 origin = ri->attr->origin;
2965 asmerge = aspath_aggregate (aspath, ri->attr->aspath);
2970 aspath = aspath_dup (ri->attr->aspath);
2972 if (ri->attr->community)
2977 ri->attr->community);
2982 community = community_dup (ri->attr->community);
3022 struct bgp_info *ri;
3039 for (ri = rn->info; ri; ri = ri->next)
3041 if (BGP_INFO_HOLDDOWN (ri))
3044 if (ri->sub_type != BGP_ROUTE_AGGREGATE)
3048 ri->suppress--;
3050 if (ri->suppress == 0)
3052 SET_FLAG (ri->flags, BGP_INFO_ATTR_CHANGED);
3069 for (ri = rn->info; ri; ri = ri->next)
3070 if (ri->peer == bgp->peer_self
3071 && ri->type == ZEBRA_ROUTE_BGP
3072 && ri->sub_type == BGP_ROUTE_AGGREGATE)
3076 if (ri)
3078 UNSET_FLAG (ri->flags, BGP_INFO_VALID);
3080 bgp_info_delete (rn, ri);
3081 bgp_info_free (ri);
3642 struct bgp_info *ri;
3652 for (ri = rn->info; ri; ri = ri->next)
3653 if (ri->peer == bgp->peer_self
3654 && ri->type == type)
3657 if (ri)
3659 bgp_aggregate_decrement (bgp, p, ri, afi, SAFI_UNICAST);
3660 UNSET_FLAG (ri->flags, BGP_INFO_VALID);
3662 bgp_info_delete (rn, ri);
3663 bgp_info_free (ri);
3676 struct bgp_info *ri;
3683 for (ri = rn->info; ri; ri = ri->next)
3684 if (ri->peer == bgp->peer_self
3685 && ri->type == type)
3688 if (ri)
3690 bgp_aggregate_decrement (bgp, &rn->p, ri, afi, SAFI_UNICAST);
3691 UNSET_FLAG (ri->flags, BGP_INFO_VALID);
3693 bgp_info_delete (rn, ri);
3694 bgp_info_free (ri);
4343 struct bgp_info *ri;
4373 for (ri = rn->info; ri; ri = ri->next)
4388 if (! ri->damp_info)
4396 if (bgp_regexec (regex, ri->attr->aspath) == REG_NOMATCH)
4412 if (as_list_apply (as_list, ri->attr->aspath) != AS_FILTER_PERMIT)
4423 dummy_attr = *ri->attr;
4424 binfo.peer = ri->peer;
4438 if (ri->peer->su_remote == NULL || ! sockunion_same(ri->peer->su_remote, su))
4464 if (! ri->attr->community)
4471 if (! ri->attr->community ||
4472 ! community_match (ri->attr->community, com))
4479 if (! ri->attr->community ||
4480 ! community_cmp (ri->attr->community, com))
4487 if (! community_list_match (ri->attr->community, list))
4494 if (! community_list_exact_match (ri->attr->community, list))
4512 if (! CHECK_FLAG (ri->flags, BGP_INFO_DAMPED)
4513 || CHECK_FLAG (ri->flags, BGP_INFO_HISTORY))
4519 count += damp_route_vty_out (vty, &rn->p, ri, display, SAFI_UNICAST);
4530 count += flap_route_vty_out (vty, &rn->p, ri, display, SAFI_UNICAST);
4532 count += route_vty_out (vty, &rn->p, ri, display, SAFI_UNICAST);
4571 struct bgp_info *ri;
4618 for (ri = rn->info; ri; ri = ri->next)
4633 if (! ri->damp_info)
4641 if (bgp_regexec (regex, ri->attr->aspath) == REG_NOMATCH)
4657 if (as_list_apply (as_list, ri->attr->aspath) != AS_FILTER_PERMIT)
4668 dummy_attr = *ri->attr;
4669 binfo.peer = ri->peer;
4683 if (ri->peer->su_remote == NULL || ! sockunion_same(ri->peer->su_remote, su))
4709 if (! ri->attr->community)
4716 if (! ri->attr->community ||
4717 ! community_match (ri->attr->community, com))
4724 if (! ri->attr->community ||
4725 ! community_cmp (ri->attr->community, com))
4732 if (! community_list_match (ri->attr->community, list))
4739 if (! community_list_exact_match (ri->attr->community, list))
4757 if (! CHECK_FLAG (ri->flags, BGP_INFO_DAMPED)
4758 || CHECK_FLAG (ri->flags, BGP_INFO_HISTORY))
4789 count += damp_route_vty_out (vty, &rn->p, ri, display, SAFI_UNICAST);
4800 count += flap_route_vty_out (vty, &rn->p, ri, display, SAFI_UNICAST);
4802 count += route_vty_out (vty, &rn->p, ri, display, SAFI_UNICAST);
4849 struct bgp_info *ri;
4871 for (ri = rn->info; ri; ri = ri->next)
4874 if (CHECK_FLAG (ri->flags, BGP_INFO_SELECTED))
4877 if (ri->suppress)
4879 if (ri->attr->community != NULL)
4881 if (community_include (ri->attr->community, COMMUNITY_NO_ADVERTISE))
4883 if (community_include (ri->attr->community, COMMUNITY_NO_EXPORT))
4885 if (community_include (ri->attr->community, COMMUNITY_LOCAL_AS))
4938 struct bgp_info *ri;
4988 for (ri = rm->info; ri; ri = ri->next)
4998 route_vty_out_detail (vty, &rm->p, ri, AFI_IP, SAFI_MPLS_VPN);
5012 for (ri = rn->info; ri; ri = ri->next)
5020 route_vty_out_detail (vty, &rn->p, ri, afi, safi);
8295 struct bgp_info *ri;
8341 ri = rm->info;
8342 while (ri)
8344 if (ri->damp_info)
8346 ri_temp = ri->next;
8347 bgp_damp_info_free (ri->damp_info, 1);
8348 ri = ri_temp;
8351 ri = ri->next;
8361 ri = rn->info;
8362 while (ri)
8364 if (ri->damp_info)
8366 ri_temp = ri->next;
8367 bgp_damp_info_free (ri->damp_info, 1);
8368 ri = ri_temp;
8371 ri = ri->next;