summaryrefslogtreecommitdiffstats
path: root/src/vnet/l2
diff options
context:
space:
mode:
authorDave Wallace <dwallacelf@gmail.com>2017-10-24 01:32:41 -0400
committerDave Wallace <dwallacelf@gmail.com>2017-10-24 01:32:41 -0400
commit71612d61930e57e7c8ebf9e5647b15a4b23720b2 (patch)
tree3c135af6d40442f5ae9f8397c62080e2b7e3f342 /src/vnet/l2
parent92b0275a364022af6ab828dfac83e38c0117cfe6 (diff)
Add extern to *_main global variable declarations in header files.
- Global variables declared in header files without the use of the 'extern' keword will result in multiple instances of the variable to be created by the compiler -- one for each different source file in which the the header file is included. This results in wasted memory allocated in the BSS segments as well as potentially introducing bugs in the application. Change-Id: I6ef1790b60a0bd9dd3994f8510723decf258b0cc Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Diffstat (limited to 'src/vnet/l2')
-rw-r--r--src/vnet/l2/l2_learn.c2
-rw-r--r--src/vnet/l2/l2_learn.h2
-rw-r--r--src/vnet/l2/l2_output.h2
3 files changed, 4 insertions, 2 deletions
diff --git a/src/vnet/l2/l2_learn.c b/src/vnet/l2/l2_learn.c
index fddab82426c..6ece1a3c7f2 100644
--- a/src/vnet/l2/l2_learn.c
+++ b/src/vnet/l2/l2_learn.c
@@ -29,6 +29,8 @@
#include <vppinfra/error.h>
#include <vppinfra/hash.h>
+l2learn_main_t l2learn_main;
+
/**
* @file
* @brief Ethernet Bridge Learning.
diff --git a/src/vnet/l2/l2_learn.h b/src/vnet/l2/l2_learn.h
index 3aaf48e2544..c1071450852 100644
--- a/src/vnet/l2/l2_learn.h
+++ b/src/vnet/l2/l2_learn.h
@@ -48,7 +48,7 @@ typedef struct
#define L2LEARN_DEFAULT_LIMIT (L2FIB_NUM_BUCKETS * 64)
-l2learn_main_t l2learn_main;
+extern l2learn_main_t l2learn_main;
extern vlib_node_registration_t l2fib_mac_age_scanner_process_node;
diff --git a/src/vnet/l2/l2_output.h b/src/vnet/l2/l2_output.h
index 1a73fdf9790..3b6e480d1dc 100644
--- a/src/vnet/l2/l2_output.h
+++ b/src/vnet/l2/l2_output.h
@@ -75,7 +75,7 @@ typedef struct
vnet_main_t *vnet_main;
} l2output_main_t;
-l2output_main_t l2output_main;
+extern l2output_main_t l2output_main;
extern vlib_node_registration_t l2output_node;