Skip to content

Commit 3719acc

Browse files
committed
linux-user: netlink: Add missing QEMU_IFLA entries
This fixes the following qemu warnings when building debian gupnp package: Unknown host QEMU_IFLA type: 61 Unknown host QEMU_IFLA type: 58 Unknown host QEMU_IFLA type: 59 Unknown host QEMU_IFLA type: 60 Unknown host QEMU_IFLA type: 32820 QEMU_IFLA type 32820 is actually NLA_NESTED | QEMU_IFLA_PROP_LIST (a nested entry), which is why rta_type needs to be masked with NLA_TYPE_MASK. Signed-off-by: Helge Deller <deller@gmx.de> Reviewed-by: Laurent Vivier <laurent@vivier.eu>
1 parent cc9a831 commit 3719acc

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

linux-user/fd-trans.c

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,14 @@ enum {
161161
QEMU_IFLA_PROTO_DOWN_REASON,
162162
QEMU_IFLA_PARENT_DEV_NAME,
163163
QEMU_IFLA_PARENT_DEV_BUS_NAME,
164+
QEMU_IFLA_GRO_MAX_SIZE,
165+
QEMU_IFLA_TSO_MAX_SIZE,
166+
QEMU_IFLA_TSO_MAX_SEGS,
167+
QEMU_IFLA_ALLMULTI,
168+
QEMU_IFLA_DEVLINK_PORT,
169+
QEMU_IFLA_GSO_IPV4_MAX_SIZE,
170+
QEMU_IFLA_GRO_IPV4_MAX_SIZE,
171+
QEMU_IFLA_DPLL_PIN,
164172
QEMU___IFLA_MAX
165173
};
166174

@@ -1002,6 +1010,22 @@ static abi_long host_to_target_data_vfinfo_nlattr(struct nlattr *nlattr,
10021010
return 0;
10031011
}
10041012

1013+
static abi_long host_to_target_data_prop_nlattr(struct nlattr *nlattr,
1014+
void *context)
1015+
{
1016+
switch (nlattr->nla_type) {
1017+
/* string */
1018+
case QEMU_IFLA_ALT_IFNAME:
1019+
break;
1020+
default:
1021+
qemu_log_mask(LOG_UNIMP, "Unknown host PROP type: %d\n",
1022+
nlattr->nla_type);
1023+
break;
1024+
}
1025+
return 0;
1026+
}
1027+
1028+
10051029
static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
10061030
{
10071031
uint32_t *u32;
@@ -1010,7 +1034,7 @@ static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
10101034
struct rtnl_link_ifmap *map;
10111035
struct linkinfo_context li_context;
10121036

1013-
switch (rtattr->rta_type) {
1037+
switch (rtattr->rta_type & NLA_TYPE_MASK) {
10141038
/* binary stream */
10151039
case QEMU_IFLA_ADDRESS:
10161040
case QEMU_IFLA_BROADCAST:
@@ -1048,6 +1072,12 @@ static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
10481072
case QEMU_IFLA_CARRIER_DOWN_COUNT:
10491073
case QEMU_IFLA_MIN_MTU:
10501074
case QEMU_IFLA_MAX_MTU:
1075+
case QEMU_IFLA_GRO_MAX_SIZE:
1076+
case QEMU_IFLA_TSO_MAX_SIZE:
1077+
case QEMU_IFLA_TSO_MAX_SEGS:
1078+
case QEMU_IFLA_ALLMULTI:
1079+
case QEMU_IFLA_GSO_IPV4_MAX_SIZE:
1080+
case QEMU_IFLA_GRO_IPV4_MAX_SIZE:
10511081
u32 = RTA_DATA(rtattr);
10521082
*u32 = tswap32(*u32);
10531083
break;
@@ -1143,6 +1173,10 @@ static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
11431173
return host_to_target_for_each_nlattr(RTA_DATA(rtattr), rtattr->rta_len,
11441174
NULL,
11451175
host_to_target_data_vfinfo_nlattr);
1176+
case QEMU_IFLA_PROP_LIST:
1177+
return host_to_target_for_each_nlattr(RTA_DATA(rtattr), rtattr->rta_len,
1178+
NULL,
1179+
host_to_target_data_prop_nlattr);
11461180
default:
11471181
qemu_log_mask(LOG_UNIMP, "Unknown host QEMU_IFLA type: %d\n",
11481182
rtattr->rta_type);

0 commit comments

Comments
 (0)