fib: respect mfib entry flags on create with paths

When an mfib entry was created with both paths and entry_flags then
the entry flags were being ignored. If there are no paths then the
flags were passed into mfib_table_entry_update, but in the case where
the entry didn't exist and there were paths and flags, the entry was
created within mfib_table_entry_paths_update() which used a default
of MFIB_ENTRY_FLAG_NONE.

Pass the flags through into the mfib_table_entry_paths_update fn. All
existing callers other than the create case will now pass in
MFIB_ENTRY_FLAG_NONE.

Type: fix
Signed-off-by: Paul Atkins <patkins@graphiant.com>
Change-Id: I256375ba2fa863a62a88474ce1ea6bf2accdd456
This commit is contained in:
Paul Atkins
2021-10-12 14:32:11 +01:00
committed by Neale Ranns
parent bfa86084af
commit 8e2b1b1298
18 changed files with 125 additions and 149 deletions
+3 -3
View File
@@ -927,9 +927,9 @@ dhcp6_proxy_set_server (ip46_address_t * addr,
if (dhcp_proxy_server_add (FIB_PROTOCOL_IP6, addr, src_addr,
rx_fib_index, server_table_id))
{
mfib_table_entry_path_update (rx_fib_index,
&all_dhcp_servers,
MFIB_SOURCE_DHCP, &path_for_us);
mfib_table_entry_path_update (rx_fib_index, &all_dhcp_servers,
MFIB_SOURCE_DHCP, MFIB_ENTRY_FLAG_NONE,
&path_for_us);
/*
* Each interface that is enabled in this table, needs to be added
* as an accepting interface, but this is not easily doable in VPP.
+6 -5
View File
@@ -524,15 +524,16 @@ int vnet_geneve_add_del_tunnel
* - the forwarding interface is for-us
* - the accepting interface is that from the API
*/
mfib_table_entry_path_update (t->encap_fib_index,
&mpfx, MFIB_SOURCE_GENEVE, &path);
mfib_table_entry_path_update (t->encap_fib_index, &mpfx,
MFIB_SOURCE_GENEVE,
MFIB_ENTRY_FLAG_NONE, &path);
path.frp_sw_if_index = a->mcast_sw_if_index;
path.frp_flags = FIB_ROUTE_PATH_FLAG_NONE;
path.frp_mitf_flags = MFIB_ITF_FLAG_ACCEPT;
mfei = mfib_table_entry_path_update (t->encap_fib_index,
&mpfx,
MFIB_SOURCE_GENEVE, &path);
mfei = mfib_table_entry_path_update (
t->encap_fib_index, &mpfx, MFIB_SOURCE_GENEVE,
MFIB_ENTRY_FLAG_NONE, &path);
/*
* Create the mcast adjacency to send traffic to the group
+6 -5
View File
@@ -524,15 +524,16 @@ int vnet_gtpu_add_mod_del_tunnel
* - the forwarding interface is for-us
* - the accepting interface is that from the API
*/
mfib_table_entry_path_update (t->encap_fib_index,
&mpfx, MFIB_SOURCE_GTPU, &path);
mfib_table_entry_path_update (t->encap_fib_index, &mpfx,
MFIB_SOURCE_GTPU,
MFIB_ENTRY_FLAG_NONE, &path);
path.frp_sw_if_index = a->mcast_sw_if_index;
path.frp_flags = FIB_ROUTE_PATH_FLAG_NONE;
path.frp_mitf_flags = MFIB_ITF_FLAG_ACCEPT;
mfei = mfib_table_entry_path_update (t->encap_fib_index,
&mpfx,
MFIB_SOURCE_GTPU, &path);
mfei = mfib_table_entry_path_update (
t->encap_fib_index, &mpfx, MFIB_SOURCE_GTPU,
MFIB_ENTRY_FLAG_NONE, &path);
/*
* Create the mcast adjacency to send traffic to the group
+11 -10
View File
@@ -408,18 +408,19 @@ igmp_enable_disable (u32 sw_if_index, u8 enable, igmp_mode_t mode)
{
/* first config in this FIB */
mfib_table_lock (mfib_index, FIB_PROTOCOL_IP4, MFIB_SOURCE_IGMP);
mfib_table_entry_path_update (mfib_index,
&mpfx_general_query,
MFIB_SOURCE_IGMP, &for_us_path);
mfib_table_entry_path_update (mfib_index,
&mpfx_report,
MFIB_SOURCE_IGMP, &for_us_path);
mfib_table_entry_path_update (mfib_index, &mpfx_general_query,
MFIB_SOURCE_IGMP,
MFIB_ENTRY_FLAG_NONE, &for_us_path);
mfib_table_entry_path_update (mfib_index, &mpfx_report,
MFIB_SOURCE_IGMP,
MFIB_ENTRY_FLAG_NONE, &for_us_path);
}
mfib_table_entry_path_update (mfib_index,
&mpfx_general_query,
MFIB_SOURCE_IGMP, &via_itf_path);
mfib_table_entry_path_update (mfib_index, &mpfx_general_query,
MFIB_SOURCE_IGMP, MFIB_ENTRY_FLAG_NONE,
&via_itf_path);
mfib_table_entry_path_update (mfib_index, &mpfx_report,
MFIB_SOURCE_IGMP, &via_itf_path);
MFIB_SOURCE_IGMP, MFIB_ENTRY_FLAG_NONE,
&via_itf_path);
}
}
else if (config && !enable)
+2 -1
View File
@@ -55,7 +55,8 @@ igmp_proxy_device_mfib_path_add_del (igmp_group_t * group, u8 add)
if (add)
mfib_table_entry_path_update (mfib_index, &mpfx_group_addr,
MFIB_SOURCE_IGMP, &via_itf_path);
MFIB_SOURCE_IGMP, MFIB_ENTRY_FLAG_NONE,
&via_itf_path);
else
mfib_table_entry_path_remove (mfib_index, &mpfx_group_addr,
MFIB_SOURCE_IGMP, &via_itf_path);
+3 -4
View File
@@ -768,10 +768,9 @@ bier_test_mpls_imp (void)
.frp_flags = FIB_ROUTE_PATH_BIER_IMP,
.frp_mitf_flags = MFIB_ITF_FLAG_FORWARD,
};
mfib_table_entry_path_update(0, // default table
&pfx_1_1_1_1_c_239_1_1_1 ,
MFIB_SOURCE_API,
&path_via_bier_imp_1);
mfib_table_entry_path_update (0, // default table
&pfx_1_1_1_1_c_239_1_1_1, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_bier_imp_1);
mfib_table_entry_delete(0,
&pfx_1_1_1_1_c_239_1_1_1 ,
MFIB_SOURCE_API);
+55 -92
View File
@@ -405,10 +405,8 @@ mfib_test_i (fib_protocol_t PROTO,
.frp_mitf_flags = MFIB_ITF_FLAG_ACCEPT,
};
mfib_table_entry_path_update(fib_index,
pfx_no_forward,
MFIB_SOURCE_API,
&path_via_if0);
mfib_table_entry_path_update (fib_index, pfx_no_forward, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if0);
mfei_no_f = mfib_table_lookup_exact_match(fib_index, pfx_no_forward);
MFIB_TEST(!mfib_test_entry(mfei_no_f,
@@ -456,18 +454,12 @@ mfib_test_i (fib_protocol_t PROTO,
/*
* An (S,G) with 1 accepting and 3 forwarding paths
*/
mfib_table_entry_path_update(fib_index,
pfx_s_g,
MFIB_SOURCE_API,
&path_via_if0);
mfib_table_entry_path_update(fib_index,
pfx_s_g,
MFIB_SOURCE_API,
&path_via_if1);
mfib_table_entry_paths_update(fib_index,
pfx_s_g,
MFIB_SOURCE_API,
two_paths);
mfib_table_entry_path_update (fib_index, pfx_s_g, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if0);
mfib_table_entry_path_update (fib_index, pfx_s_g, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if1);
mfib_table_entry_paths_update (fib_index, pfx_s_g, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, two_paths);
mfei_s_g = mfib_table_lookup_exact_match(fib_index, pfx_s_g);
@@ -496,14 +488,11 @@ mfib_test_i (fib_protocol_t PROTO,
* A (*,G), which the same G as the (S,G).
* different paths. test our LPM.
*/
mfei_g_1 = mfib_table_entry_path_update(fib_index,
pfx_star_g_1,
MFIB_SOURCE_API,
&path_via_if0);
mfib_table_entry_path_update(fib_index,
pfx_star_g_1,
MFIB_SOURCE_API,
&path_via_if1);
mfei_g_1 =
mfib_table_entry_path_update (fib_index, pfx_star_g_1, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if0);
mfib_table_entry_path_update (fib_index, pfx_star_g_1, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if1);
/*
* test we find the *,G and S,G via LPM and exact matches
@@ -566,14 +555,12 @@ mfib_test_i (fib_protocol_t PROTO,
* different paths. test our LPM.
*/
path_via_if2.frp_mitf_flags = MFIB_ITF_FLAG_ACCEPT;
mfei_g_m = mfib_table_entry_path_update(fib_index,
pfx_star_g_slash_m,
MFIB_SOURCE_API,
&path_via_if2);
mfib_table_entry_path_update(fib_index,
pfx_star_g_slash_m,
MFIB_SOURCE_API,
&path_via_if3);
mfei_g_m = mfib_table_entry_path_update (
fib_index, pfx_star_g_slash_m, MFIB_SOURCE_API, MFIB_ENTRY_FLAG_NONE,
&path_via_if2);
mfib_table_entry_path_update (fib_index, pfx_star_g_slash_m,
MFIB_SOURCE_API, MFIB_ENTRY_FLAG_NONE,
&path_via_if3);
/*
* test we find the (*,G/m), (*,G) and (S,G) via LPM and exact matches
@@ -647,10 +634,8 @@ mfib_test_i (fib_protocol_t PROTO,
.frp_mitf_flags = MFIB_ITF_FLAG_FORWARD,
};
mfei = mfib_table_entry_path_update(fib_index,
pfx_s_g,
MFIB_SOURCE_API,
&path_for_us);
mfei = mfib_table_entry_path_update (fib_index, pfx_s_g, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_for_us);
MFIB_TEST(!mfib_test_entry(mfei,
MFIB_ENTRY_FLAG_NONE,
@@ -684,10 +669,8 @@ mfib_test_i (fib_protocol_t PROTO,
* - expect it to be removed from the replication set.
*/
path_via_if3.frp_mitf_flags = MFIB_ITF_FLAG_ACCEPT;
mfib_table_entry_path_update(fib_index,
pfx_s_g,
MFIB_SOURCE_API,
&path_via_if3);
mfib_table_entry_path_update (fib_index, pfx_s_g, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if3);
MFIB_TEST(!mfib_test_entry(mfei,
MFIB_ENTRY_FLAG_NONE,
@@ -711,10 +694,8 @@ mfib_test_i (fib_protocol_t PROTO,
path_via_if3.frp_mitf_flags = (MFIB_ITF_FLAG_FORWARD |
MFIB_ITF_FLAG_ACCEPT |
MFIB_ITF_FLAG_NEGATE_SIGNAL);
mfib_table_entry_path_update(fib_index,
pfx_s_g,
MFIB_SOURCE_API,
&path_via_if3);
mfib_table_entry_path_update (fib_index, pfx_s_g, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if3);
mfei = mfib_table_lookup_exact_match(fib_index,
pfx_s_g);
@@ -855,10 +836,9 @@ mfib_test_i (fib_protocol_t PROTO,
*/
path_via_if0.frp_mitf_flags = (MFIB_ITF_FLAG_ACCEPT |
MFIB_ITF_FLAG_NEGATE_SIGNAL);
mfei_g_2 = mfib_table_entry_path_update(fib_index,
pfx_star_g_2,
MFIB_SOURCE_API,
&path_via_if0);
mfei_g_2 =
mfib_table_entry_path_update (fib_index, pfx_star_g_2, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if0);
MFIB_TEST(!mfib_test_entry(mfei_g_2,
MFIB_ENTRY_FLAG_NONE,
0),
@@ -883,10 +863,9 @@ mfib_test_i (fib_protocol_t PROTO,
*/
path_via_if0.frp_mitf_flags = (MFIB_ITF_FLAG_ACCEPT |
MFIB_ITF_FLAG_NEGATE_SIGNAL);
mfei_g_3 = mfib_table_entry_path_update(fib_index,
pfx_star_g_3,
MFIB_SOURCE_API,
&path_via_if0);
mfei_g_3 =
mfib_table_entry_path_update (fib_index, pfx_star_g_3, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if0);
MFIB_TEST(!mfib_test_entry(mfei_g_3,
MFIB_ENTRY_FLAG_NONE,
0),
@@ -1065,14 +1044,12 @@ mfib_test_i (fib_protocol_t PROTO,
.frp_mitf_flags = MFIB_ITF_FLAG_FORWARD,
};
mfei_g_1 = mfib_table_entry_path_update(fib_index,
pfx_star_g_1,
MFIB_SOURCE_API,
&path_via_nbr1);
mfei_g_1 = mfib_table_entry_path_update(fib_index,
pfx_star_g_1,
MFIB_SOURCE_API,
&path_via_nbr2);
mfei_g_1 =
mfib_table_entry_path_update (fib_index, pfx_star_g_1, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_nbr1);
mfei_g_1 =
mfib_table_entry_path_update (fib_index, pfx_star_g_1, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_nbr2);
MFIB_TEST(!mfib_test_entry(mfei_g_1,
MFIB_ENTRY_FLAG_NONE,
2,
@@ -1231,10 +1208,8 @@ mfib_test_i (fib_protocol_t PROTO,
FIB_FORW_CHAIN_TYPE_MPLS_EOS,
&mldp_dpo);
mfei = mfib_table_entry_path_update(fib_index,
pfx_s_g,
MFIB_SOURCE_API,
&path_via_mldp);
mfei = mfib_table_entry_path_update (fib_index, pfx_s_g, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_mldp);
MFIB_TEST(!mfib_test_entry(mfei,
MFIB_ENTRY_FLAG_NONE,
@@ -1246,10 +1221,8 @@ mfib_test_i (fib_protocol_t PROTO,
/*
* add a for-us path. this tests two types of non-attached paths on one entry
*/
mfei = mfib_table_entry_path_update(fib_index,
pfx_s_g,
MFIB_SOURCE_API,
&path_for_us);
mfei = mfib_table_entry_path_update (fib_index, pfx_s_g, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_for_us);
MFIB_TEST(!mfib_test_entry(mfei,
MFIB_ENTRY_FLAG_NONE,
2,
@@ -1573,10 +1546,8 @@ mfib_test_rr_i (fib_protocol_t FPROTO,
/*
* Insert the less specific /28
*/
mfib_table_entry_path_update(fib_index,
pfx_cover,
MFIB_SOURCE_API,
&path_via_if1);
mfib_table_entry_path_update (fib_index, pfx_cover, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if1);
mfei_cover = mfib_table_lookup_exact_match(fib_index, pfx_cover);
@@ -1600,10 +1571,8 @@ mfib_test_rr_i (fib_protocol_t FPROTO,
/*
* add another path to the cover
*/
mfib_table_entry_path_update(fib_index,
pfx_cover,
MFIB_SOURCE_API,
&path_via_if2);
mfib_table_entry_path_update (fib_index, pfx_cover, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if2);
/*
* expect the /32 and /28 to be via both boths
@@ -1657,10 +1626,8 @@ mfib_test_rr_i (fib_protocol_t FPROTO,
/*
* add an accepting path to the cover
*/
mfib_table_entry_path_update(fib_index,
pfx_cover,
MFIB_SOURCE_API,
&path_via_if0);
mfib_table_entry_path_update (fib_index, pfx_cover, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if0);
/*
* expect the /32 and /28 to be via both boths
@@ -1695,10 +1662,8 @@ mfib_test_rr_i (fib_protocol_t FPROTO,
/*
* add a for-us path to the cover
*/
mfib_table_entry_path_update(fib_index,
pfx_cover,
MFIB_SOURCE_API,
&path_for_us);
mfib_table_entry_path_update (fib_index, pfx_cover, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_for_us);
/*
* expect the /32 and /28 to be via all three paths
@@ -1766,10 +1731,9 @@ mfib_test_rr_i (fib_protocol_t FPROTO,
/*
* source the /32 with its own path
*/
mfei_host1 = mfib_table_entry_path_update(fib_index,
pfx_host1,
MFIB_SOURCE_API,
&path_via_if2);
mfei_host1 =
mfib_table_entry_path_update (fib_index, pfx_host1, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if2);
MFIB_TEST(!mfib_test_entry(mfei_host1,
MFIB_ENTRY_FLAG_NONE,
1,
@@ -1799,10 +1763,9 @@ mfib_test_rr_i (fib_protocol_t FPROTO,
/*
* add the RR back then remove the path and RR
*/
mfei_host1 = mfib_table_entry_path_update(fib_index,
pfx_host1,
MFIB_SOURCE_API,
&path_via_if2);
mfei_host1 =
mfib_table_entry_path_update (fib_index, pfx_host1, MFIB_SOURCE_API,
MFIB_ENTRY_FLAG_NONE, &path_via_if2);
MFIB_TEST(!mfib_test_entry(mfei_host1,
MFIB_ENTRY_FLAG_NONE,
1,
+2 -2
View File
@@ -435,10 +435,10 @@ vrrp_intf_enable_disable_mcast (u8 enable, u32 sw_if_index, u8 is_ipv6)
/* If this is the first VR configured, add the local mcast routes */
if (n_vrs == 1)
mfib_table_entry_path_update (fib_index, vrrp_prefix, MFIB_SOURCE_API,
&for_us);
MFIB_ENTRY_FLAG_NONE, &for_us);
mfib_table_entry_path_update (fib_index, vrrp_prefix, MFIB_SOURCE_API,
&via_itf);
MFIB_ENTRY_FLAG_NONE, &via_itf);
intf->mcast_adj_index[! !is_ipv6] =
adj_mcast_add_or_lock (proto, link_type, sw_if_index);
}
+2 -3
View File
@@ -979,9 +979,8 @@ mroute_add_del_handler (u8 is_add,
{
if (is_add)
{
mfib_entry_index =
mfib_table_entry_paths_update (fib_index, prefix,
MFIB_SOURCE_API, rpaths);
mfib_entry_index = mfib_table_entry_paths_update (
fib_index, prefix, MFIB_SOURCE_API, entry_flags, rpaths);
}
else
{
+2 -2
View File
@@ -882,8 +882,8 @@ vnet_ip_mroute_cmd (vlib_main_t * vm,
mfib_table_entry_path_remove (fib_index,
&pfx, MFIB_SOURCE_CLI, rpaths);
else
mfib_table_entry_path_update (fib_index,
&pfx, MFIB_SOURCE_CLI, rpaths);
mfib_table_entry_path_update (fib_index, &pfx, MFIB_SOURCE_CLI,
MFIB_ENTRY_FLAG_NONE, rpaths);
}
if (FIB_PROTOCOL_IP4 == pfx.fp_proto)
+2
View File
@@ -0,0 +1,2 @@
DisableFormat: true
SortIncludes: false
+2
View File
@@ -92,6 +92,7 @@ ip4_create_mfib_with_table_id (u32 table_id,
mfib_table_entry_path_update(mfib_table->mft_index,
&ip4_specials[ii],
MFIB_SOURCE_SPECIAL,
MFIB_ENTRY_FLAG_NONE,
&path);
}
@@ -151,6 +152,7 @@ ip4_mfib_interface_enable_disable (u32 sw_if_index, int is_enable)
mfib_table_entry_path_update(mfib_index,
&ip4_specials[ii],
MFIB_SOURCE_SPECIAL,
MFIB_ENTRY_FLAG_NONE,
&path);
}
else
+2
View File
@@ -183,6 +183,7 @@ ip6_create_mfib_with_table_id (u32 table_id,
mfib_table_entry_path_update(mfib_table->mft_index,
&pfx,
MFIB_SOURCE_SPECIAL,
MFIB_ENTRY_FLAG_NONE,
&path_for_us);
}));
@@ -255,6 +256,7 @@ ip6_mfib_interface_enable_disable (u32 sw_if_index, int is_enable)
mfib_table_entry_path_update(mfib_index,
&pfx,
MFIB_SOURCE_SPECIAL,
MFIB_ENTRY_FLAG_NONE,
&path);
});
}
+7 -3
View File
@@ -292,6 +292,7 @@ static fib_node_index_t
mfib_table_entry_paths_update_i (u32 fib_index,
const mfib_prefix_t *prefix,
mfib_source_t source,
mfib_entry_flags_t entry_flags,
const fib_route_path_t *rpaths)
{
fib_node_index_t mfib_entry_index;
@@ -306,7 +307,7 @@ mfib_table_entry_paths_update_i (u32 fib_index,
source,
prefix,
MFIB_RPF_ID_NONE,
MFIB_ENTRY_FLAG_NONE,
entry_flags,
INDEX_INVALID);
mfib_entry_path_update(mfib_entry_index, source, rpaths);
@@ -325,6 +326,7 @@ fib_node_index_t
mfib_table_entry_path_update (u32 fib_index,
const mfib_prefix_t *prefix,
mfib_source_t source,
mfib_entry_flags_t entry_flags,
const fib_route_path_t *rpath)
{
fib_node_index_t mfib_entry_index;
@@ -333,7 +335,8 @@ mfib_table_entry_path_update (u32 fib_index,
vec_add1(rpaths, *rpath);
mfib_entry_index = mfib_table_entry_paths_update_i(fib_index, prefix,
source, rpaths);
source, entry_flags,
rpaths);
vec_free(rpaths);
return (mfib_entry_index);
@@ -343,10 +346,11 @@ fib_node_index_t
mfib_table_entry_paths_update (u32 fib_index,
const mfib_prefix_t *prefix,
mfib_source_t source,
mfib_entry_flags_t entry_flags,
const fib_route_path_t *rpaths)
{
return (mfib_table_entry_paths_update_i(fib_index, prefix,
source, rpaths));
source, entry_flags, rpaths));
}
static void
+2
View File
@@ -210,10 +210,12 @@ extern fib_node_index_t mfib_table_entry_update(u32 fib_index,
extern fib_node_index_t mfib_table_entry_path_update(u32 fib_index,
const mfib_prefix_t *prefix,
mfib_source_t source,
mfib_entry_flags_t entry_flags,
const fib_route_path_t *rpath);
extern fib_node_index_t mfib_table_entry_paths_update(u32 fib_index,
const mfib_prefix_t *prefix,
mfib_source_t source,
mfib_entry_flags_t entry_flags,
const fib_route_path_t *rpath);
/**
+6 -7
View File
@@ -571,17 +571,16 @@ int vnet_vxlan_gbp_tunnel_add_del
* - the forwarding interface is for-us
* - the accepting interface is that from the API
*/
mfib_table_entry_path_update (t->encap_fib_index,
&mpfx,
MFIB_SOURCE_VXLAN_GBP, &path);
mfib_table_entry_path_update (t->encap_fib_index, &mpfx,
MFIB_SOURCE_VXLAN_GBP,
MFIB_ENTRY_FLAG_NONE, &path);
path.frp_sw_if_index = a->mcast_sw_if_index;
path.frp_flags = FIB_ROUTE_PATH_FLAG_NONE;
path.frp_mitf_flags = MFIB_ITF_FLAG_ACCEPT;
mfei = mfib_table_entry_path_update (t->encap_fib_index,
&mpfx,
MFIB_SOURCE_VXLAN_GBP,
&path);
mfei = mfib_table_entry_path_update (
t->encap_fib_index, &mpfx, MFIB_SOURCE_VXLAN_GBP,
MFIB_ENTRY_FLAG_NONE, &path);
/*
* Create the mcast adjacency to send traffic to the group
+6 -7
View File
@@ -645,17 +645,16 @@ int vnet_vxlan_gpe_add_del_tunnel
* - the forwarding interface is for-us
* - the accepting interface is that from the API
*/
mfib_table_entry_path_update (t->encap_fib_index,
&mpfx,
MFIB_SOURCE_VXLAN_GPE, &path);
mfib_table_entry_path_update (t->encap_fib_index, &mpfx,
MFIB_SOURCE_VXLAN_GPE,
MFIB_ENTRY_FLAG_NONE, &path);
path.frp_sw_if_index = a->mcast_sw_if_index;
path.frp_flags = FIB_ROUTE_PATH_FLAG_NONE;
path.frp_mitf_flags = MFIB_ITF_FLAG_ACCEPT;
mfei = mfib_table_entry_path_update (t->encap_fib_index,
&mpfx,
MFIB_SOURCE_VXLAN_GPE,
&path);
mfei = mfib_table_entry_path_update (
t->encap_fib_index, &mpfx, MFIB_SOURCE_VXLAN_GPE,
MFIB_ENTRY_FLAG_NONE, &path);
/*
* Create the mcast adjacency to send traffic to the group
+6 -5
View File
@@ -581,15 +581,16 @@ int vnet_vxlan_add_del_tunnel
* - the forwarding interface is for-us
* - the accepting interface is that from the API
*/
mfib_table_entry_path_update (t->encap_fib_index,
&mpfx, MFIB_SOURCE_VXLAN, &path);
mfib_table_entry_path_update (t->encap_fib_index, &mpfx,
MFIB_SOURCE_VXLAN,
MFIB_ENTRY_FLAG_NONE, &path);
path.frp_sw_if_index = a->mcast_sw_if_index;
path.frp_flags = FIB_ROUTE_PATH_FLAG_NONE;
path.frp_mitf_flags = MFIB_ITF_FLAG_ACCEPT;
mfei = mfib_table_entry_path_update (t->encap_fib_index,
&mpfx,
MFIB_SOURCE_VXLAN, &path);
mfei = mfib_table_entry_path_update (
t->encap_fib_index, &mpfx, MFIB_SOURCE_VXLAN,
MFIB_ENTRY_FLAG_NONE, &path);
/*
* Create the mcast adjacency to send traffic to the group