blob: be53794582cf3e2adf6ae8c350862daca592a309 [file] [log] [blame]
Mark McLoughlin42281ac2009-11-25 18:48:56 +00001/*
2 * QEMU System Emulator
3 *
4 * Copyright (c) 2003-2008 Fabrice Bellard
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 * THE SOFTWARE.
23 */
Paolo Bonzinia245fc12012-09-17 18:43:51 +020024#ifndef QEMU_NET_CLIENTS_H
25#define QEMU_NET_CLIENTS_H
Mark McLoughlin42281ac2009-11-25 18:48:56 +000026
Paolo Bonzini1422e322012-10-24 08:43:34 +020027#include "net/net.h"
Mark McLoughlin42281ac2009-11-25 18:48:56 +000028
Kővágó, Zoltáncebea512016-07-13 21:50:12 -060029int net_init_dump(const Netdev *netdev, const char *name,
Markus Armbrustera30ecde2015-05-15 13:58:50 +020030 NetClientState *peer, Error **errp);
Paolo Bonzinia245fc12012-09-17 18:43:51 +020031
32#ifdef CONFIG_SLIRP
Kővágó, Zoltáncebea512016-07-13 21:50:12 -060033int net_init_slirp(const Netdev *netdev, const char *name,
Markus Armbrustera30ecde2015-05-15 13:58:50 +020034 NetClientState *peer, Error **errp);
Paolo Bonzinia245fc12012-09-17 18:43:51 +020035#endif
36
Kővágó, Zoltáncebea512016-07-13 21:50:12 -060037int net_init_hubport(const Netdev *netdev, const char *name,
Markus Armbrustera30ecde2015-05-15 13:58:50 +020038 NetClientState *peer, Error **errp);
Paolo Bonzinia245fc12012-09-17 18:43:51 +020039
Kővágó, Zoltáncebea512016-07-13 21:50:12 -060040int net_init_socket(const Netdev *netdev, const char *name,
Markus Armbrustera30ecde2015-05-15 13:58:50 +020041 NetClientState *peer, Error **errp);
Mark McLoughlin42281ac2009-11-25 18:48:56 +000042
Laurent Vivier5166fe02022-10-21 11:09:11 +020043int net_init_stream(const Netdev *netdev, const char *name,
44 NetClientState *peer, Error **errp);
45
46int net_init_dgram(const Netdev *netdev, const char *name,
47 NetClientState *peer, Error **errp);
48
Kővágó, Zoltáncebea512016-07-13 21:50:12 -060049int net_init_tap(const Netdev *netdev, const char *name,
Markus Armbrustera30ecde2015-05-15 13:58:50 +020050 NetClientState *peer, Error **errp);
Paolo Bonzinia245fc12012-09-17 18:43:51 +020051
Kővágó, Zoltáncebea512016-07-13 21:50:12 -060052int net_init_bridge(const Netdev *netdev, const char *name,
Markus Armbrustera30ecde2015-05-15 13:58:50 +020053 NetClientState *peer, Error **errp);
Paolo Bonzinia245fc12012-09-17 18:43:51 +020054
Kővágó, Zoltáncebea512016-07-13 21:50:12 -060055int net_init_l2tpv3(const Netdev *netdev, const char *name,
Markus Armbrustera30ecde2015-05-15 13:58:50 +020056 NetClientState *peer, Error **errp);
Paolo Bonzinia245fc12012-09-17 18:43:51 +020057#ifdef CONFIG_VDE
Kővágó, Zoltáncebea512016-07-13 21:50:12 -060058int net_init_vde(const Netdev *netdev, const char *name,
Markus Armbrustera30ecde2015-05-15 13:58:50 +020059 NetClientState *peer, Error **errp);
Paolo Bonzinia245fc12012-09-17 18:43:51 +020060#endif
61
Vincenzo Maffione58952132013-11-06 11:44:06 +010062#ifdef CONFIG_NETMAP
Kővágó, Zoltáncebea512016-07-13 21:50:12 -060063int net_init_netmap(const Netdev *netdev, const char *name,
Markus Armbrustera30ecde2015-05-15 13:58:50 +020064 NetClientState *peer, Error **errp);
Vincenzo Maffione58952132013-11-06 11:44:06 +010065#endif
66
Ilya Maximetscb039ef2023-09-13 20:34:37 +020067#ifdef CONFIG_AF_XDP
68int net_init_af_xdp(const Netdev *netdev, const char *name,
69 NetClientState *peer, Error **errp);
70#endif
71
Kővágó, Zoltáncebea512016-07-13 21:50:12 -060072int net_init_vhost_user(const Netdev *netdev, const char *name,
Markus Armbrustera30ecde2015-05-15 13:58:50 +020073 NetClientState *peer, Error **errp);
Nikolay Nikolaevd314f582014-05-27 15:06:29 +030074
Cindy Lu1e0a84e2020-07-01 22:55:38 +080075int net_init_vhost_vdpa(const Netdev *netdev, const char *name,
76 NetClientState *peer, Error **errp);
Vladislav Yaroshchuk81ad2962022-03-17 20:28:34 +030077#ifdef CONFIG_VMNET
78int net_init_vmnet_host(const Netdev *netdev, const char *name,
79 NetClientState *peer, Error **errp);
80
81int net_init_vmnet_shared(const Netdev *netdev, const char *name,
82 NetClientState *peer, Error **errp);
83
84int net_init_vmnet_bridged(const Netdev *netdev, const char *name,
85 NetClientState *peer, Error **errp);
86#endif /* CONFIG_VMNET */
87
Paolo Bonzinia245fc12012-09-17 18:43:51 +020088#endif /* QEMU_NET_CLIENTS_H */