forked from Mirror/frr
bgpd rfapi: advertise encap attribute when TT is valid and not MPLS.
Ensure tunnel type set based on rx'ed Ignore bad/mpls encap types. Signed-off-by: Lou Berger <lberger@labn.net>
This commit is contained in:
parent
22e9f17c7f
commit
ac73d8fbb6
|
@ -2241,7 +2241,9 @@ bgp_attr_encap(
|
|||
stlv_last = tlv;
|
||||
}
|
||||
|
||||
if (attre && (BGP_ATTR_ENCAP == type)) {
|
||||
if (BGP_ATTR_ENCAP == type) {
|
||||
if (!attre)
|
||||
attre = bgp_attr_extra_get(attr);
|
||||
attre->encap_tunneltype = tunneltype;
|
||||
}
|
||||
|
||||
|
@ -2854,7 +2856,10 @@ bgp_packet_mpattr_tea(
|
|||
struct bgp_attr_encap_subtlv *st;
|
||||
const char *attrname;
|
||||
|
||||
if (!attr || !attr->extra)
|
||||
if (!attr || !attr->extra ||
|
||||
(attrtype == BGP_ATTR_ENCAP &&
|
||||
(!attr->extra->encap_tunneltype ||
|
||||
attr->extra->encap_tunneltype == BGP_ENCAP_TYPE_MPLS)))
|
||||
return;
|
||||
|
||||
switch (attrtype) {
|
||||
|
@ -2885,11 +2890,6 @@ bgp_packet_mpattr_tea(
|
|||
assert(0);
|
||||
}
|
||||
|
||||
|
||||
/* if no tlvs, don't make attr */
|
||||
if (subtlvs == NULL)
|
||||
return;
|
||||
|
||||
/* compute attr length */
|
||||
for (st = subtlvs; st; st = st->next) {
|
||||
attrlenfield += (attrhdrlen + st->length);
|
||||
|
|
|
@ -514,7 +514,8 @@ vnc_import_bgp_add_route_mode_resolve_nve_one_bi (
|
|||
if (bi->attr && bi->attr->extra)
|
||||
{
|
||||
encaptlvs = bi->attr->extra->vnc_subtlvs;
|
||||
if (bi->attr->extra->encap_tunneltype != BGP_ENCAP_TYPE_MPLS)
|
||||
if (bi->attr->extra->encap_tunneltype != BGP_ENCAP_TYPE_RESERVED &&
|
||||
bi->attr->extra->encap_tunneltype != BGP_ENCAP_TYPE_MPLS)
|
||||
{
|
||||
if (opt != NULL)
|
||||
opt->next = &optary[cur_opt];
|
||||
|
|
Loading…
Reference in a new issue