mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Many changes in (mainly) kernel syncers.
- BSD kernel syncer is now self-conscious and can learn alien routes - important bugfix in BSD kernel syncer (crash after protocol restart) - many minor changes and bugfixes in kernel syncers and neighbor cache - direct protocol does not generate host and link local routes - min_scope check is removed, all routes have SCOPE_UNIVERSE by default - also fixes some remaining compiler warnings
This commit is contained in:
@@ -914,7 +914,6 @@ bgp_do_rx_update(struct bgp_conn *conn,
|
||||
rta *a = NULL;
|
||||
ip_addr prefix;
|
||||
net *n;
|
||||
rte e;
|
||||
int err = 0, pxlen;
|
||||
|
||||
p->mp_reach_len = 0;
|
||||
@@ -936,8 +935,6 @@ bgp_do_rx_update(struct bgp_conn *conn,
|
||||
|
||||
DO_NLRI(mp_reach)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* Create fake NEXT_HOP attribute */
|
||||
if (len < 1 || (*x != 16 && *x != 32) || len < *x + 2)
|
||||
goto bad;
|
||||
|
||||
@@ -1234,7 +1234,6 @@ show_lsa_sum_rt(struct top_hash_entry *he)
|
||||
static inline void
|
||||
show_lsa_external(struct top_hash_entry *he)
|
||||
{
|
||||
struct ospf_lsa_header *lsa = &(he->lsa);
|
||||
struct ospf_lsa_ext *ext = he->lsa_body;
|
||||
char str_via[STD_ADDRESS_P_LENGTH + 8] = "";
|
||||
char str_tag[16] = "";
|
||||
@@ -1245,7 +1244,7 @@ show_lsa_external(struct top_hash_entry *he)
|
||||
rt_metric = ext->metric & METRIC_MASK;
|
||||
ebit = ext->metric & LSA_EXT_EBIT;
|
||||
#ifdef OSPFv2
|
||||
ip = ipa_and(ipa_from_u32(lsa->id), ext->netmask);
|
||||
ip = ipa_and(ipa_from_u32(he->lsa.id), ext->netmask);
|
||||
pxlen = ipa_mklen(ext->netmask);
|
||||
rt_fwaddr = ext->fwaddr;
|
||||
rt_fwaddr_valid = !ipa_equal(rt_fwaddr, IPA_NONE);
|
||||
@@ -1282,10 +1281,7 @@ show_lsa_external(struct top_hash_entry *he)
|
||||
static inline void
|
||||
show_lsa_prefix(struct top_hash_entry *he, struct ospf_lsa_header *olsa)
|
||||
{
|
||||
struct ospf_lsa_header *lsa = &(he->lsa);
|
||||
struct ospf_lsa_prefix *px = he->lsa_body;
|
||||
struct ospf_lsa_ext *ext = he->lsa_body;
|
||||
char *msg;
|
||||
ip_addr pxa;
|
||||
int pxlen;
|
||||
u8 pxopts;
|
||||
@@ -1504,8 +1500,10 @@ ospf_sh_lsadb(struct proto *p)
|
||||
break;
|
||||
#ifdef OSPFv3
|
||||
case LSA_SCOPE_LINK:
|
||||
struct iface *ifa = if_find_by_index(hea[i]->domain);
|
||||
cli_msg(-1017, "Link %s", (ifa != NULL) ? ifa->name : "?");
|
||||
{
|
||||
struct iface *ifa = if_find_by_index(hea[i]->domain);
|
||||
cli_msg(-1017, "Link %s", (ifa != NULL) ? ifa->name : "?");
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ static void
|
||||
process_prefixes(struct ospf_area *oa)
|
||||
{
|
||||
struct proto_ospf *po = oa->po;
|
||||
struct proto *p = &po->proto;
|
||||
// struct proto *p = &po->proto;
|
||||
struct top_hash_entry *en, *src;
|
||||
struct ospf_lsa_prefix *px;
|
||||
ip_addr pxa;
|
||||
@@ -228,7 +228,6 @@ ospf_rt_spfa_rtlinks(struct ospf_area *oa, struct top_hash_entry *act, struct to
|
||||
{
|
||||
// struct proto *p = &oa->po->proto;
|
||||
struct proto_ospf *po = oa->po;
|
||||
orta nf;
|
||||
u32 i;
|
||||
|
||||
struct ospf_lsa_rt *rt = en->lsa_body;
|
||||
@@ -249,6 +248,7 @@ ospf_rt_spfa_rtlinks(struct ospf_area *oa, struct top_hash_entry *act, struct to
|
||||
*/
|
||||
DBG("\n");
|
||||
|
||||
orta nf;
|
||||
nf.type = RTS_OSPF;
|
||||
nf.options = 0;
|
||||
nf.metric1 = act->dist + rtl->metric;
|
||||
@@ -571,7 +571,7 @@ ospf_rt_sum_tr(struct ospf_area *oa)
|
||||
type = ORT_NET;
|
||||
re = (ort *) fib_find(&po->rtf, &ip, pxlen);
|
||||
}
|
||||
else if (en->lsa.type == LSA_T_SUM_RT)
|
||||
else // en->lsa.type == LSA_T_SUM_RT
|
||||
{
|
||||
#ifdef OSPFv2
|
||||
struct ospf_lsa_sum *ls = en->lsa_body;
|
||||
|
||||
Reference in New Issue
Block a user