aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/mfib/mfib_entry.c
diff options
context:
space:
mode:
authorNeale Ranns <neale@graphiant.com>2021-12-20 18:18:42 +0000
committerDamjan Marion <dmarion@me.com>2021-12-21 11:13:41 +0000
commit53962fbccb4612af41e3fbd913cc50be09d3b24a (patch)
treeb576686d35593d8e20b8f858eed4585ae3e8ff65 /src/vnet/mfib/mfib_entry.c
parent3aa3d6d3f347784f3df5c164b3078bdc5e80e54a (diff)
fib: MPLS EOS chains built for attached prefixes should link to a lookup DPO
Type: fix Presently a local label associated with an attached or connected prefix will link to the glean. This is a problem since it will never use the adj-fibs that are installed for that attached prefix. Instead link the local label to a lookup in the table in which the attached link is bound. Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: Iad49fb6168b9ba47216a9a52bd262363b49c3c43
Diffstat (limited to 'src/vnet/mfib/mfib_entry.c')
-rw-r--r--src/vnet/mfib/mfib_entry.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/vnet/mfib/mfib_entry.c b/src/vnet/mfib/mfib_entry.c
index 1b685d68482..8050882d436 100644
--- a/src/vnet/mfib/mfib_entry.c
+++ b/src/vnet/mfib/mfib_entry.c
@@ -547,6 +547,7 @@ typedef struct mfib_entry_collect_forwarding_ctx_t_
load_balance_path_t * next_hops;
fib_forward_chain_type_t fct;
mfib_entry_src_t *msrc;
+ dpo_proto_t payload_proto;
} mfib_entry_collect_forwarding_ctx_t;
static fib_path_list_walk_rc_t
@@ -592,7 +593,8 @@ mfib_entry_src_collect_forwarding (fib_node_index_t pl_index,
nh->path_index = path_index;
nh->path_weight = fib_path_get_weight(path_index);
- fib_path_contribute_forwarding(path_index, ctx->fct, &nh->path_dpo);
+ fib_path_contribute_forwarding(path_index, ctx->fct,
+ ctx->payload_proto, &nh->path_dpo);
break;
case FIB_FORW_CHAIN_TYPE_UNICAST_IP4:
@@ -632,6 +634,7 @@ mfib_entry_stack (mfib_entry_t *mfib_entry,
.next_hops = NULL,
.fct = mfib_entry_get_default_chain_type(mfib_entry),
.msrc = msrc,
+ .payload_proto = fib_proto_to_dpo(mfib_entry->mfe_prefix.fp_proto),
};
/*