summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Tirpak <miklos.tirpak@gmail.com>2019-12-20 11:55:43 +0100
committerNeale Ranns <nranns@cisco.com>2019-12-22 22:56:22 +0000
commit4a94cd26efbb37b01085b99e0de29d4b4cbfe234 (patch)
tree455a5f1c6226a0287cd93e93da55b0ba3a2894c7
parentc301dc33f26e752574daadbcd29a55c168c77f14 (diff)
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 <miklos.tirpak@gmail.com> Change-Id: I944a98513018840f904f2808c2a1e963b37886cc
-rw-r--r--src/vnet/fib/fib_table.c2
-rw-r--r--src/vnet/fib/fib_table.h2
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;
/**