From 4a94cd26efbb37b01085b99e0de29d4b4cbfe234 Mon Sep 17 00:00:00 2001 From: Miklos Tirpak Date: Fri, 20 Dec 2019 11:55:43 +0100 Subject: [PATCH] fib: use 32 bits per-source reference counter The 16 bits reference counter limited the number of interfaces per FIB table to 65K from a given source. Some use cases, for example GTP-U tunnels require much more interfaces than that. This change increases the size of the reference counter to 32 bits. Type: fix Signed-off-by: Miklos Tirpak Change-Id: I944a98513018840f904f2808c2a1e963b37886cc --- src/vnet/fib/fib_table.c | 2 +- src/vnet/fib/fib_table.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vnet/fib/fib_table.c b/src/vnet/fib/fib_table.c index 6766028762d..ac0f2da6696 100644 --- a/src/vnet/fib/fib_table.c +++ b/src/vnet/fib/fib_table.c @@ -1277,7 +1277,7 @@ fib_table_lock_inc (fib_table_t *fib_table, { vec_validate(fib_table->ft_locks, source); - ASSERT(fib_table->ft_locks[source] < (0xffff - 1)); + ASSERT(fib_table->ft_total_locks < (0xffffffff - 1)); fib_table->ft_locks[source]++; fib_table->ft_total_locks++; } diff --git a/src/vnet/fib/fib_table.h b/src/vnet/fib/fib_table.h index a11f0560338..7f18188bdb3 100644 --- a/src/vnet/fib/fib_table.h +++ b/src/vnet/fib/fib_table.h @@ -83,7 +83,7 @@ typedef struct fib_table_t_ /** * per-source number of locks on the table */ - u16 *ft_locks; + u32 *ft_locks; u32 ft_total_locks; /** -- 2.16.6