summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/nat/dslite_cli.c69
-rw-r--r--src/plugins/nat/nat.api36
2 files changed, 105 insertions, 0 deletions
diff --git a/src/plugins/nat/dslite_cli.c b/src/plugins/nat/dslite_cli.c
index f600c0350d6..515929b2135 100644
--- a/src/plugins/nat/dslite_cli.c
+++ b/src/plugins/nat/dslite_cli.c
@@ -288,6 +288,16 @@ dslite_show_sessions_command_fn (vlib_main_t * vm,
/* *INDENT-OFF* */
+/*?
+ * @cliexpar
+ * @cliexstart{dslite add pool address}
+ * Add/delete DS-Lite pool address for AFTR element.
+ * To add DS-Lite pool address use:
+ * vpp# dslite add pool address 10.1.1.3
+ * To add DS-Lite pool address range use:
+ * vpp# dslite add pool address 10.1.1.5 - 10.1.1.7
+ * @cliexend
+?*/
VLIB_CLI_COMMAND (dslite_add_pool_address_command, static) = {
.path = "dslite add pool address",
.short_help = "dslite add pool address <ip4-range-start> [- <ip4-range-end>] "
@@ -295,36 +305,95 @@ VLIB_CLI_COMMAND (dslite_add_pool_address_command, static) = {
.function = dslite_add_del_pool_addr_command_fn,
};
+/*?
+ * @cliexpar
+ * @cliexstart{show dslite pool}
+ * Show DS-lite pool addresses.
+ * vpp# show dslite pool
+ * DS-Lite pool:
+ * 10.0.0.3
+ * 10.0.0.5
+ * 10.0.0.6
+ * 10.0.0.7
+ * @cliexend
+?*/
VLIB_CLI_COMMAND (show_dslite_pool_command, static) = {
.path = "show dslite pool",
.short_help = "show dslite pool",
.function = dslite_show_pool_command_fn,
};
+/*?
+ * @cliexpar
+ * @cliexstart{dslite set aftr-tunnel-endpoint-address}
+ * Set IPv6 tunnel endpoint address of the AFTR element.
+ * To set AFTR tunnel endpoint address use:
+ * vpp# dslite set aftr-tunnel-endpoint-address 2001:db8:85a3::8a2e:370:1
+ * @cliexend
+?*/
VLIB_CLI_COMMAND (dslite_set_aftr_tunnel_addr, static) = {
.path = "dslite set aftr-tunnel-endpoint-address",
.short_help = "dslite set aftr-tunnel-endpoint-address <ip6>",
.function = dslite_set_aftr_tunnel_addr_command_fn,
};
+/*?
+ * @cliexpar
+ * @cliexstart{show dslite aftr-tunnel-endpoint-address}
+ * Show IPv6 tunnel endpoint address of the AFTR element.
+ * vpp# show dslite aftr-tunnel-endpoint-address
+ * 2001:db8:85a3::8a2e:370:1
+ * @cliexend
+?*/
VLIB_CLI_COMMAND (dslite_show_aftr_ip6_addr, static) = {
.path = "show dslite aftr-tunnel-endpoint-address",
.short_help = "show dslite aftr-tunnel-endpoint-address",
.function = dslite_show_aftr_ip6_addr_command_fn,
};
+/*?
+ * @cliexpar
+ * @cliexstart{dslite set b4-tunnel-endpoint-address}
+ * Set IPv6 tunnel endpoint address of the B4 element.
+ * To set B4 tunnel endpoint address use:
+ * vpp# dslite set b4-tunnel-endpoint-address 2001:db8:62aa::375e:f4c1:1
+ * @cliexend
+?*/
VLIB_CLI_COMMAND (dslite_set_b4_tunnel_addr, static) = {
.path = "dslite set b4-tunnel-endpoint-address",
.short_help = "dslite set b4-tunnel-endpoint-address <ip6>",
.function = dslite_set_b4_tunnel_addr_command_fn,
};
+/*?
+ * @cliexpar
+ * @cliexstart{show dslite b4-tunnel-endpoint-address}
+ * Show IPv6 tunnel endpoint address of the B4 element.
+ * vpp# show dslite b4-tunnel-endpoint-address
+ * 2001:db8:62aa::375e:f4c1:1
+ * @cliexend
+?*/
VLIB_CLI_COMMAND (dslite_show_b4_ip6_addr, static) = {
.path = "show dslite b4-tunnel-endpoint-address",
.short_help = "show dslite b4-tunnel-endpoint-address",
.function = dslite_show_b4_ip6_addr_command_fn,
};
+/*?
+ * @cliexpar
+ * @cliexstart{show dslite sessions}
+ * Show DS-Lite sessions.
+ * vpp# show dslite sessions
+ * B4 fd01:2::2 1 sessions
+ * in 192.168.1.1:20000 out 10.0.0.3:16253 protocol udp
+ * total pkts 2, total bytes 136
+ * B4 fd01:2::3 2 sessions
+ * in 192.168.1.1:20001 out 10.0.0.3:18995 protocol tcp
+ * total pkts 2, total bytes 160
+ * in 192.168.1.1:4000 out 10.0.0.3:53893 protocol icmp
+ * total pkts 2, total bytes 136
+ * @cliexend
+?*/
VLIB_CLI_COMMAND (dslite_show_sessions, static) = {
.path = "show dslite sessions",
.short_help = "show dslite sessions",
diff --git a/src/plugins/nat/nat.api b/src/plugins/nat/nat.api
index aff8f1d3818..6bb08018966 100644
--- a/src/plugins/nat/nat.api
+++ b/src/plugins/nat/nat.api
@@ -564,12 +564,31 @@ define nat44_user_session_details {
u32 total_pkts;
};
+/** \brief NAT44 load-balancing address and port pair
+ @param addr - IPv4 address of the internal node
+ @param port - L4 port number of the internal node
+ @param probability - probability of the internal node to be randomly matched
+*/
typeonly manual_endian define nat44_lb_addr_port {
u8 addr[4];
u16 port;
u8 probability;
};
+/** \brief Add/delete NAT44 load-balancing static mapping rule
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param is_add - 1 if add, 0 if delete
+ @param external_addr - external IPv4 address of the service
+ @param external_port - external L4 port number of the service
+ @param protocol - IP protocol number of the service
+ @param vrf_id - internal network VRF ID
+ @param twice_nat - if 1 translate external host address and port
+ @param out2in_only - if 1 rule match only out2in direction
+ @param tag - opaque string tag
+ @param local_num - number of local network nodes
+ @param locals - local network nodes
+*/
autoreply manual_endian define nat44_add_del_lb_static_mapping {
u32 client_index;
u32 context;
@@ -585,11 +604,28 @@ autoreply manual_endian define nat44_add_del_lb_static_mapping {
vl_api_nat44_lb_addr_port_t locals[local_num];
};
+/** \brief Dump NAT44 load-balancing static mapping rules
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+*/
define nat44_lb_static_mapping_dump {
u32 client_index;
u32 context;
};
+/** \brief NAT44 load-balancing static mapping rule details response
+ @param context - sender context, to match reply w/ request
+ @param is_add - 1 if add, 0 if delete
+ @param external_addr - external IPv4 address of the service
+ @param external_port - external L4 port number of the service
+ @param protocol - IP protocol number of the service
+ @param vrf_id - internal network VRF ID
+ @param twice_nat - if 1 translate external host address and port
+ @param out2in_only - if 1 rule match only out2in direction
+ @param tag - opaque string tag
+ @param local_num - number of local network nodes
+ @param locals - local network nodes
+*/
manual_endian define nat44_lb_static_mapping_details {
u32 context;
u8 external_addr[4];