Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
tapv2: add "tap_flags" field to the TAPv2 interface API
[vpp.git]
/
src
/
vnet
/
devices
/
tap
/
tap.c
diff --git
a/src/vnet/devices/tap/tap.c
b/src/vnet/devices/tap/tap.c
index
2341bbb
..
d0ed58c
100644
(file)
--- a/
src/vnet/devices/tap/tap.c
+++ b/
src/vnet/devices/tap/tap.c
@@
-31,7
+31,6
@@
#include <linux/rtnetlink.h>
#include <vlib/vlib.h>
#include <linux/rtnetlink.h>
#include <vlib/vlib.h>
-#include <vlib/log.h>
#include <vlib/unix/unix.h>
#include <vnet/ethernet/ethernet.h>
#include <vnet/ip/ip4_packet.h>
#include <vlib/unix/unix.h>
#include <vnet/ethernet/ethernet.h>
#include <vnet/ip/ip4_packet.h>
@@
-116,7
+115,7
@@
tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args)
return;
}
return;
}
- memset (&ifr, 0, sizeof (ifr));
+
clib_
memset (&ifr, 0, sizeof (ifr));
pool_get (vim->interfaces, vif);
vif->dev_instance = vif - vim->interfaces;
vif->tap_fd = -1;
pool_get (vim->interfaces, vif);
vif->dev_instance = vif - vim->interfaces;
vif->tap_fd = -1;
@@
-183,6
+182,7
@@
tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args)
if (args->host_namespace)
{
int fd;
if (args->host_namespace)
{
int fd;
+ int rc;
old_netns_fd = open ("/proc/self/ns/net", O_RDONLY);
if ((fd = open_netns_fd ((char *) args->host_namespace)) == -1)
{
old_netns_fd = open ("/proc/self/ns/net", O_RDONLY);
if ((fd = open_netns_fd ((char *) args->host_namespace)) == -1)
{
@@
-198,14
+198,15
@@
tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args)
args->rv = VNET_API_ERROR_NETLINK_ERROR;
goto error;
}
args->rv = VNET_API_ERROR_NETLINK_ERROR;
goto error;
}
- if (setns (fd, CLONE_NEWNET) == -1)
+ rc = setns (fd, CLONE_NEWNET);
+ close (fd);
+ if (rc == -1)
{
args->rv = VNET_API_ERROR_SYSCALL_ERROR_3;
args->error = clib_error_return_unix (0, "setns '%s'",
args->host_namespace);
goto error;
}
{
args->rv = VNET_API_ERROR_SYSCALL_ERROR_3;
args->error = clib_error_return_unix (0, "setns '%s'",
args->host_namespace);
goto error;
}
- close (fd);
if ((vif->ifindex = if_nametoindex ((char *) args->host_if_name)) == 0)
{
args->rv = VNET_API_ERROR_SYSCALL_ERROR_3;
if ((vif->ifindex = if_nametoindex ((char *) args->host_if_name)) == 0)
{
args->rv = VNET_API_ERROR_SYSCALL_ERROR_3;
@@
-318,7
+319,7
@@
tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args)
/* Set vhost memory table */
i = sizeof (struct vhost_memory) + sizeof (struct vhost_memory_region);
vhost_mem = clib_mem_alloc (i);
/* Set vhost memory table */
i = sizeof (struct vhost_memory) + sizeof (struct vhost_memory_region);
vhost_mem = clib_mem_alloc (i);
- memset (vhost_mem, 0, i);
+
clib_
memset (vhost_mem, 0, i);
vhost_mem->nregions = 1;
vhost_mem->regions[0].memory_size = (1ULL << 47) - 4096;
_IOCTL (vif->fd, VHOST_SET_MEM_TABLE, vhost_mem);
vhost_mem->nregions = 1;
vhost_mem->regions[0].memory_size = (1ULL << 47) - 4096;
_IOCTL (vif->fd, VHOST_SET_MEM_TABLE, vhost_mem);
@@
-406,7
+407,7
@@
error:
close (vif->fd);
vec_foreach_index (i, vif->vrings) virtio_vring_free (vm, vif, i);
vec_free (vif->vrings);
close (vif->fd);
vec_foreach_index (i, vif->vrings) virtio_vring_free (vm, vif, i);
vec_free (vif->vrings);
- memset (vif, 0, sizeof (virtio_if_t));
+
clib_
memset (vif, 0, sizeof (virtio_if_t));
pool_put (vim->interfaces, vif);
done:
pool_put (vim->interfaces, vif);
done:
@@
-450,7
+451,7
@@
tap_delete_if (vlib_main_t * vm, u32 sw_if_index)
tm->tap_ids = clib_bitmap_set (tm->tap_ids, vif->id, 0);
clib_spinlock_free (&vif->lockp);
tm->tap_ids = clib_bitmap_set (tm->tap_ids, vif->id, 0);
clib_spinlock_free (&vif->lockp);
- memset (vif, 0, sizeof (*vif));
+
clib_
memset (vif, 0, sizeof (*vif));
pool_put (mm->interfaces, vif);
return 0;
pool_put (mm->interfaces, vif);
return 0;
@@
-469,7
+470,7
@@
tap_dump_ifs (tap_interface_details_t ** out_tapids)
/* *INDENT-OFF* */
pool_foreach (vif, mm->interfaces,
vec_add2(r_tapids, tapid, 1);
/* *INDENT-OFF* */
pool_foreach (vif, mm->interfaces,
vec_add2(r_tapids, tapid, 1);
- memset (tapid, 0, sizeof (*tapid));
+
clib_
memset (tapid, 0, sizeof (*tapid));
tapid->id = vif->id;
tapid->sw_if_index = vif->sw_if_index;
hi = vnet_get_hw_interface (vnm, vif->hw_if_index);
tapid->id = vif->id;
tapid->sw_if_index = vif->sw_if_index;
hi = vnet_get_hw_interface (vnm, vif->hw_if_index);
@@
-511,21
+512,16
@@
tap_dump_ifs (tap_interface_details_t ** out_tapids)
return 0;
}
return 0;
}
-#define vlib_log_info(...) vlib_log(VLIB_LOG_LEVEL_INFO, __VA_ARGS__)
-
static clib_error_t *
tap_init (vlib_main_t * vm)
{
tap_main_t *tm = &tap_main;
static clib_error_t *
tap_init (vlib_main_t * vm)
{
tap_main_t *tm = &tap_main;
- clib_error_t *error;
- error = vlib_call_init_function (vm, vlib_log_init);
- if (error)
- return error;
+ clib_error_t *error = 0;
tm->log_default = vlib_log_register_class ("tap", 0);
tm->log_default = vlib_log_register_class ("tap", 0);
- vlib_log_
info
(tm->log_default, "initialized");
+ vlib_log_
debug
(tm->log_default, "initialized");
- return
NULL
;
+ return
error
;
}
VLIB_INIT_FUNCTION (tap_init);
}
VLIB_INIT_FUNCTION (tap_init);