VRF imported FIB entry should inherit the flags from the export entry.
authorNeale Ranns <[email protected]>
Sat, 10 Dec 2016 21:59:14 +0000 (21:59 +0000)
committerDave Barach <[email protected]>
Sun, 11 Dec 2016 14:10:05 +0000 (14:10 +0000)
Change-Id: Ie2c3d62a468315390ef2c4314a73cff0f6d3cdaf
Signed-off-by: Neale Ranns <[email protected]>
vnet/vnet/fib/fib_attached_export.c
vnet/vnet/fib/fib_test.c

index 07bce55..c389ea4 100644 (file)
@@ -189,7 +189,8 @@ fib_entry_import_add (fib_ae_import_t *import,
             fib_table_entry_special_dpo_add(import->faei_import_fib,
                                             &prefix,
                                             FIB_SOURCE_AE,
-                                            FIB_ENTRY_FLAG_EXCLUSIVE,
+                                            (fib_entry_get_flags(entry_index) |
+                                             FIB_ENTRY_FLAG_EXCLUSIVE),
                                             load_balance_get_bucket(dpo->dpoi_index, 0));
 
             fib_entry_lock(entry_index);
index 1572f81..5083db2 100644 (file)
@@ -1001,7 +1001,7 @@ fib_test_v4 (void)
     fib_table_entry_update_one_path(fib_index,
                                    &pfx_10_10_10_2_s_32,
                                    FIB_SOURCE_ADJ,
-                                   FIB_ENTRY_FLAG_NONE,
+                                   FIB_ENTRY_FLAG_ATTACHED,
                                    FIB_PROTOCOL_IP4,
                                    &pfx_10_10_10_2_s_32.fp_addr,
                                    tm->hw[0]->sw_if_index,
@@ -3949,7 +3949,7 @@ fib_test_v6 (void)
     fib_table_entry_update_one_path(fib_index,
                                    &pfx_2001_1_2_s_128,
                                    FIB_SOURCE_ADJ,
-                                   FIB_ENTRY_FLAG_NONE,
+                                   FIB_ENTRY_FLAG_ATTACHED,
                                    FIB_PROTOCOL_IP6,
                                    &pfx_2001_1_2_s_128.fp_addr,
                                    tm->hw[0]->sw_if_index,
@@ -3988,7 +3988,7 @@ fib_test_v6 (void)
     fib_table_entry_update_one_path(fib_index,
                                    &pfx_2001_1_3_s_128,
                                    FIB_SOURCE_ADJ,
-                                   FIB_ENTRY_FLAG_NONE,
+                                   FIB_ENTRY_FLAG_ATTACHED,
                                    FIB_PROTOCOL_IP6,
                                    &pfx_2001_1_3_s_128.fp_addr,
                                    tm->hw[0]->sw_if_index,
@@ -4623,7 +4623,7 @@ fib_test_ae (void)
     fib_table_entry_update_one_path(fib_index,
                                    &pfx_10_10_10_1_s_32,
                                    FIB_SOURCE_ADJ,
-                                   FIB_ENTRY_FLAG_NONE,
+                                   FIB_ENTRY_FLAG_ATTACHED,
                                    FIB_PROTOCOL_IP4,
                                    &pfx_10_10_10_1_s_32.fp_addr,
                                    tm->hw[0]->sw_if_index,
@@ -4692,7 +4692,7 @@ fib_test_ae (void)
     fib_table_entry_update_one_path(fib_index,
                                    &pfx_10_10_10_2_s_32,
                                    FIB_SOURCE_ADJ,
-                                   FIB_ENTRY_FLAG_NONE,
+                                   FIB_ENTRY_FLAG_ATTACHED,
                                    FIB_PROTOCOL_IP4,
                                    &pfx_10_10_10_2_s_32.fp_addr,
                                    tm->hw[0]->sw_if_index,
@@ -4708,6 +4708,9 @@ fib_test_ae (void)
     FIB_TEST((FIB_NODE_INDEX_INVALID != fei), "ADJ-fib2 imported");
     FIB_TEST((ai == fib_entry_get_adj(fei)),
             "Import uses same adj as export");
+    FIB_TEST((FIB_ENTRY_FLAG_ATTACHED & fib_entry_get_flags(fei)),
+             "ADJ-fib2 imported flags %d",
+             fib_entry_get_flags(fei));
 
     /*
      * create a 2nd FIB table into which routes will be imported
@@ -4760,7 +4763,7 @@ fib_test_ae (void)
     fib_table_entry_update_one_path(fib_index,
                                    &pfx_10_10_10_3_s_32,
                                    FIB_SOURCE_ADJ,
-                                   FIB_ENTRY_FLAG_NONE,
+                                   FIB_ENTRY_FLAG_ATTACHED,
                                    FIB_PROTOCOL_IP4,
                                    &pfx_10_10_10_3_s_32.fp_addr,
                                    tm->hw[0]->sw_if_index,