From ef90ed08fbcde7535b4a789349b39dc25798c77d Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Thu, 13 Sep 2018 08:45:12 -0700 Subject: BIER API and load-balancing fixes Change-Id: Ibda19d786070c942c75016ab568c8361de2f24af Signed-off-by: Neale Ranns --- src/vnet/bier/bier_api.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/vnet/bier/bier_api.c') diff --git a/src/vnet/bier/bier_api.c b/src/vnet/bier/bier_api.c index 93048a0a890..2e8fc626baa 100644 --- a/src/vnet/bier/bier_api.c +++ b/src/vnet/bier/bier_api.c @@ -204,13 +204,24 @@ vl_api_bier_route_add_del_t_handler (vl_api_bier_route_add_del_t * mp) } } - if (mp->br_is_add) + if (mp->br_is_replace) { - bier_table_route_add(&bti, bp, brpaths); + if (0 == vec_len(brpaths)) + { + bier_table_route_delete(&bti, bp); + } + else + { + bier_table_route_path_update(&bti, bp, brpaths); + } + } + else if (mp->br_is_add) + { + bier_table_route_path_add(&bti, bp, brpaths); } else { - bier_table_route_remove(&bti, bp, brpaths); + bier_table_route_path_remove(&bti, bp, brpaths); } vec_free(brpaths); -- cgit 1.2.3-korg