nobase_include_HEADERS = plugins/sixrd/sixrd.h
libsixrd_plugin_la_LDFLAGS = -module
-BUILT_SOURCES =
+#BUILT_SOURCES =
lib_LTLIBRARIES = libsixrd_plugin.la
plugins/ioam/lib-pot/pot_util.h plugins/ioam/lib-pot/math64.h plugins/ioam/lib-pot/pot_api.c
ioam_pot_plugin_la_LDFLAGS = -module
-BUILT_SOURCES += plugins/ioam/lib-pot/pot.api.h
+BUILT_SOURCES = plugins/ioam/lib-pot/pot.api.h
SUFFIXES = .api.h .api
%.api.h: %.api
lib_LTLIBRARIES += ioam_pot_plugin.la ioam_pot_test_plugin.la
+########################################
+# Virtual Carrier Grade NAT
+########################################
+
+libvcgn_plugin_la_SOURCES = \
+ plugins/vcgn/cnat_bulk_port.c \
+ plugins/vcgn/cnat_config.c \
+ plugins/vcgn/cnat_db_scanner.c \
+ plugins/vcgn/cnat_db_v2.c \
+ plugins/vcgn/cnat_debug_msg_handler.c \
+ plugins/vcgn/cnat_cli_handler.c \
+ plugins/vcgn/cnat_global.c \
+ plugins/vcgn/cnat_ipv4_udp_inside_input.c \
+ plugins/vcgn/cnat_ipv4_udp_inside_input_exceptions.c \
+ plugins/vcgn/cnat_ipv4_udp_outside_input.c \
+ plugins/vcgn/cnat_ipv4_tcp_inside_input.c \
+ plugins/vcgn/cnat_ipv4_tcp_inside_input_exceptions.c \
+ plugins/vcgn/cnat_ipv4_tcp_outside_input.c \
+ plugins/vcgn/cnat_ipv4_icmp_query_inside_input.c \
+ plugins/vcgn/cnat_ipv4_icmp_query_inside_input_exception.c \
+ plugins/vcgn/cnat_ipv4_icmp_query_outside_input.c \
+ plugins/vcgn/cnat_ipv4_icmp_error_inside_input.c \
+ plugins/vcgn/cnat_ipv4_icmp_error_outside_input.c \
+ plugins/vcgn/cnat_logging.c \
+ plugins/vcgn/cnat_ports.c \
+ plugins/vcgn/cnat_util.c \
+ plugins/vcgn/cnat_show.c \
+ plugins/vcgn/cnat_syslog.c \
+ plugins/vcgn/cnat_v4_functions.c \
+ plugins/vcgn/index_list.c \
+ plugins/vcgn/spp_platform_trace_log.c \
+ plugins/vcgn/vcgn_classify.c
+
+nobase_include_HEADERS += plugins/vcgn/cgn_bitmap.h \
+ plugins/vcgn/cgse_defs.h \
+ plugins/vcgn/cnat_bulk_port_defs.h \
+ plugins/vcgn/cnat_bulk_port.h \
+ plugins/vcgn/cnat_cli.h \
+ plugins/vcgn/cnat_common_api.h \
+ plugins/vcgn/cnat_config_api.h \
+ plugins/vcgn/cnat_config.h \
+ plugins/vcgn/cnat_db.h \
+ plugins/vcgn/cnat_global.h \
+ plugins/vcgn/cnat_ipv4_icmp.h \
+ plugins/vcgn/cnat_ipv4_udp.h \
+ plugins/vcgn/cnat_log_api.h \
+ plugins/vcgn/cnat_log_common.h \
+ plugins/vcgn/cnat_logging.h \
+ plugins/vcgn/cnat_pcp_server.h \
+ plugins/vcgn/cnat_ports.h \
+ plugins/vcgn/cnat_show_api.h \
+ plugins/vcgn/cnat_show_response.h \
+ plugins/vcgn/cnat_syslog.h \
+ plugins/vcgn/cnat_v4_ftp_alg.h \
+ plugins/vcgn/cnat_v4_functions.h \
+ plugins/vcgn/cnat_v4_pptp_alg.h \
+ plugins/vcgn/cnat_va_db.h \
+ plugins/vcgn/dslite_db.h \
+ plugins/vcgn/dslite_defs.h \
+ plugins/vcgn/index_list.h \
+ plugins/vcgn/nat64_db.h \
+ plugins/vcgn/nat64_defs.h \
+ plugins/vcgn/nat64_tcp_sm.h \
+ plugins/vcgn/platform_common.h \
+ plugins/vcgn/platform_common_override.h \
+ plugins/vcgn/spp_ctx.h \
+ plugins/vcgn/spp_platform_trace_log.h \
+ plugins/vcgn/spp_timers.h \
+ plugins/vcgn/tcp_header_definitions.h \
+ plugins/vcgn/vcgn_db.h
+
+libvcgn_plugin_la_LDFLAGS = -module
+
+lib_LTLIBRARIES += libvcgn_plugin.la
+
if WITH_PLUGIN_TOOLKIT
install-data-hook:
mkdir /usr/lib/vpp_plugins || true
mkdir /usr/lib/vpp_api_test_plugins || true
- cp $(prefix)/lib/sixrd_plugin.so.*.*.* /usr/lib/vpp_plugins
+ cp $(prefix)/lib/libsixrd_plugin.so.*.*.* /usr/lib/vpp_plugins
+ cp $(prefix)/lib/libvcgn_plugin.so.*.*.* /usr/lib/vpp_plugins
cp $(prefix)/lib/ioam_pot_plugin.so.*.*.* /usr/lib/vpp_plugins
cp $(prefix)/lib/ioam_pot_test_plugin.so.*.*.* \
/usr/lib/vpp_api_test_plugins
endif
+
*global_nfv9_logging_info = 0;
vnet_hw_interface_t * hw;
- dpdk_main_t * dm = &dpdk_main;
+ vnet_main_t * vnm = vnet_get_main();
void cnat_nfv9_show_collector
(vlib_main_t *vm, cnat_nfv9_logging_info_t *my_nfv9_logging_info);
vlib_cli_output(vm, "\tdynamic port start range : %u\n", cnat_static_port_range);
pool_foreach(my_vrfmap, cnat_map_by_vrf, ({
- hw = vnet_get_hw_interface (dm->vnet_main, my_vrfmap->i_vrf);
+ hw = vnet_get_hw_interface (vnm, my_vrfmap->i_vrf);
vlib_cli_output(vm, "\tInside Interface : %v\n", hw->name);
- hw = vnet_get_hw_interface (dm->vnet_main, my_vrfmap->o_vrf);
+ hw = vnet_get_hw_interface (vnm, my_vrfmap->o_vrf);
vlib_cli_output(vm, "\tOutside Interface : %v\n", hw->name);
memset(status_str, 0x00, sizeof(status_str));
u8 display_entry;
u8 flag_str[11];
vnet_hw_interface_t * hw;
- dpdk_main_t * dm = &dpdk_main;
+ vnet_main_t * vnm = vnet_get_main();
ki.k.k.ipv4 = mp->ipv4_addr;
ki.k.k.vrf = mp->vrf_id;
else strncpy((char *)transl_str, "Unknown", 7); /* currently we are not supporting static/alg entries */
ip.s_addr = clib_net_to_host_u32(u_ki.k.k.ipv4);
- hw = vnet_get_hw_interface (dm->vnet_main, u_ki.k.k.vrf);
+ hw = vnet_get_hw_interface (vnm, u_ki.k.k.vrf);
vlib_cli_output (vm, "Inside-translation details\n");
vlib_cli_output (vm, "--------------------------\n");
u8 display_entry;
u8 flag_str[11];
vnet_hw_interface_t * hw;
- dpdk_main_t * dm = &dpdk_main;
+ vnet_main_t * vnm = vnet_get_main();
ko.k.k.ipv4 = mp->ipv4_addr;
ko.k.k.vrf = mp->vrf_id;
else strncpy((char *)transl_str, "Unknown", 7); /* currently we are not supporting static/alg entries */
ip.s_addr = clib_net_to_host_u32(ko.k.k.ipv4);
- hw = vnet_get_hw_interface (dm->vnet_main, (ko.k.k.vrf & CNAT_VRF_MASK));
+ hw = vnet_get_hw_interface (vnm, (ko.k.k.vrf & CNAT_VRF_MASK));
vlib_cli_output (vm, "Outside-translation details\n");
vlib_cli_output (vm, "--------------------------\n");
* limitations under the License.
*/
+#include <vnet/plugin/plugin.h>
#include <vlib/vlib.h>
#include <vnet/vnet.h>
#include <vnet/pg/pg.h>
return error;
}
-VLIB_INIT_FUNCTION (vcgn_init);
+/*
+ * This routine exists to convince the vlib plugin framework that
+ * we haven't accidentally copied a random .dll into the plugin
+ * directory. This is used in lieu of VLIB_INIT_FUNCTION(vcgn_init).
+ *
+ * Also collects global variable pointers passed from the vpp engine
+ */
+clib_error_t *
+vlib_plugin_register (vlib_main_t * vm, vnet_plugin_handoff_t * h,
+ int from_early_init)
+{
+ return vcgn_init(vm);
+}
AUTOMAKE_OPTIONS = foreign subdir-objects
-AM_CFLAGS = -Wall @DPDK@ @VIRL@ @IPSEC@ @VCGN@ @IPV6SR@
+AM_CFLAGS = -Wall @DPDK@ @VIRL@ @IPSEC@ @IPV6SR@
libvnet_la_SOURCES =
libvnetplugin_la_SOURCES =
vnet/sr/sr_error.def \
vnet/sr/sr.h
-########################################
-# CGN
-#########################################
-
-if WITH_VCGN
-libvnet_la_SOURCES += \
- vnet/vcgn/cnat_bulk_port.c \
- vnet/vcgn/cnat_config.c \
- vnet/vcgn/cnat_db_scanner.c \
- vnet/vcgn/cnat_db_v2.c \
- vnet/vcgn/cnat_debug_msg_handler.c \
- vnet/vcgn/cnat_cli_handler.c \
- vnet/vcgn/cnat_global.c \
- vnet/vcgn/cnat_ipv4_udp_inside_input.c \
- vnet/vcgn/cnat_ipv4_udp_inside_input_exceptions.c \
- vnet/vcgn/cnat_ipv4_udp_outside_input.c \
- vnet/vcgn/cnat_ipv4_tcp_inside_input.c \
- vnet/vcgn/cnat_ipv4_tcp_inside_input_exceptions.c \
- vnet/vcgn/cnat_ipv4_tcp_outside_input.c \
- vnet/vcgn/cnat_ipv4_icmp_query_inside_input.c \
- vnet/vcgn/cnat_ipv4_icmp_query_inside_input_exception.c \
- vnet/vcgn/cnat_ipv4_icmp_query_outside_input.c \
- vnet/vcgn/cnat_ipv4_icmp_error_inside_input.c \
- vnet/vcgn/cnat_ipv4_icmp_error_outside_input.c \
- vnet/vcgn/cnat_logging.c \
- vnet/vcgn/cnat_ports.c \
- vnet/vcgn/cnat_util.c \
- vnet/vcgn/cnat_show.c \
- vnet/vcgn/cnat_syslog.c \
- vnet/vcgn/cnat_v4_functions.c \
- vnet/vcgn/index_list.c \
- vnet/vcgn/spp_platform_trace_log.c \
- vnet/vcgn/vcgn_classify.c
-endif
-
########################################
# DHCPv6 proxy
########################################
[with_ipsec=0],
[with_ipsec=1])
-AC_ARG_WITH(vcgn,
- AC_HELP_STRING([--without-vcgn],[Disable vcgn]),
- [with_vcgn=0],
- [with_vcgn=1])
-
AC_ARG_WITH(ipv6sr,
AC_HELP_STRING([--without-ipv6sr],[Disable ipv6sr]),
[with_ipv6sr=0],
AM_CONDITIONAL(WITH_IPSEC, test "$with_ipsec" = "1")
AC_SUBST(IPSEC,[-DIPSEC=${with_ipsec}])
-AM_CONDITIONAL(WITH_VCGN, test "$with_vcgn" = "1")
-AC_SUBST(VCGN,[-DVCGN=${with_vcgn}])
-
AM_CONDITIONAL(WITH_IPV6SR, test "$with_ipv6sr" = "1")
AC_SUBST(IPV6SR,[-DIPV6SR=${with_ipv6sr}])