diff mbox series

linux-user: add more netlink protocol constants

Message ID 20230101141105.12024-1-fantasquex@gmail.com (mailing list archive)
State New, archived
Headers show
Series linux-user: add more netlink protocol constants | expand

Commit Message

Letu Ren Jan. 1, 2023, 2:11 p.m. UTC
Currently, qemu strace only prints four protocol contants. This patch
adds others listed in "linux/netlink.h".

Signed-off-by: Letu Ren <fantasquex@gmail.com>
---
I found this issue when running networkmanager using qemu-user.
`socket(PF_NETLINK,SOCK_RAW,16) = -1 errno=93 (Protocol not supported)`
I don't know whether this protocol can be implemented. However, a better
log is much easier.

 linux-user/strace.c | 48 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

Comments

Letu Ren Jan. 11, 2023, 10:43 p.m. UTC | #1
Ping! Hi, it's been more than a week since I submitted this patch. I
think it's a trivial patch. Maybe qemu trivial team could take a look.

Thanks,
Letu
Laurent Vivier Jan. 25, 2023, 1:26 p.m. UTC | #2
Le 01/01/2023 à 15:11, Letu Ren a écrit :
> Currently, qemu strace only prints four protocol contants. This patch
> adds others listed in "linux/netlink.h".
> 
> Signed-off-by: Letu Ren <fantasquex@gmail.com>
> ---
> I found this issue when running networkmanager using qemu-user.
> `socket(PF_NETLINK,SOCK_RAW,16) = -1 errno=93 (Protocol not supported)`
> I don't know whether this protocol can be implemented. However, a better
> log is much easier.
> 
>   linux-user/strace.c | 48 +++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 48 insertions(+)
> 
> diff --git a/linux-user/strace.c b/linux-user/strace.c
> index 9ae5a812cd..a2b2aa7248 100644
> --- a/linux-user/strace.c
> +++ b/linux-user/strace.c
> @@ -506,21 +506,69 @@ print_socket_protocol(int domain, int type, int protocol)
>           case NETLINK_ROUTE:
>               qemu_log("NETLINK_ROUTE");
>               break;
> +        case NETLINK_UNUSED:
> +            qemu_log("NETLINK_UNUSED");
> +            break;
> +        case NETLINK_USERSOCK:
> +            qemu_log("NETLINK_USERSOCK");
> +            break;
> +        case NETLINK_FIREWALL:
> +            qemu_log("NETLINK_FIREWALL");
> +            break;
> +        case NETLINK_SOCK_DIAG:
> +            qemu_log("NETLINK_SOCK_DIAG");
> +            break;
> +        case NETLINK_NFLOG:
> +            qemu_log("NETLINK_NFLOG");
> +            break;
> +        case NETLINK_XFRM:
> +            qemu_log("NETLINK_XFRM");
> +            break;
> +        case NETLINK_SELINUX:
> +            qemu_log("NETLINK_SELINUX");
> +            break;
> +        case NETLINK_ISCSI:
> +            qemu_log("NETLINK_ISCSI");
> +            break;
>           case NETLINK_AUDIT:
>               qemu_log("NETLINK_AUDIT");
>               break;
> +        case NETLINK_FIB_LOOKUP:
> +            qemu_log("NETLINK_FIB_LOOKUP");
> +            break;
> +        case NETLINK_CONNECTOR:
> +            qemu_log("NETLINK_CONNECTOR");
> +            break;
>           case NETLINK_NETFILTER:
>               qemu_log("NETLINK_NETFILTER");
>               break;
> +        case NETLINK_IP6_FW:
> +            qemu_log("NETLINK_IP6_FW");
> +            break;
> +        case NETLINK_DNRTMSG:
> +            qemu_log("NETLINK_DNRTMSG");
> +            break;
>           case NETLINK_KOBJECT_UEVENT:
>               qemu_log("NETLINK_KOBJECT_UEVENT");
>               break;
> +        case NETLINK_GENERIC:
> +            qemu_log("NETLINK_GENERIC");
> +            break;
> +        case NETLINK_SCSITRANSPORT:
> +            qemu_log("NETLINK_SCSITRANSPORT");
> +            break;
> +        case NETLINK_ECRYPTFS:
> +            qemu_log("NETLINK_ECRYPTFS");
> +            break;
>           case NETLINK_RDMA:
>               qemu_log("NETLINK_RDMA");
>               break;
>           case NETLINK_CRYPTO:
>               qemu_log("NETLINK_CRYPTO");
>               break;
> +        case NETLINK_SMC:
> +            qemu_log("NETLINK_SMC");
> +            break;
>           default:
>               qemu_log("%d", protocol);
>               break;

Applied to my linux-user-for-8.0 branch.

Thanks,
Laurent
diff mbox series

Patch

diff --git a/linux-user/strace.c b/linux-user/strace.c
index 9ae5a812cd..a2b2aa7248 100644
--- a/linux-user/strace.c
+++ b/linux-user/strace.c
@@ -506,21 +506,69 @@  print_socket_protocol(int domain, int type, int protocol)
         case NETLINK_ROUTE:
             qemu_log("NETLINK_ROUTE");
             break;
+        case NETLINK_UNUSED:
+            qemu_log("NETLINK_UNUSED");
+            break;
+        case NETLINK_USERSOCK:
+            qemu_log("NETLINK_USERSOCK");
+            break;
+        case NETLINK_FIREWALL:
+            qemu_log("NETLINK_FIREWALL");
+            break;
+        case NETLINK_SOCK_DIAG:
+            qemu_log("NETLINK_SOCK_DIAG");
+            break;
+        case NETLINK_NFLOG:
+            qemu_log("NETLINK_NFLOG");
+            break;
+        case NETLINK_XFRM:
+            qemu_log("NETLINK_XFRM");
+            break;
+        case NETLINK_SELINUX:
+            qemu_log("NETLINK_SELINUX");
+            break;
+        case NETLINK_ISCSI:
+            qemu_log("NETLINK_ISCSI");
+            break;
         case NETLINK_AUDIT:
             qemu_log("NETLINK_AUDIT");
             break;
+        case NETLINK_FIB_LOOKUP:
+            qemu_log("NETLINK_FIB_LOOKUP");
+            break;
+        case NETLINK_CONNECTOR:
+            qemu_log("NETLINK_CONNECTOR");
+            break;
         case NETLINK_NETFILTER:
             qemu_log("NETLINK_NETFILTER");
             break;
+        case NETLINK_IP6_FW:
+            qemu_log("NETLINK_IP6_FW");
+            break;
+        case NETLINK_DNRTMSG:
+            qemu_log("NETLINK_DNRTMSG");
+            break;
         case NETLINK_KOBJECT_UEVENT:
             qemu_log("NETLINK_KOBJECT_UEVENT");
             break;
+        case NETLINK_GENERIC:
+            qemu_log("NETLINK_GENERIC");
+            break;
+        case NETLINK_SCSITRANSPORT:
+            qemu_log("NETLINK_SCSITRANSPORT");
+            break;
+        case NETLINK_ECRYPTFS:
+            qemu_log("NETLINK_ECRYPTFS");
+            break;
         case NETLINK_RDMA:
             qemu_log("NETLINK_RDMA");
             break;
         case NETLINK_CRYPTO:
             qemu_log("NETLINK_CRYPTO");
             break;
+        case NETLINK_SMC:
+            qemu_log("NETLINK_SMC");
+            break;
         default:
             qemu_log("%d", protocol);
             break;