diff options
author | Mohsin Kazmi <sykazmi@cisco.com> | 2020-01-30 16:08:08 +0100 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2020-01-30 20:27:56 +0000 |
commit | 91592c0c9cdd1bc61a2796e41a8becc30aaf8082 (patch) | |
tree | 3b82b0479311d06cc0a3cfc5708c52b2b1f04c5a | |
parent | 3039753eda526e63d57a09debd3762e5590459df (diff) |
tap: fix host mtu configuration setting
host mtu can't be set if tap interface is in namespace.
This patch fixes this issue.
Type: fix
Change-Id: I63811c4b56c708fe708061a8afbaec41994f08ca
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
-rw-r--r-- | src/vnet/devices/tap/tap.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/vnet/devices/tap/tap.c b/src/vnet/devices/tap/tap.c index f47c1ea3f95..6f16a4cd71d 100644 --- a/src/vnet/devices/tap/tap.c +++ b/src/vnet/devices/tap/tap.c @@ -411,18 +411,6 @@ tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args) } } - /* switch back to old net namespace */ - if (args->host_namespace) - { - if (setns (old_netns_fd, CLONE_NEWNET) == -1) - { - args->rv = VNET_API_ERROR_SYSCALL_ERROR_2; - args->error = clib_error_return_unix (0, "setns '%s'", - args->host_namespace); - goto error; - } - } - if (args->host_mtu_set) { args->error = @@ -446,6 +434,18 @@ tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args) args->host_mtu_size = tm->host_mtu_size; } + /* switch back to old net namespace */ + if (args->host_namespace) + { + if (setns (old_netns_fd, CLONE_NEWNET) == -1) + { + args->rv = VNET_API_ERROR_SYSCALL_ERROR_2; + args->error = clib_error_return_unix (0, "setns '%s'", + args->host_namespace); + goto error; + } + } + for (i = 0; i < num_q_pairs; i++) { if (i < vif->num_rxqs && (args->error = @@ -621,6 +621,7 @@ error: args->rv = VNET_API_ERROR_SYSCALL_ERROR_3; } + tap_log_err (vif, "%U", format_clib_error, args->error); tap_free (vm, vif); done: if (vhost_mem) |