diff options
author | Filip Varga <fivarga@cisco.com> | 2021-07-26 20:59:21 +0200 |
---|---|---|
committer | Ole Tr�an <otroan@employees.org> | 2021-08-12 19:08:47 +0000 |
commit | 5ae454312c2ffccf47e4b8c430c81f1a3d067e67 (patch) | |
tree | acdd129fb94a0ea62304d23c926af20a6757b8fd /src/plugins/nat/nat44-ed/nat44_ed_cli.c | |
parent | c06d660aba34fc9c309af3204fe2cf2fa6619134 (diff) |
nat: NAT44ED configuration refactor
Refactoring and cleaning up address allocation functions &
ip table update callbacks.
Type: refactor
Change-Id: I9a11700a5f335b64d0d84e04d8e16d040624e01b
Signed-off-by: Filip Varga <fivarga@cisco.com>
Diffstat (limited to 'src/plugins/nat/nat44-ed/nat44_ed_cli.c')
-rw-r--r-- | src/plugins/nat/nat44-ed/nat44_ed_cli.c | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/src/plugins/nat/nat44-ed/nat44_ed_cli.c b/src/plugins/nat/nat44-ed/nat44_ed_cli.c index 9b3480cb9e4..af8ae8e6bd9 100644 --- a/src/plugins/nat/nat44-ed/nat44_ed_cli.c +++ b/src/plugins/nat/nat44-ed/nat44_ed_cli.c @@ -419,9 +419,13 @@ add_address_command_fn (vlib_main_t * vm, for (i = 0; i < count; i++) { if (is_add) - rv = snat_add_address (sm, &this_addr, vrf_id, twice_nat); + { + rv = nat44_ed_add_address (&this_addr, vrf_id, twice_nat); + } else - rv = snat_del_address (sm, this_addr, 0, twice_nat); + { + rv = nat44_ed_del_address (this_addr, 0, twice_nat); + } switch (rv) { @@ -1294,15 +1298,13 @@ snat_add_interface_address_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { - snat_main_t *sm = &snat_main; unformat_input_t _line_input, *line_input = &_line_input; - u32 sw_if_index; - int rv; - int is_del = 0; + snat_main_t *sm = &snat_main; clib_error_t *error = 0; + int rv, is_del = 0; u8 twice_nat = 0; + u32 sw_if_index; - /* Get a line of input. */ if (!unformat_user (input, unformat_line_input, line_input)) return clib_error_return (0, NAT44_ED_EXPECTED_ARGUMENT); @@ -1312,9 +1314,13 @@ snat_add_interface_address_command_fn (vlib_main_t * vm, sm->vnet_main, &sw_if_index)) ; else if (unformat (line_input, "twice-nat")) - twice_nat = 1; + { + twice_nat = 1; + } else if (unformat (line_input, "del")) - is_del = 1; + { + is_del = 1; + } else { error = clib_error_return (0, "unknown input '%U'", @@ -1323,17 +1329,21 @@ snat_add_interface_address_command_fn (vlib_main_t * vm, } } - rv = snat_add_interface_address (sm, sw_if_index, is_del, twice_nat); - - switch (rv) + if (!is_del) { - case 0: - break; - - default: - error = clib_error_return (0, "snat_add_interface_address returned %d", - rv); - goto done; + rv = nat44_ed_add_interface_address (sw_if_index, twice_nat); + if (rv) + { + error = clib_error_return (0, "add address returned %d", rv); + } + } + else + { + rv = nat44_ed_del_interface_address (sw_if_index, twice_nat); + if (rv) + { + error = clib_error_return (0, "del address returned %d", rv); + } } done: |