aboutsummaryrefslogtreecommitdiff
path: root/net/tap.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/tap.c')
-rw-r--r--net/tap.c103
1 files changed, 5 insertions, 98 deletions
diff --git a/net/tap.c b/net/tap.c
index 35895192c5..dd42ac6134 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -600,7 +600,6 @@ int net_init_bridge(const Netdev *netdev, const char *name,
const char *helper, *br;
TAPState *s;
int fd, vnet_hdr;
- NetdevBridgeOptions *stored;
assert(netdev->type == NET_CLIENT_DRIVER_BRIDGE);
bridge = &netdev->u.bridge;
@@ -620,21 +619,6 @@ int net_init_bridge(const Netdev *netdev, const char *name,
}
s = net_tap_fd_init(peer, "bridge", name, fd, vnet_hdr);
- /* Store startup parameters */
- s->nc.stored_config = g_new0(NetdevInfo, 1);
- s->nc.stored_config->type = NET_BACKEND_BRIDGE;
- stored = &s->nc.stored_config->u.bridge;
-
- if (br) {
- stored->has_br = true;
- stored->br = g_strdup(br);
- }
-
- if (helper) {
- stored->has_helper = true;
- stored->helper = g_strdup(helper);
- }
-
snprintf(s->nc.info_str, sizeof(s->nc.info_str), "helper=%s,br=%s", helper,
br);
@@ -682,13 +666,11 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
const char *model, const char *name,
const char *ifname, const char *script,
const char *downscript, const char *vhostfdname,
- int vnet_hdr, int fd, NetdevInfo **common_stored,
- Error **errp)
+ int vnet_hdr, int fd, Error **errp)
{
Error *err = NULL;
TAPState *s = net_tap_fd_init(peer, model, name, fd, vnet_hdr);
int vhostfd;
- NetdevTapOptions *stored;
tap_set_sndbuf(s->fd, tap, &err);
if (err) {
@@ -696,65 +678,12 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
return;
}
- /* Store startup parameters */
- if (!*common_stored) {
- *common_stored = g_new0(NetdevInfo, 1);
- (*common_stored)->type = NET_BACKEND_TAP;
- s->nc.stored_config = *common_stored;
- }
- stored = &(*common_stored)->u.tap;
-
- if (tap->has_sndbuf && !stored->has_sndbuf) {
- stored->has_sndbuf = true;
- stored->sndbuf = tap->sndbuf;
- }
-
- if (vnet_hdr && !stored->has_vnet_hdr) {
- stored->has_vnet_hdr = true;
- stored->vnet_hdr = true;
- }
-
if (tap->has_fd || tap->has_fds) {
- if (!stored->has_fds) {
- stored->has_fds = true;
- stored->fds = g_strdup_printf("%d", fd);
- } else {
- char *tmp_s = stored->fds;
- stored->fds = g_strdup_printf("%s:%d", stored->fds, fd);
- g_free(tmp_s);
- }
-
snprintf(s->nc.info_str, sizeof(s->nc.info_str), "fd=%d", fd);
} else if (tap->has_helper) {
- if (!stored->has_helper) {
- stored->has_helper = true;
- stored->helper = g_strdup(tap->helper);
- }
-
- if (!stored->has_br) {
- stored->has_br = true;
- stored->br = tap->has_br ? g_strdup(tap->br) :
- g_strdup(DEFAULT_BRIDGE_INTERFACE);
- }
-
snprintf(s->nc.info_str, sizeof(s->nc.info_str), "helper=%s",
tap->helper);
} else {
- if (ifname && !stored->has_ifname) {
- stored->has_ifname = true;
- stored->ifname = g_strdup(ifname);
- }
-
- if (script && !stored->has_script) {
- stored->has_script = true;
- stored->script = g_strdup(script);
- }
-
- if (downscript && !stored->has_downscript) {
- stored->has_downscript = true;
- stored->downscript = g_strdup(downscript);
- }
-
snprintf(s->nc.info_str, sizeof(s->nc.info_str),
"ifname=%s,script=%s,downscript=%s", ifname, script,
downscript);
@@ -770,20 +699,9 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
vhostfdname || (tap->has_vhostforce && tap->vhostforce)) {
VhostNetOptions options;
- stored->has_vhost = true;
- stored->vhost = true;
-
- if (tap->has_vhostforce && tap->vhostforce) {
- stored->has_vhostforce = true;
- stored->vhostforce = true;
- }
-
options.backend_type = VHOST_BACKEND_TYPE_KERNEL;
options.net_backend = &s->nc;
if (tap->has_poll_us) {
- stored->has_poll_us = true;
- stored->poll_us = tap->poll_us;
-
options.busyloop_timeout = tap->poll_us;
} else {
options.busyloop_timeout = 0;
@@ -823,15 +741,6 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
}
options.opaque = (void *)(uintptr_t)vhostfd;
- if (!stored->has_vhostfds) {
- stored->has_vhostfds = true;
- stored->vhostfds = g_strdup_printf("%d", vhostfd);
- } else {
- char *tmp_s = stored->vhostfds;
- stored->vhostfds = g_strdup_printf("%s:%d", stored->fds, vhostfd);
- g_free(tmp_s);
- }
-
s->vhost_net = vhost_net_init(&options);
if (!s->vhost_net) {
if (tap->has_vhostforce && tap->vhostforce) {
@@ -884,7 +793,6 @@ int net_init_tap(const Netdev *netdev, const char *name,
const char *vhostfdname;
char ifname[128];
int ret = 0;
- NetdevInfo *common_stored = NULL; /* will store configuration */
assert(netdev->type == NET_CLIENT_DRIVER_TAP);
tap = &netdev->u.tap;
@@ -931,7 +839,7 @@ int net_init_tap(const Netdev *netdev, const char *name,
net_init_tap_one(tap, peer, "tap", name, NULL,
script, downscript,
- vhostfdname, vnet_hdr, fd, &common_stored, &err);
+ vhostfdname, vnet_hdr, fd, &err);
if (err) {
error_propagate(errp, err);
close(fd);
@@ -994,7 +902,7 @@ int net_init_tap(const Netdev *netdev, const char *name,
net_init_tap_one(tap, peer, "tap", name, ifname,
script, downscript,
tap->has_vhostfds ? vhost_fds[i] : NULL,
- vnet_hdr, fd, &common_stored, &err);
+ vnet_hdr, fd, &err);
if (err) {
error_propagate(errp, err);
ret = -1;
@@ -1037,7 +945,7 @@ free_fail:
net_init_tap_one(tap, peer, "bridge", name, ifname,
script, downscript, vhostfdname,
- vnet_hdr, fd, &common_stored, &err);
+ vnet_hdr, fd, &err);
if (err) {
error_propagate(errp, err);
close(fd);
@@ -1083,8 +991,7 @@ free_fail:
net_init_tap_one(tap, peer, "tap", name, ifname,
i >= 1 ? "no" : script,
i >= 1 ? "no" : downscript,
- vhostfdname, vnet_hdr, fd,
- &common_stored, &err);
+ vhostfdname, vnet_hdr, fd, &err);
if (err) {
error_propagate(errp, err);
close(fd);