提交 2e753bcc 编写于 作者: V Vincenzo Maffione 提交者: Stefan Hajnoczi

net: TAP uses NetClientInfo offloading callbacks

The TAP NetClientInfo structure is inizialized with the TAP-specific
functions that manipulates offloading features.
Signed-off-by: NVincenzo Maffione <v.maffione@gmail.com>
Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
上级 1f55ac45
...@@ -669,11 +669,60 @@ static void tap_win32_send(void *opaque) ...@@ -669,11 +669,60 @@ static void tap_win32_send(void *opaque)
} }
} }
bool tap_has_ufo(NetClientState *nc)
{
return false;
}
bool tap_has_vnet_hdr(NetClientState *nc)
{
return false;
}
int tap_probe_vnet_hdr_len(int fd, int len)
{
return 0;
}
void tap_fd_set_vnet_hdr_len(int fd, int len)
{
}
void tap_using_vnet_hdr(NetClientState *nc, bool using_vnet_hdr)
{
}
void tap_set_offload(NetClientState *nc, int csum, int tso4,
int tso6, int ecn, int ufo)
{
}
struct vhost_net *tap_get_vhost_net(NetClientState *nc)
{
return NULL;
}
bool tap_has_vnet_hdr_len(NetClientState *nc, int len)
{
return false;
}
void tap_set_vnet_hdr_len(NetClientState *nc, int len)
{
abort();
}
static NetClientInfo net_tap_win32_info = { static NetClientInfo net_tap_win32_info = {
.type = NET_CLIENT_OPTIONS_KIND_TAP, .type = NET_CLIENT_OPTIONS_KIND_TAP,
.size = sizeof(TAPState), .size = sizeof(TAPState),
.receive = tap_receive, .receive = tap_receive,
.cleanup = tap_cleanup, .cleanup = tap_cleanup,
.has_ufo = tap_has_ufo,
.has_vnet_hdr = tap_has_vnet_hdr,
.has_vnet_hdr_len = tap_has_vnet_hdr_len,
.using_vnet_hdr = tap_using_vnet_hdr,
.set_offload = tap_set_offload,
.set_vnet_hdr_len = tap_set_vnet_hdr_len,
}; };
static int tap_win32_init(NetClientState *peer, const char *model, static int tap_win32_init(NetClientState *peer, const char *model,
...@@ -722,49 +771,6 @@ int net_init_tap(const NetClientOptions *opts, const char *name, ...@@ -722,49 +771,6 @@ int net_init_tap(const NetClientOptions *opts, const char *name,
return 0; return 0;
} }
bool tap_has_ufo(NetClientState *nc)
{
return false;
}
bool tap_has_vnet_hdr(NetClientState *nc)
{
return false;
}
int tap_probe_vnet_hdr_len(int fd, int len)
{
return 0;
}
void tap_fd_set_vnet_hdr_len(int fd, int len)
{
}
void tap_using_vnet_hdr(NetClientState *nc, bool using_vnet_hdr)
{
}
void tap_set_offload(NetClientState *nc, int csum, int tso4,
int tso6, int ecn, int ufo)
{
}
struct vhost_net *tap_get_vhost_net(NetClientState *nc)
{
return NULL;
}
bool tap_has_vnet_hdr_len(NetClientState *nc, int len)
{
return false;
}
void tap_set_vnet_hdr_len(NetClientState *nc, int len)
{
abort();
}
int tap_enable(NetClientState *nc) int tap_enable(NetClientState *nc)
{ {
abort(); abort();
......
...@@ -314,6 +314,12 @@ static NetClientInfo net_tap_info = { ...@@ -314,6 +314,12 @@ static NetClientInfo net_tap_info = {
.receive_iov = tap_receive_iov, .receive_iov = tap_receive_iov,
.poll = tap_poll, .poll = tap_poll,
.cleanup = tap_cleanup, .cleanup = tap_cleanup,
.has_ufo = tap_has_ufo,
.has_vnet_hdr = tap_has_vnet_hdr,
.has_vnet_hdr_len = tap_has_vnet_hdr_len,
.using_vnet_hdr = tap_using_vnet_hdr,
.set_offload = tap_set_offload,
.set_vnet_hdr_len = tap_set_vnet_hdr_len,
}; };
static TAPState *net_tap_fd_init(NetClientState *peer, static TAPState *net_tap_fd_init(NetClientState *peer,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册