diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2021-01-06 14:44:23 +0100 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2021-01-06 14:44:23 +0100 |
commit | 4155104c90bc2f3fb680e8041e079ceb3d80a3b1 (patch) | |
tree | cc5d40022f46da2baf98b2cff9105889c10c818b | |
parent | 21f9acd2a01306af01f19914105985a8a0f9bcba (diff) |
BGP: Deprecate 'missing lladdr' option
The option is not implemented since transition to 2.0 and no plan to add it.
Also remove some deprecated RTS_* valus from documentation.
Thanks to Sébastien Parisot for notification.
-rw-r--r-- | doc/bird.sgml | 19 | ||||
-rw-r--r-- | proto/bgp/bgp.c | 5 | ||||
-rw-r--r-- | proto/bgp/bgp.h | 1 | ||||
-rw-r--r-- | proto/bgp/config.Y | 6 |
4 files changed, 5 insertions, 26 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml index 5408cb2a..23239328 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -1647,9 +1647,8 @@ Common route attributes are: <tag><label id="rta-source"><m/enum/ source</tag> what protocol has told me about this route. Possible values: <cf/RTS_DUMMY/, <cf/RTS_STATIC/, <cf/RTS_INHERIT/, <cf/RTS_DEVICE/, - <cf/RTS_STATIC_DEVICE/, <cf/RTS_REDIRECT/, <cf/RTS_RIP/, <cf/RTS_OSPF/, - <cf/RTS_OSPF_IA/, <cf/RTS_OSPF_EXT1/, <cf/RTS_OSPF_EXT2/, <cf/RTS_BGP/, - <cf/RTS_PIPE/, <cf/RTS_BABEL/. + <cf/RTS_RIP/, <cf/RTS_OSPF/, <cf/RTS_OSPF_IA/, <cf/RTS_OSPF_EXT1/, + <cf/RTS_OSPF_EXT2/, <cf/RTS_BGP/, <cf/RTS_PIPE/, <cf/RTS_BABEL/. <tag><label id="rta-dest"><m/enum/ dest</tag> Type of destination the packets should be sent to @@ -2705,20 +2704,6 @@ be used in explicit configuration. BGP session (if acceptable), or the preferred address of an associated interface. - <tag><label id="bgp-missing-lladdr">missing lladdr self|drop|ignore</tag> - Next Hop attribute in BGP-IPv6 sometimes contains just the global IPv6 - address, but sometimes it has to contain both global and link-local IPv6 - addresses. This option specifies what to do if BIRD have to send both - addresses but does not know link-local address. This situation might - happen when routes from other protocols are exported to BGP, or when - improper updates are received from BGP peers. <cf/self/ means that BIRD - advertises its own local address instead. <cf/drop/ means that BIRD - skips that prefixes and logs error. <cf/ignore/ means that BIRD ignores - the problem and sends just the global address (and therefore forms - improper BGP update). Default: <cf/self/, unless BIRD is configured as a - route server (option <cf/rs client/), in that case default is <cf/ignore/, - because route servers usually do not forward packets themselves. - <tag><label id="bgp-gateway">gateway direct|recursive</tag> For received routes, their <cf/gw/ (immediate next hop) attribute is computed from received <cf/bgp_next_hop/ attribute. This option diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c index b34dc325..302d026c 100644 --- a/proto/bgp/bgp.c +++ b/proto/bgp/bgp.c @@ -1986,10 +1986,6 @@ bgp_postconfig(struct proto_config *CF) if (cc->next_hop_keep == 0xff) cc->next_hop_keep = cf->rr_client ? NH_IBGP : (cf->rs_client ? NH_ALL : NH_NO); - /* Different default based on rs_client */ - if (!cc->missing_lladdr) - cc->missing_lladdr = cf->rs_client ? MLL_IGNORE : MLL_SELF; - /* Different default for gw_mode */ if (!cc->gw_mode) cc->gw_mode = cf->multihop ? GW_RECURSIVE : GW_DIRECT; @@ -2131,7 +2127,6 @@ bgp_channel_reconfigure(struct channel *C, struct channel_config *CC, int *impor if (!ipa_equal(new->next_hop_addr, old->next_hop_addr) || (new->next_hop_self != old->next_hop_self) || (new->next_hop_keep != old->next_hop_keep) || - (new->missing_lladdr != old->missing_lladdr) || (new->aigp != old->aigp) || (new->aigp_originate != old->aigp_originate)) *export_changed = 1; diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h index ff52a1a1..5cabd327 100644 --- a/proto/bgp/bgp.h +++ b/proto/bgp/bgp.h @@ -143,7 +143,6 @@ struct bgp_channel_config { u8 next_hop_self; /* Always set next hop to local IP address (NH_*) */ u8 next_hop_keep; /* Do not modify next hop attribute (NH_*) */ u8 mandatory; /* Channel is mandatory in capability negotiation */ - u8 missing_lladdr; /* What we will do when we don' know link-local addr, see MLL_* */ u8 gw_mode; /* How we compute route gateway from next_hop attr, see GW_* */ u8 secondary; /* Accept also non-best routes (i.e. RA_ACCEPTED) */ u8 gr_able; /* Allow full graceful restart for the channel */ diff --git a/proto/bgp/config.Y b/proto/bgp/config.Y index cc83bfc7..18c3560d 100644 --- a/proto/bgp/config.Y +++ b/proto/bgp/config.Y @@ -241,15 +241,15 @@ bgp_nh: | IBGP { $$ = NH_IBGP; } | EBGP { $$ = NH_EBGP; } +bgp_lladdr: SELF | DROP | IGNORE; + bgp_channel_item: channel_item | NEXT HOP ADDRESS ipa { BGP_CC->next_hop_addr = $4; } | NEXT HOP SELF bgp_nh { BGP_CC->next_hop_self = $4; } | NEXT HOP KEEP bgp_nh { BGP_CC->next_hop_keep = $4; } | MANDATORY bool { BGP_CC->mandatory = $2; } - | MISSING LLADDR SELF { BGP_CC->missing_lladdr = MLL_SELF; } - | MISSING LLADDR DROP { BGP_CC->missing_lladdr = MLL_DROP; } - | MISSING LLADDR IGNORE { BGP_CC->missing_lladdr = MLL_IGNORE; } + | MISSING LLADDR bgp_lladdr { log(L_WARN "%s.%s: Missing lladdr option is deprecated and ignored, remove it", this_proto->name, this_channel->name); } | GATEWAY DIRECT { BGP_CC->gw_mode = GW_DIRECT; } | GATEWAY RECURSIVE { BGP_CC->gw_mode = GW_RECURSIVE; } | SECONDARY bool { BGP_CC->secondary = $2; } |