summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Mickael Guerin <jean-mickael.guerin@6wind.com>2016-03-04 14:14:21 +0100
committerGerrit Code Review <gerrit@fd.io>2016-03-14 12:40:17 +0000
commit8941ec2cb4ff29dbf167e3b80e09a70c9164cc19 (patch)
tree62e64a2f5e13a2ce6257c102c5f48a074e017716
parent966a8b868b33de72d5d9edb6317418165c62661c (diff)
fix declaration of symbol of different size
I got many warnings at the link step with gcc version 5.3.1 20160225 (Ubuntu 5.3.1-10ubuntu2): /usr/bin/ld: Warning: size of symbol `cop_input_node' changed from 112 in vnet/cop/.libs/cop.o to 168 in vnet/cop/.libs/node1.o /usr/bin/ld: Warning: size of symbol `ethernet_input_node' changed from 112 in vnet/.libs/interface.o to 136 in vnet/ethernet/.libs/node.o /usr/bin/ld: Warning: size of symbol `l2output_node' changed from 112 in vnet/l2/.libs/l2_efp_filter.o to 120 in vnet/l2/.libs/l2_output.o /usr/bin/ld: Warning: size of symbol `srp_input_node' changed from 112 in vnet/srp/.libs/format.o to 136 in vnet/srp/.libs/node.o /usr/bin/ld: Warning: size of symbol `vxlan_encap_node' changed from 112 in vnet/vxlan/.libs/vxlan.o to 128 in vnet/vxlan/.libs/encap.o /usr/bin/ld: Warning: size of symbol `vxlan_input_node' changed from 112 in vnet/vxlan/.libs/vxlan.o to 144 in vnet/vxlan/.libs/decap.o ... Looking at vlib_node_registration_t, I think the reason is that the char * next_nodes[] could be bigger where the variable is defined in .c file. We should mark global variables as external in header files. Some of them can be made static. Change-Id: Ieb6961fd08180c9a69e1d884852703f3eb23f23f Signed-off-by: Jean-Mickael Guerin <jean-mickael.guerin@6wind.com>
-rw-r--r--vnet/vnet/classify/vnet_classify.h4
-rw-r--r--vnet/vnet/cop/cop.h2
-rw-r--r--vnet/vnet/devices/dpdk/dpdk.h6
-rw-r--r--vnet/vnet/devices/ssvm/ssvm_eth.h2
-rw-r--r--vnet/vnet/ethernet/ethernet.h2
-rw-r--r--vnet/vnet/gre/gre.h2
-rw-r--r--vnet/vnet/ipsec/ikev2.c4
-rw-r--r--vnet/vnet/ipsec/ikev2.h2
-rw-r--r--vnet/vnet/ipsec/ipsec.h11
-rw-r--r--vnet/vnet/ipsec/ipsec_input.c10
-rw-r--r--vnet/vnet/ipsec/ipsec_output.c4
-rw-r--r--vnet/vnet/l2/l2_classify.h2
-rw-r--r--vnet/vnet/l2/l2_output.c4
-rw-r--r--vnet/vnet/l2/l2_output.h1
-rw-r--r--vnet/vnet/l2tp/l2tp.h4
-rw-r--r--vnet/vnet/lawful-intercept/lawful_intercept.h2
-rw-r--r--vnet/vnet/lisp-gpe/lisp_gpe.h4
-rw-r--r--vnet/vnet/map/ip4_sixrd.c4
-rw-r--r--vnet/vnet/map/ip6_sixrd.c4
-rw-r--r--vnet/vnet/map/map.h24
-rw-r--r--vnet/vnet/map/sixrd.h3
-rw-r--r--vnet/vnet/mpls-gre/mpls.h4
-rw-r--r--vnet/vnet/nsh-gre/nsh_gre.h4
-rw-r--r--vnet/vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.h4
-rw-r--r--vnet/vnet/srp/node.c2
-rw-r--r--vnet/vnet/srp/srp.h3
-rw-r--r--vnet/vnet/vxlan/vxlan.h4
27 files changed, 58 insertions, 64 deletions
diff --git a/vnet/vnet/classify/vnet_classify.h b/vnet/vnet/classify/vnet_classify.h
index 3e93ba34229..0c93e90d020 100644
--- a/vnet/vnet/classify/vnet_classify.h
+++ b/vnet/vnet/classify/vnet_classify.h
@@ -35,8 +35,8 @@
#include <vppinfra/cache.h>
#include <vppinfra/xxhash.h>
-vlib_node_registration_t ip4_classify_node;
-vlib_node_registration_t ip6_classify_node;
+extern vlib_node_registration_t ip4_classify_node;
+extern vlib_node_registration_t ip6_classify_node;
#define CLASSIFY_TRACE 0
diff --git a/vnet/vnet/cop/cop.h b/vnet/vnet/cop/cop.h
index 20238b8275a..eb5f1dfd78e 100644
--- a/vnet/vnet/cop/cop.h
+++ b/vnet/vnet/cop/cop.h
@@ -72,7 +72,7 @@ typedef struct {
cop_main_t cop_main;
-vlib_node_registration_t cop_input_node;
+extern vlib_node_registration_t cop_input_node;
int cop_interface_enable_disable (u32 sw_if_index, int enable_disable);
diff --git a/vnet/vnet/devices/dpdk/dpdk.h b/vnet/vnet/devices/dpdk/dpdk.h
index 77b19baff03..1635c0a170c 100644
--- a/vnet/vnet/devices/dpdk/dpdk.h
+++ b/vnet/vnet/devices/dpdk/dpdk.h
@@ -66,9 +66,9 @@
#define NB_MBUF (32<<10)
vnet_device_class_t dpdk_device_class;
-vlib_node_registration_t dpdk_input_node;
-vlib_node_registration_t dpdk_io_input_node;
-vlib_node_registration_t handoff_dispatch_node;
+extern vlib_node_registration_t dpdk_input_node;
+extern vlib_node_registration_t dpdk_io_input_node;
+extern vlib_node_registration_t handoff_dispatch_node;
typedef enum {
VNET_DPDK_DEV_ETH = 1, /* Standard DPDK PMD driver */
diff --git a/vnet/vnet/devices/ssvm/ssvm_eth.h b/vnet/vnet/devices/ssvm/ssvm_eth.h
index 1b077220305..618fb5ca14b 100644
--- a/vnet/vnet/devices/ssvm/ssvm_eth.h
+++ b/vnet/vnet/devices/ssvm/ssvm_eth.h
@@ -32,7 +32,7 @@
#include <ssvm.h>
vnet_device_class_t ssvm_eth_device_class;
-vlib_node_registration_t ssvm_eth_input_node;
+extern vlib_node_registration_t ssvm_eth_input_node;
#define SSVM_BUFFER_SIZE \
(VLIB_BUFFER_DEFAULT_FREE_LIST_BYTES + VLIB_BUFFER_PRE_DATA_SIZE)
diff --git a/vnet/vnet/ethernet/ethernet.h b/vnet/vnet/ethernet/ethernet.h
index 04e07b71bf7..21257c558fa 100644
--- a/vnet/vnet/ethernet/ethernet.h
+++ b/vnet/vnet/ethernet/ethernet.h
@@ -448,6 +448,6 @@ int vnet_add_del_ip4_arp_change_event (vnet_main_t * vnm,
uword type_opaque,
uword data, int is_add);
-vlib_node_registration_t ethernet_input_node;
+extern vlib_node_registration_t ethernet_input_node;
#endif /* included_ethernet_h */
diff --git a/vnet/vnet/gre/gre.h b/vnet/vnet/gre/gre.h
index c0689f60ddf..490360d1ce1 100644
--- a/vnet/vnet/gre/gre.h
+++ b/vnet/vnet/gre/gre.h
@@ -95,7 +95,7 @@ format_function_t format_gre_protocol;
format_function_t format_gre_header;
format_function_t format_gre_header_with_length;
-vlib_node_registration_t gre_input_node;
+extern vlib_node_registration_t gre_input_node;
vnet_device_class_t gre_device_class;
/* Parse gre protocol as 0xXXXX or protocol name.
diff --git a/vnet/vnet/ipsec/ikev2.c b/vnet/vnet/ipsec/ikev2.c
index 70dd58bd64a..4a047ee1e04 100644
--- a/vnet/vnet/ipsec/ikev2.c
+++ b/vnet/vnet/ipsec/ikev2.c
@@ -47,7 +47,7 @@ static u8 * format_ikev2_trace (u8 * s, va_list * args)
return s;
}
-vlib_node_registration_t ikev2_node;
+static vlib_node_registration_t ikev2_node;
#define foreach_ikev2_error \
_(PROCESSED, "IKEv2 packets processed") \
@@ -1908,7 +1908,7 @@ dispatch0:
return frame->n_vectors;
}
-VLIB_REGISTER_NODE (ikev2_node) = {
+VLIB_REGISTER_NODE (ikev2_node,static) = {
.function = ikev2_node_fn,
.name = "ikev2",
.vector_size = sizeof (u32),
diff --git a/vnet/vnet/ipsec/ikev2.h b/vnet/vnet/ipsec/ikev2.h
index fd0d75a62f3..0b5eb3c7df8 100644
--- a/vnet/vnet/ipsec/ikev2.h
+++ b/vnet/vnet/ipsec/ikev2.h
@@ -26,8 +26,6 @@
typedef u8 v8;
-vlib_node_registration_t ikev2_node;
-
typedef CLIB_PACKED (struct {
u64 ispi;
u64 rspi;
diff --git a/vnet/vnet/ipsec/ipsec.h b/vnet/vnet/ipsec/ipsec.h
index b755976f2b0..386c0adecd6 100644
--- a/vnet/vnet/ipsec/ipsec.h
+++ b/vnet/vnet/ipsec/ipsec.h
@@ -201,13 +201,10 @@ typedef struct {
ipsec_main_t ipsec_main;
-vlib_node_registration_t ipsec_input_ip4_node;
-vlib_node_registration_t ipsec_input_ip6_node;
-vlib_node_registration_t ipsec_output_node;
-vlib_node_registration_t esp_encrypt_node;
-vlib_node_registration_t esp_decrypt_node;
-vlib_node_registration_t ipsec_if_output_node;
-vlib_node_registration_t ipsec_if_input_node;
+extern vlib_node_registration_t esp_encrypt_node;
+extern vlib_node_registration_t esp_decrypt_node;
+extern vlib_node_registration_t ipsec_if_output_node;
+extern vlib_node_registration_t ipsec_if_input_node;
/*
diff --git a/vnet/vnet/ipsec/ipsec_input.c b/vnet/vnet/ipsec/ipsec_input.c
index abb4a47485a..3cd60ba1fe9 100644
--- a/vnet/vnet/ipsec/ipsec_input.c
+++ b/vnet/vnet/ipsec/ipsec_input.c
@@ -52,8 +52,6 @@ static char * ipsec_input_error_strings[] = {
#undef _
};
-vlib_node_registration_t ipsec_input_node;
-
typedef struct {
u32 tunnel_index;
u32 spi;
@@ -172,6 +170,8 @@ ipsec_input_ip6_protect_policy_match (ipsec_spd_t * spd,
return 0;
}
+static vlib_node_registration_t ipsec_input_ip4_node;
+
static uword
ipsec_input_ip4_node_fn (vlib_main_t * vm,
vlib_node_runtime_t * node,
@@ -270,7 +270,7 @@ trace0:
}
-VLIB_REGISTER_NODE (ipsec_input_ip4_node) = {
+VLIB_REGISTER_NODE (ipsec_input_ip4_node,static) = {
.function = ipsec_input_ip4_node_fn,
.name = "ipsec-input-ip4",
.vector_size = sizeof (u32),
@@ -289,6 +289,8 @@ VLIB_REGISTER_NODE (ipsec_input_ip4_node) = {
};
+static vlib_node_registration_t ipsec_input_ip6_node;
+
static uword
ipsec_input_ip6_node_fn (vlib_main_t * vm,
vlib_node_runtime_t * node,
@@ -387,7 +389,7 @@ trace0:
}
-VLIB_REGISTER_NODE (ipsec_input_ip6_node) = {
+VLIB_REGISTER_NODE (ipsec_input_ip6_node,static) = {
.function = ipsec_input_ip6_node_fn,
.name = "ipsec-input-ip6",
.vector_size = sizeof (u32),
diff --git a/vnet/vnet/ipsec/ipsec_output.c b/vnet/vnet/ipsec/ipsec_output.c
index fd804fae595..509b1e2fba9 100644
--- a/vnet/vnet/ipsec/ipsec_output.c
+++ b/vnet/vnet/ipsec/ipsec_output.c
@@ -58,7 +58,7 @@ static char * ipsec_output_error_strings[] = {
#undef _
};
-vlib_node_registration_t ipsec_output_node;
+static vlib_node_registration_t ipsec_output_node;
typedef struct {
u32 spd_id;
@@ -386,7 +386,7 @@ dispatch0:
return from_frame->n_vectors;
}
-VLIB_REGISTER_NODE (ipsec_output_node) = {
+VLIB_REGISTER_NODE (ipsec_output_node,static) = {
.function = ipsec_output_node_fn,
.name = "ipsec-output",
.vector_size = sizeof (u32),
diff --git a/vnet/vnet/l2/l2_classify.h b/vnet/vnet/l2/l2_classify.h
index 55c2fc8b00d..74e9d91c1ad 100644
--- a/vnet/vnet/l2/l2_classify.h
+++ b/vnet/vnet/l2/l2_classify.h
@@ -65,7 +65,7 @@ typedef struct {
l2_classify_main_t l2_classify_main;
-vlib_node_registration_t l2_classify_node;
+extern vlib_node_registration_t l2_classify_node;
void vnet_l2_classify_enable_disable (u32 sw_if_index,
int enable_disable);
diff --git a/vnet/vnet/l2/l2_output.c b/vnet/vnet/l2/l2_output.c
index 31fe2d98243..bea640c8c2f 100644
--- a/vnet/vnet/l2/l2_output.c
+++ b/vnet/vnet/l2/l2_output.c
@@ -102,6 +102,8 @@ split_horizon_violation (u8 shg1, u8 shg2)
}
+static vlib_node_registration_t l2output_node;
+
static uword
l2output_node_fn (vlib_main_t * vm,
vlib_node_runtime_t * node,
@@ -394,7 +396,7 @@ l2output_node_fn (vlib_main_t * vm,
}
-VLIB_REGISTER_NODE (l2output_node) = {
+VLIB_REGISTER_NODE (l2output_node,static) = {
.function = l2output_node_fn,
.name = "l2-output",
.vector_size = sizeof (u32),
diff --git a/vnet/vnet/l2/l2_output.h b/vnet/vnet/l2/l2_output.h
index 0d171b82541..1c7b033cb44 100644
--- a/vnet/vnet/l2/l2_output.h
+++ b/vnet/vnet/l2/l2_output.h
@@ -73,7 +73,6 @@ typedef struct {
} l2output_main_t;
l2output_main_t l2output_main;
-vlib_node_registration_t l2output_node;
// L2 output features
diff --git a/vnet/vnet/l2tp/l2tp.h b/vnet/vnet/l2tp/l2tp.h
index 9e7ac131a7f..3f77f70fb5a 100644
--- a/vnet/vnet/l2tp/l2tp.h
+++ b/vnet/vnet/l2tp/l2tp.h
@@ -85,8 +85,8 @@ typedef struct {
} l2t_trace_t;
l2t_main_t l2t_main;
-vlib_node_registration_t l2t_encap_node;
-vlib_node_registration_t l2t_decap_node;
+extern vlib_node_registration_t l2t_encap_node;
+extern vlib_node_registration_t l2t_decap_node;
enum {
SESSION_COUNTER_USER_TO_NETWORK=0,
diff --git a/vnet/vnet/lawful-intercept/lawful_intercept.h b/vnet/vnet/lawful-intercept/lawful_intercept.h
index f6cbf66e076..6fe6caf7f45 100644
--- a/vnet/vnet/lawful-intercept/lawful_intercept.h
+++ b/vnet/vnet/lawful-intercept/lawful_intercept.h
@@ -41,6 +41,6 @@ typedef CLIB_PACKED(struct {
udp_header_t udp;
}) ip4_udp_header_t;
-vlib_node_registration_t li_hit_node;
+extern vlib_node_registration_t li_hit_node;
#endif /* __lawful_intercept_h__ */
diff --git a/vnet/vnet/lisp-gpe/lisp_gpe.h b/vnet/vnet/lisp-gpe/lisp_gpe.h
index 8ca721dda84..12c4ebce38c 100644
--- a/vnet/vnet/lisp-gpe/lisp_gpe.h
+++ b/vnet/vnet/lisp-gpe/lisp_gpe.h
@@ -110,8 +110,8 @@ typedef struct {
lisp_gpe_main_t lisp_gpe_main;
-vlib_node_registration_t lisp_gpe_input_node;
-vlib_node_registration_t lisp_gpe_encap_node;
+extern vlib_node_registration_t lisp_gpe_input_node;
+extern vlib_node_registration_t lisp_gpe_encap_node;
u8 * format_lisp_gpe_encap_trace (u8 * s, va_list * args);
u8 * format_lisp_gpe_header_with_length (u8 * s, va_list * args);
diff --git a/vnet/vnet/map/ip4_sixrd.c b/vnet/vnet/map/ip4_sixrd.c
index 1e83ce831e0..2fb8015d994 100644
--- a/vnet/vnet/map/ip4_sixrd.c
+++ b/vnet/vnet/map/ip4_sixrd.c
@@ -15,7 +15,7 @@
*/
#include "sixrd.h"
-vlib_node_registration_t ip4_sixrd_node;
+static vlib_node_registration_t ip4_sixrd_node;
typedef enum {
IP4_SIXRD_NEXT_IP6_LOOKUP,
@@ -112,7 +112,7 @@ static char *sixrd_error_strings[] = {
#undef _
};
-VLIB_REGISTER_NODE(ip4_sixrd_node) = {
+VLIB_REGISTER_NODE(ip4_sixrd_node,static) = {
.function = ip4_sixrd,
.name = "ip4-sixrd",
.vector_size = sizeof(u32),
diff --git a/vnet/vnet/map/ip6_sixrd.c b/vnet/vnet/map/ip6_sixrd.c
index 0bd0cf3a303..36f3fab320b 100644
--- a/vnet/vnet/map/ip6_sixrd.c
+++ b/vnet/vnet/map/ip6_sixrd.c
@@ -20,7 +20,7 @@
#include "sixrd.h"
-vlib_node_registration_t ip6_sixrd_node;
+static vlib_node_registration_t ip6_sixrd_node;
typedef enum {
IP6_SIXRD_NEXT_IP4_LOOKUP,
@@ -114,7 +114,7 @@ static char *sixrd_error_strings[] = {
#undef _
};
-VLIB_REGISTER_NODE(ip6_sixrd_node) = {
+VLIB_REGISTER_NODE(ip6_sixrd_node,static) = {
.function = ip6_sixrd,
.name = "ip6-sixrd",
.vector_size = sizeof(u32),
diff --git a/vnet/vnet/map/map.h b/vnet/vnet/map/map.h
index d38d7f47241..a79da2cdabe 100644
--- a/vnet/vnet/map/map.h
+++ b/vnet/vnet/map/map.h
@@ -296,18 +296,18 @@ typedef struct {
map_main_t map_main;
-vlib_node_registration_t ip4_map_node;
-vlib_node_registration_t ip6_map_node;
-
-vlib_node_registration_t ip4_map_t_node;
-vlib_node_registration_t ip4_map_t_fragmented_node;
-vlib_node_registration_t ip4_map_t_tcp_udp_node;
-vlib_node_registration_t ip4_map_t_icmp_node;
-
-vlib_node_registration_t ip6_map_t_node;
-vlib_node_registration_t ip6_map_t_fragmented_node;
-vlib_node_registration_t ip6_map_t_tcp_udp_node;
-vlib_node_registration_t ip6_map_t_icmp_node;
+extern vlib_node_registration_t ip4_map_node;
+extern vlib_node_registration_t ip6_map_node;
+
+extern vlib_node_registration_t ip4_map_t_node;
+extern vlib_node_registration_t ip4_map_t_fragmented_node;
+extern vlib_node_registration_t ip4_map_t_tcp_udp_node;
+extern vlib_node_registration_t ip4_map_t_icmp_node;
+
+extern vlib_node_registration_t ip6_map_t_node;
+extern vlib_node_registration_t ip6_map_t_fragmented_node;
+extern vlib_node_registration_t ip6_map_t_tcp_udp_node;
+extern vlib_node_registration_t ip6_map_t_icmp_node;
/*
* map_get_pfx
diff --git a/vnet/vnet/map/sixrd.h b/vnet/vnet/map/sixrd.h
index d741cb278b5..388ba4d298b 100644
--- a/vnet/vnet/map/sixrd.h
+++ b/vnet/vnet/map/sixrd.h
@@ -18,9 +18,6 @@
#include <vnet/vnet.h>
#include <vnet/ip/ip.h>
-vlib_node_registration_t ip6_sixrd_node;
-vlib_node_registration_t ip4_sixrd_node;
-
int sixrd_create_domain(ip6_address_t *ip6_prefix, u8 ip6_prefix_len,
ip4_address_t *ip4_prefix, u8 ip4_prefix_len,
ip4_address_t *ip4_src, u32 *sixrd_domain_index, u16 mtu);
diff --git a/vnet/vnet/mpls-gre/mpls.h b/vnet/vnet/mpls-gre/mpls.h
index 5d7f9c5e219..c0a3531512f 100644
--- a/vnet/vnet/mpls-gre/mpls.h
+++ b/vnet/vnet/mpls-gre/mpls.h
@@ -113,8 +113,8 @@ format_function_t format_mpls_eth_header_with_length;
format_function_t format_mpls_unicast_label;
format_function_t format_mpls_encap_index;
-vlib_node_registration_t mpls_input_node;
-vlib_node_registration_t mpls_policy_encap_node;
+extern vlib_node_registration_t mpls_input_node;
+extern vlib_node_registration_t mpls_policy_encap_node;
vnet_device_class_t mpls_gre_device_class;
diff --git a/vnet/vnet/nsh-gre/nsh_gre.h b/vnet/vnet/nsh-gre/nsh_gre.h
index c82c80f6a68..580942f0f19 100644
--- a/vnet/vnet/nsh-gre/nsh_gre.h
+++ b/vnet/vnet/nsh-gre/nsh_gre.h
@@ -97,8 +97,8 @@ typedef struct {
nsh_gre_main_t nsh_gre_main;
-vlib_node_registration_t nsh_gre_input_node;
-vlib_node_registration_t nsh_gre_encap_node;
+extern vlib_node_registration_t nsh_gre_input_node;
+extern vlib_node_registration_t nsh_gre_encap_node;
u8 * format_nsh_gre_encap_trace (u8 * s, va_list * args);
diff --git a/vnet/vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.h b/vnet/vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.h
index 953035a472b..99dc60001f6 100644
--- a/vnet/vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.h
+++ b/vnet/vnet/nsh-vxlan-gpe/nsh_vxlan_gpe.h
@@ -125,8 +125,8 @@ typedef struct {
nsh_vxlan_gpe_main_t nsh_vxlan_gpe_main;
-vlib_node_registration_t nsh_vxlan_gpe_input_node;
-vlib_node_registration_t nsh_vxlan_gpe_encap_node;
+extern vlib_node_registration_t nsh_vxlan_gpe_input_node;
+extern vlib_node_registration_t nsh_vxlan_gpe_encap_node;
u8 * format_nsh_vxlan_gpe_encap_trace (u8 * s, va_list * args);
diff --git a/vnet/vnet/srp/node.c b/vnet/vnet/srp/node.c
index 0b23258249f..0ffd4018396 100644
--- a/vnet/vnet/srp/node.c
+++ b/vnet/vnet/srp/node.c
@@ -269,7 +269,7 @@ static char * srp_error_strings[] = {
#undef _
};
-vlib_node_registration_t srp_input_node = {
+static vlib_node_registration_t srp_input_node = {
.function = srp_input,
.name = "srp-input",
/* Takes a vector of packets. */
diff --git a/vnet/vnet/srp/srp.h b/vnet/vnet/srp/srp.h
index 48c447b7bfd..5288ebe4759 100644
--- a/vnet/vnet/srp/srp.h
+++ b/vnet/vnet/srp/srp.h
@@ -149,8 +149,7 @@ void srp_interface_set_hw_wrap_function (u32 hw_if_index, srp_hw_wrap_function_t
void srp_interface_set_hw_enable_function (u32 hw_if_index, srp_hw_enable_function_t * f);
-vlib_node_registration_t srp_ips_process_node;
-vlib_node_registration_t srp_input_node;
+extern vlib_node_registration_t srp_ips_process_node;
/* Called when an IPS control packet is received on given interface. */
void srp_ips_rx_packet (u32 sw_if_index, srp_ips_header_t * ips_packet);
diff --git a/vnet/vnet/vxlan/vxlan.h b/vnet/vnet/vxlan/vxlan.h
index b38e65de4c1..2454e4c53e8 100644
--- a/vnet/vnet/vxlan/vxlan.h
+++ b/vnet/vnet/vxlan/vxlan.h
@@ -112,8 +112,8 @@ typedef struct {
vxlan_main_t vxlan_main;
-vlib_node_registration_t vxlan_input_node;
-vlib_node_registration_t vxlan_encap_node;
+extern vlib_node_registration_t vxlan_input_node;
+extern vlib_node_registration_t vxlan_encap_node;
u8 * format_vxlan_encap_trace (u8 * s, va_list * args);