fib: fix path copy function to deal with provided DPO in exclusive path 86/37086/2
authorDamjan Marion <dmarion@me.com>
Wed, 7 Sep 2022 15:54:39 +0000 (17:54 +0200)
committerOle Tr�an <otroan@employees.org>
Fri, 9 Sep 2022 16:12:29 +0000 (16:12 +0000)
DPO in the new copy was not locked ...

Type: fix
Fixes: 0bfe5d8

Change-Id: I39f1368de459af91c4bb857d98a4b531bd5692a6
Signed-off-by: Damjan Marion <dmarion@me.com>
src/vnet/fib/fib_path.c

index e4ad877..db78587 100644 (file)
@@ -1507,6 +1507,12 @@ fib_path_copy (fib_node_index_t path_index,
     clib_memset(&path->fp_dpo, 0, sizeof(path->fp_dpo));
     dpo_reset(&path->fp_dpo);
 
+    if (path->fp_type == FIB_PATH_TYPE_EXCLUSIVE)
+    {
+       clib_memset(&path->exclusive.fp_ex_dpo, 0, sizeof(dpo_id_t));
+       dpo_copy(&path->exclusive.fp_ex_dpo, &orig_path->exclusive.fp_ex_dpo);
+    }
+
     return (fib_path_get_index(path));
 }