All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.