linux-user: add QEMU_IFLA_INFO_KIND nested type for tun
Signed-off-by: Laurent Vivier <laurent@vivier.eu> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20180820171557.7734-5-laurent@vivier.eu>
This commit is contained in:
parent
90cce2a106
commit
70c61d4f78
|
@ -501,6 +501,20 @@ enum {
|
||||||
QEMU___IFLA_BRPORT_MAX
|
QEMU___IFLA_BRPORT_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
QEMU_IFLA_TUN_UNSPEC,
|
||||||
|
QEMU_IFLA_TUN_OWNER,
|
||||||
|
QEMU_IFLA_TUN_GROUP,
|
||||||
|
QEMU_IFLA_TUN_TYPE,
|
||||||
|
QEMU_IFLA_TUN_PI,
|
||||||
|
QEMU_IFLA_TUN_VNET_HDR,
|
||||||
|
QEMU_IFLA_TUN_PERSIST,
|
||||||
|
QEMU_IFLA_TUN_MULTI_QUEUE,
|
||||||
|
QEMU_IFLA_TUN_NUM_QUEUES,
|
||||||
|
QEMU_IFLA_TUN_NUM_DISABLED_QUEUES,
|
||||||
|
QEMU___IFLA_TUN_MAX,
|
||||||
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
QEMU_IFLA_INFO_UNSPEC,
|
QEMU_IFLA_INFO_UNSPEC,
|
||||||
QEMU_IFLA_INFO_KIND,
|
QEMU_IFLA_INFO_KIND,
|
||||||
|
@ -2349,6 +2363,34 @@ static abi_long host_to_target_slave_data_bridge_nlattr(struct nlattr *nlattr,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static abi_long host_to_target_data_tun_nlattr(struct nlattr *nlattr,
|
||||||
|
void *context)
|
||||||
|
{
|
||||||
|
uint32_t *u32;
|
||||||
|
|
||||||
|
switch (nlattr->nla_type) {
|
||||||
|
/* uint8_t */
|
||||||
|
case QEMU_IFLA_TUN_TYPE:
|
||||||
|
case QEMU_IFLA_TUN_PI:
|
||||||
|
case QEMU_IFLA_TUN_VNET_HDR:
|
||||||
|
case QEMU_IFLA_TUN_PERSIST:
|
||||||
|
case QEMU_IFLA_TUN_MULTI_QUEUE:
|
||||||
|
break;
|
||||||
|
/* uint32_t */
|
||||||
|
case QEMU_IFLA_TUN_NUM_QUEUES:
|
||||||
|
case QEMU_IFLA_TUN_NUM_DISABLED_QUEUES:
|
||||||
|
case QEMU_IFLA_TUN_OWNER:
|
||||||
|
case QEMU_IFLA_TUN_GROUP:
|
||||||
|
u32 = NLA_DATA(nlattr);
|
||||||
|
*u32 = tswap32(*u32);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
gemu_log("Unknown QEMU_IFLA_TUN type %d\n", nlattr->nla_type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
struct linkinfo_context {
|
struct linkinfo_context {
|
||||||
int len;
|
int len;
|
||||||
char *name;
|
char *name;
|
||||||
|
@ -2383,6 +2425,12 @@ static abi_long host_to_target_data_linkinfo_nlattr(struct nlattr *nlattr,
|
||||||
nlattr->nla_len,
|
nlattr->nla_len,
|
||||||
NULL,
|
NULL,
|
||||||
host_to_target_data_bridge_nlattr);
|
host_to_target_data_bridge_nlattr);
|
||||||
|
} else if (strncmp(li_context->name, "tun",
|
||||||
|
li_context->len) == 0) {
|
||||||
|
return host_to_target_for_each_nlattr(NLA_DATA(nlattr),
|
||||||
|
nlattr->nla_len,
|
||||||
|
NULL,
|
||||||
|
host_to_target_data_tun_nlattr);
|
||||||
} else {
|
} else {
|
||||||
gemu_log("Unknown QEMU_IFLA_INFO_KIND %s\n", li_context->name);
|
gemu_log("Unknown QEMU_IFLA_INFO_KIND %s\n", li_context->name);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue