X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Funittest%2Ffib_test.c;h=1a2ba4a4b00ebe210b77cf4a04854956cf0f7ae5;hb=e2fe09742;hp=fada2f81f52a510921952398416d95a85dc4f30a;hpb=11232e5d1798e7cba30aade3d5d14024bff2b67d;p=vpp.git diff --git a/src/plugins/unittest/fib_test.c b/src/plugins/unittest/fib_test.c index fada2f81f52..1a2ba4a4b00 100644 --- a/src/plugins/unittest/fib_test.c +++ b/src/plugins/unittest/fib_test.c @@ -93,7 +93,7 @@ static u8 * format_test_interface_name (u8 * s, va_list * args) return format (s, "test-eth%d", dev_instance); } -static uword dummy_interface_tx (vlib_main_t * vm, +static uword placeholder_interface_tx (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) { @@ -115,7 +115,7 @@ test_interface_admin_up_down (vnet_main_t * vnm, VNET_DEVICE_CLASS (test_interface_device_class,static) = { .name = "Test interface", .format_device_name = format_test_interface_name, - .tx_function = dummy_interface_tx, + .tx_function = placeholder_interface_tx, .admin_up_down_function = test_interface_admin_up_down, }; @@ -455,7 +455,7 @@ fib_test_validate_lb_v (const load_balance_t *lb, "bucket %d stacks on %U", bucket, format_dpo_type, dpo->dpoi_type); - + mld = mpls_label_dpo_get(dpo->dpoi_index); hdr = clib_net_to_host_u32(mld->mld_hdr[0].label_exp_s_ttl); @@ -714,7 +714,7 @@ fib_test_validate_entry (fib_node_index_t fei, fw_lbi = ip4_fib_forwarding_lookup(fib_index, &pfx->fp_addr.ip4); break; case FIB_PROTOCOL_IP6: - fw_lbi = ip6_fib_table_fwding_lookup(&ip6_main, fib_index, &pfx->fp_addr.ip6); + fw_lbi = ip6_fib_table_fwding_lookup(fib_index, &pfx->fp_addr.ip6); break; case FIB_PROTOCOL_MPLS: { @@ -845,11 +845,11 @@ fib_test_v4 (void) * at this stage there are 5 entries in the test FIB (plus 5 in the default), * all of which are special sourced and so none of which share path-lists. * There are also 2 entries, and 2 non-shared path-lists, in the v6 default - * table, and 4 path-lists in the v6 MFIB table + * table, and 4 path-lists in the v6 MFIB table and 2 in v4. */ #define ENBR (5+5+2) - u32 PNBR = 5+5+2+4; + u32 PNBR = 5+5+2+4+2; /* * if the IGMP plugin is loaded this adds two more entries to the v4 MFIB @@ -898,9 +898,6 @@ fib_test_v4 (void) adj = adj_get(ai); FIB_TEST((IP_LOOKUP_NEXT_GLEAN == adj->lookup_next_index), "attached interface adj is glean"); - FIB_TEST((0 == ip46_address_cmp(&local_pfx.fp_addr, - &adj->sub_type.glean.receive_addr)), - "attached interface adj is receive ok"); local_pfx.fp_len = 32; fib_table_entry_update_one_path(fib_index, &local_pfx, @@ -937,6 +934,9 @@ fib_test_v4 (void) FIB_PROTOCOL_IP4, FIB_SOURCE_INTERFACE)), "2 Interface Source'd prefixes"); + FIB_TEST((0 == ip46_address_cmp(&local_pfx.fp_addr, + &adj->sub_type.glean.rx_pfx.fp_addr)), + "attached interface adj is receive ok"); /* * +2 interface routes +2 non-shared path-lists @@ -4433,7 +4433,6 @@ fib_test_v6 (void) dpo = fib_entry_contribute_ip_forwarding(dfrt); FIB_TEST((dpo->dpoi_index == ip6_fib_table_fwding_lookup( - &ip6_main, 1, &pfx_0_0.fp_addr.ip6)), "default-route; fwd and non-fwd tables match"); @@ -4442,11 +4441,11 @@ fib_test_v6 (void) /* * At this stage there is one v4 FIB with 5 routes and two v6 FIBs - * each with 2 entries and a v6 mfib with 4 path-lists. + * each with 2 entries and a v6 mfib with 4 path-lists and v4 mfib with 2. * All entries are special so no path-list sharing. */ #define ENPS (5+4) - u32 PNPS = (5+4+4); + u32 PNPS = (5+4+4+2); /* * if the IGMP plugin is loaded this adds two more entries to the v4 MFIB */ @@ -4496,12 +4495,8 @@ fib_test_v6 (void) adj = adj_get(ai); FIB_TEST((IP_LOOKUP_NEXT_GLEAN == adj->lookup_next_index), "attached interface adj is glean"); - FIB_TEST((0 == ip46_address_cmp(&local_pfx.fp_addr, - &adj->sub_type.glean.receive_addr)), - "attached interface adj is receive ok"); dpo = fib_entry_contribute_ip_forwarding(fei); FIB_TEST((dpo->dpoi_index == ip6_fib_table_fwding_lookup( - &ip6_main, 1, &local_pfx.fp_addr.ip6)), "attached-route; fwd and non-fwd tables match"); @@ -4534,10 +4529,12 @@ fib_test_v6 (void) dpo = fib_entry_contribute_ip_forwarding(fei); FIB_TEST((dpo->dpoi_index == ip6_fib_table_fwding_lookup( - &ip6_main, 1, &local_pfx.fp_addr.ip6)), "local-route; fwd and non-fwd tables match"); + FIB_TEST((0 == ip46_address_cmp(&local_pfx.fp_addr, + &adj->sub_type.glean.rx_pfx.fp_addr)), + "attached interface adj is receive ok"); /* * +2 entries. +2 unshared path-lists @@ -4585,7 +4582,7 @@ fib_test_v6 (void) adj_unlock(locked_ai); /* - * no more entires. +1 shared path-list + * no more entries. +1 shared path-list */ FIB_TEST((1 == fib_path_list_db_size()), "path list DB population:%d", fib_path_list_db_size()); @@ -4613,7 +4610,7 @@ fib_test_v6 (void) "Default route is DROP"); /* - * no more entires. -1 shared path-list + * no more entries. -1 shared path-list */ FIB_TEST((0 == fib_path_list_db_size()), "path list DB population:%d", fib_path_list_db_size()); @@ -5260,6 +5257,8 @@ fib_test_v6 (void) FIB_TEST((0 == adj_nbr_db_size()), "ADJ DB size is %d", adj_nbr_db_size()); + FIB_TEST((0 == adj_glean_db_size()), "ADJ DB size is %d", + adj_glean_db_size()); return (res); } @@ -5534,7 +5533,7 @@ fib_test_ae (void) /* * remove the attached route from the 2nd FIB. expect the imported - * entires to be removed + * entries to be removed */ local_pfx.fp_len = 24; fib_table_entry_delete(import_fib_index2, @@ -5561,7 +5560,7 @@ fib_test_ae (void) /* * modify the route in FIB1 so it is no longer attached. expect the imported - * entires to be removed + * entries to be removed */ local_pfx.fp_len = 24; fib_table_entry_update_one_path(import_fib_index1, @@ -6691,7 +6690,7 @@ fib_test_label (void) l1600, FIB_ROUTE_PATH_FLAG_NONE); - FIB_TEST(!fib_test_validate_entry(fei, + FIB_TEST(!fib_test_validate_entry(fei, FIB_FORW_CHAIN_TYPE_UNICAST_IP4, 1, &l1600_eos_o_1_1_1_1), @@ -7828,7 +7827,7 @@ fib_test_walk (void) FOR_EACH_TEST_CHILD(tc) { /* - * we don't really care how many times the children are visisted, as long as + * we don't really care how many times the children are visited, as long as * it is more than once. */ FIB_TEST(1 <= vec_len(tc->ctxs), @@ -7850,7 +7849,7 @@ fib_test_walk (void) FOR_EACH_TEST_CHILD(tc) { /* - * we don't really care how many times the children are visisted, as long as + * we don't really care how many times the children are visited, as long as * it is more than once. */ FIB_TEST(1 <= vec_len(tc->ctxs), @@ -9313,13 +9312,16 @@ fib_test_inherit (void) "%U via 10.10.10.2", format_fib_prefix, &pfx_10_10_10_0_s_24); + fib_source_t hi_src = fib_source_allocate("test", 0x50, + FIB_SOURCE_BH_SIMPLE); + /* * add the source that replaces inherited state. * inheriting source is not the best, so it doesn't push state. */ fib_table_entry_update_one_path(0, &pfx_10_10_10_0_s_24, - FIB_SOURCE_PLUGIN_HI, + hi_src, FIB_ENTRY_FLAG_NONE, DPO_PROTO_IP4, &nh_10_10_10_1, @@ -9357,7 +9359,7 @@ fib_test_inherit (void) * withdraw the higher priority source and expect the inherited to return * throughout the sub-tree */ - fib_table_entry_delete(0, &pfx_10_10_10_0_s_24, FIB_SOURCE_PLUGIN_HI); + fib_table_entry_delete(0, &pfx_10_10_10_0_s_24, hi_src); fei = fib_table_lookup_exact_match(0, &pfx_10_10_10_21_s_32); FIB_TEST(!fib_test_validate_entry(fei,