* [PATCH 1/3] linux-user: netlink: update IFLA entries
@ 2021-12-19 15:45 Laurent Vivier
2021-12-19 15:45 ` [PATCH 2/3] linux-user: netlink: Add IFLA_VFINFO_LIST Laurent Vivier
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Laurent Vivier @ 2021-12-19 15:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Laurent Vivier
Add IFLA_PHYS_PORT_ID, IFLA_PARENT_DEV_NAME, IFLA_PARENT_DEV_BUS_NAME
# QEMU_LOG=unimp ip a
Unknown host QEMU_IFLA type: 56
Unknown host QEMU_IFLA type: 57
Unknown host QEMU_IFLA type: 34
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/fd-trans.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/linux-user/fd-trans.c b/linux-user/fd-trans.c
index 69410899590c..14c19a90b2b0 100644
--- a/linux-user/fd-trans.c
+++ b/linux-user/fd-trans.c
@@ -138,6 +138,9 @@ enum {
QEMU_IFLA_PROP_LIST,
QEMU_IFLA_ALT_IFNAME,
QEMU_IFLA_PERM_ADDRESS,
+ QEMU_IFLA_PROTO_DOWN_REASON,
+ QEMU_IFLA_PARENT_DEV_NAME,
+ QEMU_IFLA_PARENT_DEV_BUS_NAME,
QEMU___IFLA_MAX
};
@@ -818,9 +821,12 @@ static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
case QEMU_IFLA_ADDRESS:
case QEMU_IFLA_BROADCAST:
case QEMU_IFLA_PERM_ADDRESS:
+ case QEMU_IFLA_PHYS_PORT_ID:
/* string */
case QEMU_IFLA_IFNAME:
case QEMU_IFLA_QDISC:
+ case QEMU_IFLA_PARENT_DEV_NAME:
+ case QEMU_IFLA_PARENT_DEV_BUS_NAME:
break;
/* uin8_t */
case QEMU_IFLA_OPERSTATE:
--
2.33.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] linux-user: netlink: Add IFLA_VFINFO_LIST
2021-12-19 15:45 [PATCH 1/3] linux-user: netlink: update IFLA entries Laurent Vivier
@ 2021-12-19 15:45 ` Laurent Vivier
2021-12-21 23:24 ` Richard Henderson
2022-01-05 10:29 ` Laurent Vivier
2021-12-19 15:45 ` [PATCH 3/3] linux-user: netlink: update IFLA_BRPORT entries Laurent Vivier
` (2 subsequent siblings)
3 siblings, 2 replies; 9+ messages in thread
From: Laurent Vivier @ 2021-12-19 15:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Laurent Vivier
# QEMU_LOG=unimp ip a
Unknown host QEMU_IFLA type: 22
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/fd-trans.c | 174 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 174 insertions(+)
diff --git a/linux-user/fd-trans.c b/linux-user/fd-trans.c
index 14c19a90b2b0..36e4a4c2aae8 100644
--- a/linux-user/fd-trans.c
+++ b/linux-user/fd-trans.c
@@ -271,6 +271,37 @@ enum {
QEMU___RTA_MAX
};
+enum {
+ QEMU_IFLA_VF_STATS_RX_PACKETS,
+ QEMU_IFLA_VF_STATS_TX_PACKETS,
+ QEMU_IFLA_VF_STATS_RX_BYTES,
+ QEMU_IFLA_VF_STATS_TX_BYTES,
+ QEMU_IFLA_VF_STATS_BROADCAST,
+ QEMU_IFLA_VF_STATS_MULTICAST,
+ QEMU_IFLA_VF_STATS_PAD,
+ QEMU_IFLA_VF_STATS_RX_DROPPED,
+ QEMU_IFLA_VF_STATS_TX_DROPPED,
+ QEMU__IFLA_VF_STATS_MAX,
+};
+
+enum {
+ QEMU_IFLA_VF_UNSPEC,
+ QEMU_IFLA_VF_MAC,
+ QEMU_IFLA_VF_VLAN,
+ QEMU_IFLA_VF_TX_RATE,
+ QEMU_IFLA_VF_SPOOFCHK,
+ QEMU_IFLA_VF_LINK_STATE,
+ QEMU_IFLA_VF_RATE,
+ QEMU_IFLA_VF_RSS_QUERY_EN,
+ QEMU_IFLA_VF_STATS,
+ QEMU_IFLA_VF_TRUST,
+ QEMU_IFLA_VF_IB_NODE_GUID,
+ QEMU_IFLA_VF_IB_PORT_GUID,
+ QEMU_IFLA_VF_VLAN_LIST,
+ QEMU_IFLA_VF_BROADCAST,
+ QEMU__IFLA_VF_MAX,
+};
+
TargetFdTrans **target_fd_trans;
QemuMutex target_fd_trans_lock;
unsigned int target_fd_max;
@@ -808,6 +839,145 @@ static abi_long host_to_target_data_xdp_nlattr(struct nlattr *nlattr,
return 0;
}
+static abi_long host_to_target_data_vlan_list_nlattr(struct nlattr *nlattr,
+ void *context)
+{
+ struct ifla_vf_vlan_info *vlan_info;
+
+ switch (nlattr->nla_type) {
+ /* struct ifla_vf_vlan_info */
+ case IFLA_VF_VLAN_INFO:
+ vlan_info = NLA_DATA(nlattr);
+ vlan_info->vf = tswap32(vlan_info->vf);
+ vlan_info->vlan = tswap32(vlan_info->vlan);
+ vlan_info->qos = tswap32(vlan_info->qos);
+ break;
+ default:
+ qemu_log_mask(LOG_UNIMP, "Unknown host VLAN LIST type: %d\n",
+ nlattr->nla_type);
+ break;
+ }
+ return 0;
+}
+
+static abi_long host_to_target_data_vf_stats_nlattr(struct nlattr *nlattr,
+ void *context)
+{
+ uint64_t *u64;
+
+ switch (nlattr->nla_type) {
+ /* uint64_t */
+ case QEMU_IFLA_VF_STATS_RX_PACKETS:
+ case QEMU_IFLA_VF_STATS_TX_PACKETS:
+ case QEMU_IFLA_VF_STATS_RX_BYTES:
+ case QEMU_IFLA_VF_STATS_TX_BYTES:
+ case QEMU_IFLA_VF_STATS_BROADCAST:
+ case QEMU_IFLA_VF_STATS_MULTICAST:
+ case QEMU_IFLA_VF_STATS_PAD:
+ case QEMU_IFLA_VF_STATS_RX_DROPPED:
+ case QEMU_IFLA_VF_STATS_TX_DROPPED:
+ u64 = NLA_DATA(nlattr);
+ *u64 = tswap64(*u64);
+ break;
+ default:
+ qemu_log_mask(LOG_UNIMP, "Unknown host VF STATS type: %d\n",
+ nlattr->nla_type);
+ break;
+ }
+ return 0;
+}
+
+static abi_long host_to_target_data_vfinfo_nlattr(struct nlattr *nlattr,
+ void *context)
+{
+ struct ifla_vf_mac *mac;
+ struct ifla_vf_vlan *vlan;
+ struct ifla_vf_vlan_info *vlan_info;
+ struct ifla_vf_spoofchk *spoofchk;
+ struct ifla_vf_rate *rate;
+ struct ifla_vf_link_state *link_state;
+ struct ifla_vf_rss_query_en *rss_query_en;
+ struct ifla_vf_trust *trust;
+ struct ifla_vf_guid *guid;
+
+ switch (nlattr->nla_type) {
+ /* struct ifla_vf_mac */
+ case QEMU_IFLA_VF_MAC:
+ mac = NLA_DATA(nlattr);
+ mac->vf = tswap32(mac->vf);
+ break;
+ /* struct ifla_vf_broadcast */
+ case QEMU_IFLA_VF_BROADCAST:
+ break;
+ /* struct struct ifla_vf_vlan */
+ case QEMU_IFLA_VF_VLAN:
+ vlan = NLA_DATA(nlattr);
+ vlan->vf = tswap32(vlan->vf);
+ vlan->vlan = tswap32(vlan->vlan);
+ vlan->qos = tswap32(vlan->qos);
+ break;
+ /* struct ifla_vf_vlan_info */
+ case QEMU_IFLA_VF_TX_RATE:
+ vlan_info = NLA_DATA(nlattr);
+ vlan_info->vf = tswap32(vlan_info->vf);
+ vlan_info->vlan = tswap32(vlan_info->vlan);
+ vlan_info->qos = tswap32(vlan_info->qos);
+ break;
+ /* struct ifla_vf_spoofchk */
+ case QEMU_IFLA_VF_SPOOFCHK:
+ spoofchk = NLA_DATA(nlattr);
+ spoofchk->vf = tswap32(spoofchk->vf);
+ spoofchk->setting = tswap32(spoofchk->setting);
+ break;
+ /* struct ifla_vf_rate */
+ case QEMU_IFLA_VF_RATE:
+ rate = NLA_DATA(nlattr);
+ rate->vf = tswap32(rate->vf);
+ rate->min_tx_rate = tswap32(rate->min_tx_rate);
+ rate->max_tx_rate = tswap32(rate->max_tx_rate);
+ break;
+ /* struct ifla_vf_link_state */
+ case QEMU_IFLA_VF_LINK_STATE:
+ link_state = NLA_DATA(nlattr);
+ link_state->vf = tswap32(link_state->vf);
+ link_state->link_state = tswap32(link_state->link_state);
+ break;
+ /* struct ifla_vf_rss_query_en */
+ case QEMU_IFLA_VF_RSS_QUERY_EN:
+ rss_query_en = NLA_DATA(nlattr);
+ rss_query_en->vf = tswap32(rss_query_en->vf);
+ rss_query_en->setting = tswap32(rss_query_en->setting);
+ break;
+ /* struct ifla_vf_trust */
+ case QEMU_IFLA_VF_TRUST:
+ trust = NLA_DATA(nlattr);
+ trust->vf = tswap32(trust->vf);
+ trust->setting = tswap32(trust->setting);
+ break;
+ /* struct ifla_vf_guid */
+ case QEMU_IFLA_VF_IB_NODE_GUID:
+ case QEMU_IFLA_VF_IB_PORT_GUID:
+ guid = NLA_DATA(nlattr);
+ guid->vf = tswap32(guid->vf);
+ guid->guid = tswap32(guid->guid);
+ break;
+ /* nested */
+ case QEMU_IFLA_VF_VLAN_LIST:
+ return host_to_target_for_each_nlattr(RTA_DATA(nlattr), nlattr->nla_len,
+ NULL,
+ host_to_target_data_vlan_list_nlattr);
+ case QEMU_IFLA_VF_STATS:
+ return host_to_target_for_each_nlattr(RTA_DATA(nlattr), nlattr->nla_len,
+ NULL,
+ host_to_target_data_vf_stats_nlattr);
+ default:
+ qemu_log_mask(LOG_UNIMP, "Unknown host VFINFO type: %d\n",
+ nlattr->nla_type);
+ break;
+ }
+ return 0;
+}
+
static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
{
uint32_t *u32;
@@ -945,6 +1115,10 @@ static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
return host_to_target_for_each_nlattr(RTA_DATA(rtattr), rtattr->rta_len,
NULL,
host_to_target_data_xdp_nlattr);
+ case QEMU_IFLA_VFINFO_LIST:
+ return host_to_target_for_each_nlattr(RTA_DATA(rtattr), rtattr->rta_len,
+ NULL,
+ host_to_target_data_vfinfo_nlattr);
default:
qemu_log_mask(LOG_UNIMP, "Unknown host QEMU_IFLA type: %d\n",
rtattr->rta_type);
--
2.33.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] linux-user: netlink: update IFLA_BRPORT entries
2021-12-19 15:45 [PATCH 1/3] linux-user: netlink: update IFLA entries Laurent Vivier
2021-12-19 15:45 ` [PATCH 2/3] linux-user: netlink: Add IFLA_VFINFO_LIST Laurent Vivier
@ 2021-12-19 15:45 ` Laurent Vivier
2021-12-21 23:25 ` Richard Henderson
2022-01-05 10:29 ` Laurent Vivier
2021-12-21 23:20 ` [PATCH 1/3] linux-user: netlink: update IFLA entries Richard Henderson
2022-01-05 10:29 ` Laurent Vivier
3 siblings, 2 replies; 9+ messages in thread
From: Laurent Vivier @ 2021-12-19 15:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Laurent Vivier
add IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT and IFLA_BRPORT_MCAST_EHT_HOSTS_CNT
# QEMU_LOG=unimp ip a
Unknown QEMU_IFLA_BRPORT type 37
Unknown QEMU_IFLA_BRPORT type 38
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/fd-trans.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/linux-user/fd-trans.c b/linux-user/fd-trans.c
index 36e4a4c2aae8..a17d05c07923 100644
--- a/linux-user/fd-trans.c
+++ b/linux-user/fd-trans.c
@@ -182,6 +182,8 @@ enum {
QEMU_IFLA_BRPORT_BACKUP_PORT,
QEMU_IFLA_BRPORT_MRP_RING_OPEN,
QEMU_IFLA_BRPORT_MRP_IN_OPEN,
+ QEMU_IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
+ QEMU_IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
QEMU___IFLA_BRPORT_MAX
};
@@ -607,6 +609,8 @@ static abi_long host_to_target_slave_data_bridge_nlattr(struct nlattr *nlattr,
/* uin32_t */
case QEMU_IFLA_BRPORT_COST:
case QEMU_IFLA_BRPORT_BACKUP_PORT:
+ case QEMU_IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT:
+ case QEMU_IFLA_BRPORT_MCAST_EHT_HOSTS_CNT:
u32 = NLA_DATA(nlattr);
*u32 = tswap32(*u32);
break;
--
2.33.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] linux-user: netlink: update IFLA entries
2021-12-19 15:45 [PATCH 1/3] linux-user: netlink: update IFLA entries Laurent Vivier
2021-12-19 15:45 ` [PATCH 2/3] linux-user: netlink: Add IFLA_VFINFO_LIST Laurent Vivier
2021-12-19 15:45 ` [PATCH 3/3] linux-user: netlink: update IFLA_BRPORT entries Laurent Vivier
@ 2021-12-21 23:20 ` Richard Henderson
2022-01-05 10:29 ` Laurent Vivier
3 siblings, 0 replies; 9+ messages in thread
From: Richard Henderson @ 2021-12-21 23:20 UTC (permalink / raw)
To: Laurent Vivier, qemu-devel
On 12/19/21 7:45 AM, Laurent Vivier wrote:
> Add IFLA_PHYS_PORT_ID, IFLA_PARENT_DEV_NAME, IFLA_PARENT_DEV_BUS_NAME
>
> # QEMU_LOG=unimp ip a
> Unknown host QEMU_IFLA type: 56
> Unknown host QEMU_IFLA type: 57
> Unknown host QEMU_IFLA type: 34
>
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
> linux-user/fd-trans.c | 6 ++++++
> 1 file changed, 6 insertions(+)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] linux-user: netlink: Add IFLA_VFINFO_LIST
2021-12-19 15:45 ` [PATCH 2/3] linux-user: netlink: Add IFLA_VFINFO_LIST Laurent Vivier
@ 2021-12-21 23:24 ` Richard Henderson
2022-01-05 10:29 ` Laurent Vivier
1 sibling, 0 replies; 9+ messages in thread
From: Richard Henderson @ 2021-12-21 23:24 UTC (permalink / raw)
To: Laurent Vivier, qemu-devel
On 12/19/21 7:45 AM, Laurent Vivier wrote:
> # QEMU_LOG=unimp ip a
> Unknown host QEMU_IFLA type: 22
>
> Signed-off-by: Laurent Vivier<laurent@vivier.eu>
> ---
> linux-user/fd-trans.c | 174 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 174 insertions(+)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] linux-user: netlink: update IFLA_BRPORT entries
2021-12-19 15:45 ` [PATCH 3/3] linux-user: netlink: update IFLA_BRPORT entries Laurent Vivier
@ 2021-12-21 23:25 ` Richard Henderson
2022-01-05 10:29 ` Laurent Vivier
1 sibling, 0 replies; 9+ messages in thread
From: Richard Henderson @ 2021-12-21 23:25 UTC (permalink / raw)
To: Laurent Vivier, qemu-devel
On 12/19/21 7:45 AM, Laurent Vivier wrote:
> add IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT and IFLA_BRPORT_MCAST_EHT_HOSTS_CNT
>
> # QEMU_LOG=unimp ip a
> Unknown QEMU_IFLA_BRPORT type 37
> Unknown QEMU_IFLA_BRPORT type 38
>
> Signed-off-by: Laurent Vivier<laurent@vivier.eu>
> ---
> linux-user/fd-trans.c | 4 ++++
> 1 file changed, 4 insertions(+)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] linux-user: netlink: Add IFLA_VFINFO_LIST
2021-12-19 15:45 ` [PATCH 2/3] linux-user: netlink: Add IFLA_VFINFO_LIST Laurent Vivier
2021-12-21 23:24 ` Richard Henderson
@ 2022-01-05 10:29 ` Laurent Vivier
1 sibling, 0 replies; 9+ messages in thread
From: Laurent Vivier @ 2022-01-05 10:29 UTC (permalink / raw)
To: qemu-devel
Le 19/12/2021 à 16:45, Laurent Vivier a écrit :
> # QEMU_LOG=unimp ip a
> Unknown host QEMU_IFLA type: 22
>
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
> linux-user/fd-trans.c | 174 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 174 insertions(+)
>
> diff --git a/linux-user/fd-trans.c b/linux-user/fd-trans.c
> index 14c19a90b2b0..36e4a4c2aae8 100644
> --- a/linux-user/fd-trans.c
> +++ b/linux-user/fd-trans.c
> @@ -271,6 +271,37 @@ enum {
> QEMU___RTA_MAX
> };
>
> +enum {
> + QEMU_IFLA_VF_STATS_RX_PACKETS,
> + QEMU_IFLA_VF_STATS_TX_PACKETS,
> + QEMU_IFLA_VF_STATS_RX_BYTES,
> + QEMU_IFLA_VF_STATS_TX_BYTES,
> + QEMU_IFLA_VF_STATS_BROADCAST,
> + QEMU_IFLA_VF_STATS_MULTICAST,
> + QEMU_IFLA_VF_STATS_PAD,
> + QEMU_IFLA_VF_STATS_RX_DROPPED,
> + QEMU_IFLA_VF_STATS_TX_DROPPED,
> + QEMU__IFLA_VF_STATS_MAX,
> +};
> +
> +enum {
> + QEMU_IFLA_VF_UNSPEC,
> + QEMU_IFLA_VF_MAC,
> + QEMU_IFLA_VF_VLAN,
> + QEMU_IFLA_VF_TX_RATE,
> + QEMU_IFLA_VF_SPOOFCHK,
> + QEMU_IFLA_VF_LINK_STATE,
> + QEMU_IFLA_VF_RATE,
> + QEMU_IFLA_VF_RSS_QUERY_EN,
> + QEMU_IFLA_VF_STATS,
> + QEMU_IFLA_VF_TRUST,
> + QEMU_IFLA_VF_IB_NODE_GUID,
> + QEMU_IFLA_VF_IB_PORT_GUID,
> + QEMU_IFLA_VF_VLAN_LIST,
> + QEMU_IFLA_VF_BROADCAST,
> + QEMU__IFLA_VF_MAX,
> +};
> +
> TargetFdTrans **target_fd_trans;
> QemuMutex target_fd_trans_lock;
> unsigned int target_fd_max;
> @@ -808,6 +839,145 @@ static abi_long host_to_target_data_xdp_nlattr(struct nlattr *nlattr,
> return 0;
> }
>
> +static abi_long host_to_target_data_vlan_list_nlattr(struct nlattr *nlattr,
> + void *context)
> +{
> + struct ifla_vf_vlan_info *vlan_info;
> +
> + switch (nlattr->nla_type) {
> + /* struct ifla_vf_vlan_info */
> + case IFLA_VF_VLAN_INFO:
> + vlan_info = NLA_DATA(nlattr);
> + vlan_info->vf = tswap32(vlan_info->vf);
> + vlan_info->vlan = tswap32(vlan_info->vlan);
> + vlan_info->qos = tswap32(vlan_info->qos);
> + break;
> + default:
> + qemu_log_mask(LOG_UNIMP, "Unknown host VLAN LIST type: %d\n",
> + nlattr->nla_type);
> + break;
> + }
> + return 0;
> +}
> +
> +static abi_long host_to_target_data_vf_stats_nlattr(struct nlattr *nlattr,
> + void *context)
> +{
> + uint64_t *u64;
> +
> + switch (nlattr->nla_type) {
> + /* uint64_t */
> + case QEMU_IFLA_VF_STATS_RX_PACKETS:
> + case QEMU_IFLA_VF_STATS_TX_PACKETS:
> + case QEMU_IFLA_VF_STATS_RX_BYTES:
> + case QEMU_IFLA_VF_STATS_TX_BYTES:
> + case QEMU_IFLA_VF_STATS_BROADCAST:
> + case QEMU_IFLA_VF_STATS_MULTICAST:
> + case QEMU_IFLA_VF_STATS_PAD:
> + case QEMU_IFLA_VF_STATS_RX_DROPPED:
> + case QEMU_IFLA_VF_STATS_TX_DROPPED:
> + u64 = NLA_DATA(nlattr);
> + *u64 = tswap64(*u64);
> + break;
> + default:
> + qemu_log_mask(LOG_UNIMP, "Unknown host VF STATS type: %d\n",
> + nlattr->nla_type);
> + break;
> + }
> + return 0;
> +}
> +
> +static abi_long host_to_target_data_vfinfo_nlattr(struct nlattr *nlattr,
> + void *context)
> +{
> + struct ifla_vf_mac *mac;
> + struct ifla_vf_vlan *vlan;
> + struct ifla_vf_vlan_info *vlan_info;
> + struct ifla_vf_spoofchk *spoofchk;
> + struct ifla_vf_rate *rate;
> + struct ifla_vf_link_state *link_state;
> + struct ifla_vf_rss_query_en *rss_query_en;
> + struct ifla_vf_trust *trust;
> + struct ifla_vf_guid *guid;
> +
> + switch (nlattr->nla_type) {
> + /* struct ifla_vf_mac */
> + case QEMU_IFLA_VF_MAC:
> + mac = NLA_DATA(nlattr);
> + mac->vf = tswap32(mac->vf);
> + break;
> + /* struct ifla_vf_broadcast */
> + case QEMU_IFLA_VF_BROADCAST:
> + break;
> + /* struct struct ifla_vf_vlan */
> + case QEMU_IFLA_VF_VLAN:
> + vlan = NLA_DATA(nlattr);
> + vlan->vf = tswap32(vlan->vf);
> + vlan->vlan = tswap32(vlan->vlan);
> + vlan->qos = tswap32(vlan->qos);
> + break;
> + /* struct ifla_vf_vlan_info */
> + case QEMU_IFLA_VF_TX_RATE:
> + vlan_info = NLA_DATA(nlattr);
> + vlan_info->vf = tswap32(vlan_info->vf);
> + vlan_info->vlan = tswap32(vlan_info->vlan);
> + vlan_info->qos = tswap32(vlan_info->qos);
> + break;
> + /* struct ifla_vf_spoofchk */
> + case QEMU_IFLA_VF_SPOOFCHK:
> + spoofchk = NLA_DATA(nlattr);
> + spoofchk->vf = tswap32(spoofchk->vf);
> + spoofchk->setting = tswap32(spoofchk->setting);
> + break;
> + /* struct ifla_vf_rate */
> + case QEMU_IFLA_VF_RATE:
> + rate = NLA_DATA(nlattr);
> + rate->vf = tswap32(rate->vf);
> + rate->min_tx_rate = tswap32(rate->min_tx_rate);
> + rate->max_tx_rate = tswap32(rate->max_tx_rate);
> + break;
> + /* struct ifla_vf_link_state */
> + case QEMU_IFLA_VF_LINK_STATE:
> + link_state = NLA_DATA(nlattr);
> + link_state->vf = tswap32(link_state->vf);
> + link_state->link_state = tswap32(link_state->link_state);
> + break;
> + /* struct ifla_vf_rss_query_en */
> + case QEMU_IFLA_VF_RSS_QUERY_EN:
> + rss_query_en = NLA_DATA(nlattr);
> + rss_query_en->vf = tswap32(rss_query_en->vf);
> + rss_query_en->setting = tswap32(rss_query_en->setting);
> + break;
> + /* struct ifla_vf_trust */
> + case QEMU_IFLA_VF_TRUST:
> + trust = NLA_DATA(nlattr);
> + trust->vf = tswap32(trust->vf);
> + trust->setting = tswap32(trust->setting);
> + break;
> + /* struct ifla_vf_guid */
> + case QEMU_IFLA_VF_IB_NODE_GUID:
> + case QEMU_IFLA_VF_IB_PORT_GUID:
> + guid = NLA_DATA(nlattr);
> + guid->vf = tswap32(guid->vf);
> + guid->guid = tswap32(guid->guid);
> + break;
> + /* nested */
> + case QEMU_IFLA_VF_VLAN_LIST:
> + return host_to_target_for_each_nlattr(RTA_DATA(nlattr), nlattr->nla_len,
> + NULL,
> + host_to_target_data_vlan_list_nlattr);
> + case QEMU_IFLA_VF_STATS:
> + return host_to_target_for_each_nlattr(RTA_DATA(nlattr), nlattr->nla_len,
> + NULL,
> + host_to_target_data_vf_stats_nlattr);
> + default:
> + qemu_log_mask(LOG_UNIMP, "Unknown host VFINFO type: %d\n",
> + nlattr->nla_type);
> + break;
> + }
> + return 0;
> +}
> +
> static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
> {
> uint32_t *u32;
> @@ -945,6 +1115,10 @@ static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
> return host_to_target_for_each_nlattr(RTA_DATA(rtattr), rtattr->rta_len,
> NULL,
> host_to_target_data_xdp_nlattr);
> + case QEMU_IFLA_VFINFO_LIST:
> + return host_to_target_for_each_nlattr(RTA_DATA(rtattr), rtattr->rta_len,
> + NULL,
> + host_to_target_data_vfinfo_nlattr);
> default:
> qemu_log_mask(LOG_UNIMP, "Unknown host QEMU_IFLA type: %d\n",
> rtattr->rta_type);
Applied to my linux-user-for-7.0 branch.
Thanks,
Laurent
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] linux-user: netlink: update IFLA_BRPORT entries
2021-12-19 15:45 ` [PATCH 3/3] linux-user: netlink: update IFLA_BRPORT entries Laurent Vivier
2021-12-21 23:25 ` Richard Henderson
@ 2022-01-05 10:29 ` Laurent Vivier
1 sibling, 0 replies; 9+ messages in thread
From: Laurent Vivier @ 2022-01-05 10:29 UTC (permalink / raw)
To: qemu-devel
Le 19/12/2021 à 16:45, Laurent Vivier a écrit :
> add IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT and IFLA_BRPORT_MCAST_EHT_HOSTS_CNT
>
> # QEMU_LOG=unimp ip a
> Unknown QEMU_IFLA_BRPORT type 37
> Unknown QEMU_IFLA_BRPORT type 38
>
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
> linux-user/fd-trans.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/linux-user/fd-trans.c b/linux-user/fd-trans.c
> index 36e4a4c2aae8..a17d05c07923 100644
> --- a/linux-user/fd-trans.c
> +++ b/linux-user/fd-trans.c
> @@ -182,6 +182,8 @@ enum {
> QEMU_IFLA_BRPORT_BACKUP_PORT,
> QEMU_IFLA_BRPORT_MRP_RING_OPEN,
> QEMU_IFLA_BRPORT_MRP_IN_OPEN,
> + QEMU_IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
> + QEMU_IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
> QEMU___IFLA_BRPORT_MAX
> };
>
> @@ -607,6 +609,8 @@ static abi_long host_to_target_slave_data_bridge_nlattr(struct nlattr *nlattr,
> /* uin32_t */
> case QEMU_IFLA_BRPORT_COST:
> case QEMU_IFLA_BRPORT_BACKUP_PORT:
> + case QEMU_IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT:
> + case QEMU_IFLA_BRPORT_MCAST_EHT_HOSTS_CNT:
> u32 = NLA_DATA(nlattr);
> *u32 = tswap32(*u32);
> break;
Applied to my linux-user-for-7.0 branch.
Thanks,
Laurent
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] linux-user: netlink: update IFLA entries
2021-12-19 15:45 [PATCH 1/3] linux-user: netlink: update IFLA entries Laurent Vivier
` (2 preceding siblings ...)
2021-12-21 23:20 ` [PATCH 1/3] linux-user: netlink: update IFLA entries Richard Henderson
@ 2022-01-05 10:29 ` Laurent Vivier
3 siblings, 0 replies; 9+ messages in thread
From: Laurent Vivier @ 2022-01-05 10:29 UTC (permalink / raw)
To: qemu-devel
Le 19/12/2021 à 16:45, Laurent Vivier a écrit :
> Add IFLA_PHYS_PORT_ID, IFLA_PARENT_DEV_NAME, IFLA_PARENT_DEV_BUS_NAME
>
> # QEMU_LOG=unimp ip a
> Unknown host QEMU_IFLA type: 56
> Unknown host QEMU_IFLA type: 57
> Unknown host QEMU_IFLA type: 34
>
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
> linux-user/fd-trans.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/linux-user/fd-trans.c b/linux-user/fd-trans.c
> index 69410899590c..14c19a90b2b0 100644
> --- a/linux-user/fd-trans.c
> +++ b/linux-user/fd-trans.c
> @@ -138,6 +138,9 @@ enum {
> QEMU_IFLA_PROP_LIST,
> QEMU_IFLA_ALT_IFNAME,
> QEMU_IFLA_PERM_ADDRESS,
> + QEMU_IFLA_PROTO_DOWN_REASON,
> + QEMU_IFLA_PARENT_DEV_NAME,
> + QEMU_IFLA_PARENT_DEV_BUS_NAME,
> QEMU___IFLA_MAX
> };
>
> @@ -818,9 +821,12 @@ static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
> case QEMU_IFLA_ADDRESS:
> case QEMU_IFLA_BROADCAST:
> case QEMU_IFLA_PERM_ADDRESS:
> + case QEMU_IFLA_PHYS_PORT_ID:
> /* string */
> case QEMU_IFLA_IFNAME:
> case QEMU_IFLA_QDISC:
> + case QEMU_IFLA_PARENT_DEV_NAME:
> + case QEMU_IFLA_PARENT_DEV_BUS_NAME:
> break;
> /* uin8_t */
> case QEMU_IFLA_OPERSTATE:
Applied to my linux-user-for-7.0 branch.
Thanks,
Laurent
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-01-05 10:47 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-19 15:45 [PATCH 1/3] linux-user: netlink: update IFLA entries Laurent Vivier
2021-12-19 15:45 ` [PATCH 2/3] linux-user: netlink: Add IFLA_VFINFO_LIST Laurent Vivier
2021-12-21 23:24 ` Richard Henderson
2022-01-05 10:29 ` Laurent Vivier
2021-12-19 15:45 ` [PATCH 3/3] linux-user: netlink: update IFLA_BRPORT entries Laurent Vivier
2021-12-21 23:25 ` Richard Henderson
2022-01-05 10:29 ` Laurent Vivier
2021-12-21 23:20 ` [PATCH 1/3] linux-user: netlink: update IFLA entries Richard Henderson
2022-01-05 10:29 ` Laurent Vivier
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.