diff mbox series

[v2,4/8] linux-user: Add IPv6 options to do_print_sockopt()

Message ID 7d61f792c22de8df3c6a9438eacc3906620e7c54.1597129029.git.scw@google.com
State New
Headers show
Series fcntl, sockopt, and ioctl options | expand

Commit Message

Shu-Chun Weng Aug. 11, 2020, 7:09 a.m. UTC
Signed-off-by: Shu-Chun Weng <scw@google.com>
---
v1 -> v2:
  New: Add all IPV6 options to do_print_sockopt(), including the newly supported
  IPV6_ADDR_PREFERENCES.

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

Comments

Shu-Chun Weng Sept. 17, 2020, 7:26 a.m. UTC | #1
Ping -- this one was broken off into its own patch from v1 due to the
amount of addition. Hence I did not add Review-by.

On Tue, Aug 11, 2020 at 12:10 AM Shu-Chun Weng <scw@google.com> wrote:

> Signed-off-by: Shu-Chun Weng <scw@google.com>
> ---
> v1 -> v2:
>   New: Add all IPV6 options to do_print_sockopt(), including the newly
> supported
>   IPV6_ADDR_PREFERENCES.
>
>  linux-user/strace.c | 108 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 108 insertions(+)
>
> diff --git a/linux-user/strace.c b/linux-user/strace.c
> index 854b54a2ad..089fb3968e 100644
> --- a/linux-user/strace.c
> +++ b/linux-user/strace.c
> @@ -6,6 +6,7 @@
>  #include <sys/select.h>
>  #include <sys/mount.h>
>  #include <arpa/inet.h>
> +#include <netinet/in.h>
>  #include <netinet/tcp.h>
>  #include <netinet/udp.h>
>  #include <linux/if_packet.h>
> @@ -2307,6 +2308,113 @@ print_optint:
>              break;
>          }
>          break;
> +    case SOL_IPV6:
> +        qemu_log("SOL_IPV6,");
> +        switch (optname) {
> +        case IPV6_MTU_DISCOVER:
> +            qemu_log("IPV6_MTU_DISCOVER,");
> +            goto print_optint;
> +        case IPV6_MTU:
> +            qemu_log("IPV6_MTU,");
> +            goto print_optint;
> +        case IPV6_V6ONLY:
> +            qemu_log("IPV6_V6ONLY,");
> +            goto print_optint;
> +        case IPV6_RECVPKTINFO:
> +            qemu_log("IPV6_RECVPKTINFO,");
> +            goto print_optint;
> +        case IPV6_UNICAST_HOPS:
> +            qemu_log("IPV6_UNICAST_HOPS,");
> +            goto print_optint;
> +        case IPV6_MULTICAST_HOPS:
> +            qemu_log("IPV6_MULTICAST_HOPS,");
> +            goto print_optint;
> +        case IPV6_MULTICAST_LOOP:
> +            qemu_log("IPV6_MULTICAST_LOOP,");
> +            goto print_optint;
> +        case IPV6_RECVERR:
> +            qemu_log("IPV6_RECVERR,");
> +            goto print_optint;
> +        case IPV6_RECVHOPLIMIT:
> +            qemu_log("IPV6_RECVHOPLIMIT,");
> +            goto print_optint;
> +        case IPV6_2292HOPLIMIT:
> +            qemu_log("IPV6_2292HOPLIMIT,");
> +            goto print_optint;
> +        case IPV6_CHECKSUM:
> +            qemu_log("IPV6_CHECKSUM,");
> +            goto print_optint;
> +        case IPV6_ADDRFORM:
> +            qemu_log("IPV6_ADDRFORM,");
> +            goto print_optint;
> +        case IPV6_2292PKTINFO:
> +            qemu_log("IPV6_2292PKTINFO,");
> +            goto print_optint;
> +        case IPV6_RECVTCLASS:
> +            qemu_log("IPV6_RECVTCLASS,");
> +            goto print_optint;
> +        case IPV6_RECVRTHDR:
> +            qemu_log("IPV6_RECVRTHDR,");
> +            goto print_optint;
> +        case IPV6_2292RTHDR:
> +            qemu_log("IPV6_2292RTHDR,");
> +            goto print_optint;
> +        case IPV6_RECVHOPOPTS:
> +            qemu_log("IPV6_RECVHOPOPTS,");
> +            goto print_optint;
> +        case IPV6_2292HOPOPTS:
> +            qemu_log("IPV6_2292HOPOPTS,");
> +            goto print_optint;
> +        case IPV6_RECVDSTOPTS:
> +            qemu_log("IPV6_RECVDSTOPTS,");
> +            goto print_optint;
> +        case IPV6_2292DSTOPTS:
> +            qemu_log("IPV6_2292DSTOPTS,");
> +            goto print_optint;
> +        case IPV6_TCLASS:
> +            qemu_log("IPV6_TCLASS,");
> +            goto print_optint;
> +        case IPV6_ADDR_PREFERENCES:
> +            qemu_log("IPV6_ADDR_PREFERENCES,");
> +            goto print_optint;
> +#ifdef IPV6_RECVPATHMTU
> +        case IPV6_RECVPATHMTU:
> +            qemu_log("IPV6_RECVPATHMTU,");
> +            goto print_optint;
> +#endif
> +#ifdef IPV6_TRANSPARENT
> +        case IPV6_TRANSPARENT:
> +            qemu_log("IPV6_TRANSPARENT,");
> +            goto print_optint;
> +#endif
> +#ifdef IPV6_FREEBIND
> +        case IPV6_FREEBIND:
> +            qemu_log("IPV6_FREEBIND,");
> +            goto print_optint;
> +#endif
> +#ifdef IPV6_RECVORIGDSTADDR
> +        case IPV6_RECVORIGDSTADDR:
> +            qemu_log("IPV6_RECVORIGDSTADDR,");
> +            goto print_optint;
> +#endif
> +        case IPV6_PKTINFO:
> +            qemu_log("IPV6_PKTINFO,");
> +            print_pointer(optval, 0);
> +            break;
> +        case IPV6_ADD_MEMBERSHIP:
> +            qemu_log("IPV6_ADD_MEMBERSHIP,");
> +            print_pointer(optval, 0);
> +            break;
> +        case IPV6_DROP_MEMBERSHIP:
> +            qemu_log("IPV6_DROP_MEMBERSHIP,");
> +            print_pointer(optval, 0);
> +            break;
> +        default:
> +            print_raw_param(TARGET_ABI_FMT_ld, optname, 0);
> +            print_pointer(optval, 0);
> +            break;
> +        }
> +        break;
>      default:
>          print_raw_param(TARGET_ABI_FMT_ld, level, 0);
>          print_raw_param(TARGET_ABI_FMT_ld, optname, 0);
> --
> 2.28.0.220.ged08abb693-goog
>
>
Laurent Vivier Sept. 29, 2020, 11:29 p.m. UTC | #2
Le 11/08/2020 à 09:09, Shu-Chun Weng a écrit :
> Signed-off-by: Shu-Chun Weng <scw@google.com>
> ---
> v1 -> v2:
>   New: Add all IPV6 options to do_print_sockopt(), including the newly supported
>   IPV6_ADDR_PREFERENCES.
> 
>  linux-user/strace.c | 108 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 108 insertions(+)
> 
> diff --git a/linux-user/strace.c b/linux-user/strace.c
> index 854b54a2ad..089fb3968e 100644
> --- a/linux-user/strace.c
> +++ b/linux-user/strace.c
> @@ -6,6 +6,7 @@
>  #include <sys/select.h>
>  #include <sys/mount.h>
>  #include <arpa/inet.h>
> +#include <netinet/in.h>
>  #include <netinet/tcp.h>
>  #include <netinet/udp.h>
>  #include <linux/if_packet.h>
> @@ -2307,6 +2308,113 @@ print_optint:
>              break;
>          }
>          break;
> +    case SOL_IPV6:
> +        qemu_log("SOL_IPV6,");
> +        switch (optname) {
> +        case IPV6_MTU_DISCOVER:
> +            qemu_log("IPV6_MTU_DISCOVER,");
> +            goto print_optint;
> +        case IPV6_MTU:
> +            qemu_log("IPV6_MTU,");
> +            goto print_optint;
> +        case IPV6_V6ONLY:
> +            qemu_log("IPV6_V6ONLY,");
> +            goto print_optint;
> +        case IPV6_RECVPKTINFO:
> +            qemu_log("IPV6_RECVPKTINFO,");
> +            goto print_optint;
> +        case IPV6_UNICAST_HOPS:
> +            qemu_log("IPV6_UNICAST_HOPS,");
> +            goto print_optint;
> +        case IPV6_MULTICAST_HOPS:
> +            qemu_log("IPV6_MULTICAST_HOPS,");
> +            goto print_optint;
> +        case IPV6_MULTICAST_LOOP:
> +            qemu_log("IPV6_MULTICAST_LOOP,");
> +            goto print_optint;
> +        case IPV6_RECVERR:
> +            qemu_log("IPV6_RECVERR,");
> +            goto print_optint;
> +        case IPV6_RECVHOPLIMIT:
> +            qemu_log("IPV6_RECVHOPLIMIT,");
> +            goto print_optint;
> +        case IPV6_2292HOPLIMIT:
> +            qemu_log("IPV6_2292HOPLIMIT,");
> +            goto print_optint;
> +        case IPV6_CHECKSUM:
> +            qemu_log("IPV6_CHECKSUM,");
> +            goto print_optint;
> +        case IPV6_ADDRFORM:
> +            qemu_log("IPV6_ADDRFORM,");
> +            goto print_optint;
> +        case IPV6_2292PKTINFO:
> +            qemu_log("IPV6_2292PKTINFO,");
> +            goto print_optint;
> +        case IPV6_RECVTCLASS:
> +            qemu_log("IPV6_RECVTCLASS,");
> +            goto print_optint;
> +        case IPV6_RECVRTHDR:
> +            qemu_log("IPV6_RECVRTHDR,");
> +            goto print_optint;
> +        case IPV6_2292RTHDR:
> +            qemu_log("IPV6_2292RTHDR,");
> +            goto print_optint;
> +        case IPV6_RECVHOPOPTS:
> +            qemu_log("IPV6_RECVHOPOPTS,");
> +            goto print_optint;
> +        case IPV6_2292HOPOPTS:
> +            qemu_log("IPV6_2292HOPOPTS,");
> +            goto print_optint;
> +        case IPV6_RECVDSTOPTS:
> +            qemu_log("IPV6_RECVDSTOPTS,");
> +            goto print_optint;
> +        case IPV6_2292DSTOPTS:
> +            qemu_log("IPV6_2292DSTOPTS,");
> +            goto print_optint;
> +        case IPV6_TCLASS:
> +            qemu_log("IPV6_TCLASS,");
> +            goto print_optint;
> +        case IPV6_ADDR_PREFERENCES:
> +            qemu_log("IPV6_ADDR_PREFERENCES,");
> +            goto print_optint;
> +#ifdef IPV6_RECVPATHMTU
> +        case IPV6_RECVPATHMTU:
> +            qemu_log("IPV6_RECVPATHMTU,");
> +            goto print_optint;
> +#endif
> +#ifdef IPV6_TRANSPARENT
> +        case IPV6_TRANSPARENT:
> +            qemu_log("IPV6_TRANSPARENT,");
> +            goto print_optint;
> +#endif
> +#ifdef IPV6_FREEBIND
> +        case IPV6_FREEBIND:
> +            qemu_log("IPV6_FREEBIND,");
> +            goto print_optint;
> +#endif
> +#ifdef IPV6_RECVORIGDSTADDR
> +        case IPV6_RECVORIGDSTADDR:
> +            qemu_log("IPV6_RECVORIGDSTADDR,");
> +            goto print_optint;
> +#endif
> +        case IPV6_PKTINFO:
> +            qemu_log("IPV6_PKTINFO,");
> +            print_pointer(optval, 0);
> +            break;
> +        case IPV6_ADD_MEMBERSHIP:
> +            qemu_log("IPV6_ADD_MEMBERSHIP,");
> +            print_pointer(optval, 0);
> +            break;
> +        case IPV6_DROP_MEMBERSHIP:
> +            qemu_log("IPV6_DROP_MEMBERSHIP,");
> +            print_pointer(optval, 0);
> +            break;
> +        default:
> +            print_raw_param(TARGET_ABI_FMT_ld, optname, 0);
> +            print_pointer(optval, 0);
> +            break;
> +        }
> +        break;
>      default:
>          print_raw_param(TARGET_ABI_FMT_ld, level, 0);
>          print_raw_param(TARGET_ABI_FMT_ld, optname, 0);
> 

Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Shu-Chun Weng Dec. 18, 2020, 3:58 a.m. UTC | #3
Hi Laurent,

The first 4 patches in the set (up to this) are self-contained. Is it
possible to include them in your dev branch while the others are still
waiting for review? (I'll ping the other threads separately).

The first three patches are:
  https://lists.nongnu.org/archive/html/qemu-devel/2020-08/msg02044.html
  https://lists.nongnu.org/archive/html/qemu-devel/2020-08/msg02051.html
  https://lists.nongnu.org/archive/html/qemu-devel/2020-08/msg01946.html

Shu-Chun

On Tue, Sep 29, 2020 at 4:29 PM Laurent Vivier <laurent@vivier.eu> wrote:

> Le 11/08/2020 à 09:09, Shu-Chun Weng a écrit :
> > Signed-off-by: Shu-Chun Weng <scw@google.com>
> > ---
> > v1 -> v2:
> >   New: Add all IPV6 options to do_print_sockopt(), including the newly
> supported
> >   IPV6_ADDR_PREFERENCES.
> >
> >  linux-user/strace.c | 108 ++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 108 insertions(+)
> >
> > diff --git a/linux-user/strace.c b/linux-user/strace.c
> > index 854b54a2ad..089fb3968e 100644
> > --- a/linux-user/strace.c
> > +++ b/linux-user/strace.c
> > @@ -6,6 +6,7 @@
> >  #include <sys/select.h>
> >  #include <sys/mount.h>
> >  #include <arpa/inet.h>
> > +#include <netinet/in.h>
> >  #include <netinet/tcp.h>
> >  #include <netinet/udp.h>
> >  #include <linux/if_packet.h>
> > @@ -2307,6 +2308,113 @@ print_optint:
> >              break;
> >          }
> >          break;
> > +    case SOL_IPV6:
> > +        qemu_log("SOL_IPV6,");
> > +        switch (optname) {
> > +        case IPV6_MTU_DISCOVER:
> > +            qemu_log("IPV6_MTU_DISCOVER,");
> > +            goto print_optint;
> > +        case IPV6_MTU:
> > +            qemu_log("IPV6_MTU,");
> > +            goto print_optint;
> > +        case IPV6_V6ONLY:
> > +            qemu_log("IPV6_V6ONLY,");
> > +            goto print_optint;
> > +        case IPV6_RECVPKTINFO:
> > +            qemu_log("IPV6_RECVPKTINFO,");
> > +            goto print_optint;
> > +        case IPV6_UNICAST_HOPS:
> > +            qemu_log("IPV6_UNICAST_HOPS,");
> > +            goto print_optint;
> > +        case IPV6_MULTICAST_HOPS:
> > +            qemu_log("IPV6_MULTICAST_HOPS,");
> > +            goto print_optint;
> > +        case IPV6_MULTICAST_LOOP:
> > +            qemu_log("IPV6_MULTICAST_LOOP,");
> > +            goto print_optint;
> > +        case IPV6_RECVERR:
> > +            qemu_log("IPV6_RECVERR,");
> > +            goto print_optint;
> > +        case IPV6_RECVHOPLIMIT:
> > +            qemu_log("IPV6_RECVHOPLIMIT,");
> > +            goto print_optint;
> > +        case IPV6_2292HOPLIMIT:
> > +            qemu_log("IPV6_2292HOPLIMIT,");
> > +            goto print_optint;
> > +        case IPV6_CHECKSUM:
> > +            qemu_log("IPV6_CHECKSUM,");
> > +            goto print_optint;
> > +        case IPV6_ADDRFORM:
> > +            qemu_log("IPV6_ADDRFORM,");
> > +            goto print_optint;
> > +        case IPV6_2292PKTINFO:
> > +            qemu_log("IPV6_2292PKTINFO,");
> > +            goto print_optint;
> > +        case IPV6_RECVTCLASS:
> > +            qemu_log("IPV6_RECVTCLASS,");
> > +            goto print_optint;
> > +        case IPV6_RECVRTHDR:
> > +            qemu_log("IPV6_RECVRTHDR,");
> > +            goto print_optint;
> > +        case IPV6_2292RTHDR:
> > +            qemu_log("IPV6_2292RTHDR,");
> > +            goto print_optint;
> > +        case IPV6_RECVHOPOPTS:
> > +            qemu_log("IPV6_RECVHOPOPTS,");
> > +            goto print_optint;
> > +        case IPV6_2292HOPOPTS:
> > +            qemu_log("IPV6_2292HOPOPTS,");
> > +            goto print_optint;
> > +        case IPV6_RECVDSTOPTS:
> > +            qemu_log("IPV6_RECVDSTOPTS,");
> > +            goto print_optint;
> > +        case IPV6_2292DSTOPTS:
> > +            qemu_log("IPV6_2292DSTOPTS,");
> > +            goto print_optint;
> > +        case IPV6_TCLASS:
> > +            qemu_log("IPV6_TCLASS,");
> > +            goto print_optint;
> > +        case IPV6_ADDR_PREFERENCES:
> > +            qemu_log("IPV6_ADDR_PREFERENCES,");
> > +            goto print_optint;
> > +#ifdef IPV6_RECVPATHMTU
> > +        case IPV6_RECVPATHMTU:
> > +            qemu_log("IPV6_RECVPATHMTU,");
> > +            goto print_optint;
> > +#endif
> > +#ifdef IPV6_TRANSPARENT
> > +        case IPV6_TRANSPARENT:
> > +            qemu_log("IPV6_TRANSPARENT,");
> > +            goto print_optint;
> > +#endif
> > +#ifdef IPV6_FREEBIND
> > +        case IPV6_FREEBIND:
> > +            qemu_log("IPV6_FREEBIND,");
> > +            goto print_optint;
> > +#endif
> > +#ifdef IPV6_RECVORIGDSTADDR
> > +        case IPV6_RECVORIGDSTADDR:
> > +            qemu_log("IPV6_RECVORIGDSTADDR,");
> > +            goto print_optint;
> > +#endif
> > +        case IPV6_PKTINFO:
> > +            qemu_log("IPV6_PKTINFO,");
> > +            print_pointer(optval, 0);
> > +            break;
> > +        case IPV6_ADD_MEMBERSHIP:
> > +            qemu_log("IPV6_ADD_MEMBERSHIP,");
> > +            print_pointer(optval, 0);
> > +            break;
> > +        case IPV6_DROP_MEMBERSHIP:
> > +            qemu_log("IPV6_DROP_MEMBERSHIP,");
> > +            print_pointer(optval, 0);
> > +            break;
> > +        default:
> > +            print_raw_param(TARGET_ABI_FMT_ld, optname, 0);
> > +            print_pointer(optval, 0);
> > +            break;
> > +        }
> > +        break;
> >      default:
> >          print_raw_param(TARGET_ABI_FMT_ld, level, 0);
> >          print_raw_param(TARGET_ABI_FMT_ld, optname, 0);
> >
>
> Reviewed-by: Laurent Vivier <laurent@vivier.eu>
>
diff mbox series

Patch

diff --git a/linux-user/strace.c b/linux-user/strace.c
index 854b54a2ad..089fb3968e 100644
--- a/linux-user/strace.c
+++ b/linux-user/strace.c
@@ -6,6 +6,7 @@ 
 #include <sys/select.h>
 #include <sys/mount.h>
 #include <arpa/inet.h>
+#include <netinet/in.h>
 #include <netinet/tcp.h>
 #include <netinet/udp.h>
 #include <linux/if_packet.h>
@@ -2307,6 +2308,113 @@  print_optint:
             break;
         }
         break;
+    case SOL_IPV6:
+        qemu_log("SOL_IPV6,");
+        switch (optname) {
+        case IPV6_MTU_DISCOVER:
+            qemu_log("IPV6_MTU_DISCOVER,");
+            goto print_optint;
+        case IPV6_MTU:
+            qemu_log("IPV6_MTU,");
+            goto print_optint;
+        case IPV6_V6ONLY:
+            qemu_log("IPV6_V6ONLY,");
+            goto print_optint;
+        case IPV6_RECVPKTINFO:
+            qemu_log("IPV6_RECVPKTINFO,");
+            goto print_optint;
+        case IPV6_UNICAST_HOPS:
+            qemu_log("IPV6_UNICAST_HOPS,");
+            goto print_optint;
+        case IPV6_MULTICAST_HOPS:
+            qemu_log("IPV6_MULTICAST_HOPS,");
+            goto print_optint;
+        case IPV6_MULTICAST_LOOP:
+            qemu_log("IPV6_MULTICAST_LOOP,");
+            goto print_optint;
+        case IPV6_RECVERR:
+            qemu_log("IPV6_RECVERR,");
+            goto print_optint;
+        case IPV6_RECVHOPLIMIT:
+            qemu_log("IPV6_RECVHOPLIMIT,");
+            goto print_optint;
+        case IPV6_2292HOPLIMIT:
+            qemu_log("IPV6_2292HOPLIMIT,");
+            goto print_optint;
+        case IPV6_CHECKSUM:
+            qemu_log("IPV6_CHECKSUM,");
+            goto print_optint;
+        case IPV6_ADDRFORM:
+            qemu_log("IPV6_ADDRFORM,");
+            goto print_optint;
+        case IPV6_2292PKTINFO:
+            qemu_log("IPV6_2292PKTINFO,");
+            goto print_optint;
+        case IPV6_RECVTCLASS:
+            qemu_log("IPV6_RECVTCLASS,");
+            goto print_optint;
+        case IPV6_RECVRTHDR:
+            qemu_log("IPV6_RECVRTHDR,");
+            goto print_optint;
+        case IPV6_2292RTHDR:
+            qemu_log("IPV6_2292RTHDR,");
+            goto print_optint;
+        case IPV6_RECVHOPOPTS:
+            qemu_log("IPV6_RECVHOPOPTS,");
+            goto print_optint;
+        case IPV6_2292HOPOPTS:
+            qemu_log("IPV6_2292HOPOPTS,");
+            goto print_optint;
+        case IPV6_RECVDSTOPTS:
+            qemu_log("IPV6_RECVDSTOPTS,");
+            goto print_optint;
+        case IPV6_2292DSTOPTS:
+            qemu_log("IPV6_2292DSTOPTS,");
+            goto print_optint;
+        case IPV6_TCLASS:
+            qemu_log("IPV6_TCLASS,");
+            goto print_optint;
+        case IPV6_ADDR_PREFERENCES:
+            qemu_log("IPV6_ADDR_PREFERENCES,");
+            goto print_optint;
+#ifdef IPV6_RECVPATHMTU
+        case IPV6_RECVPATHMTU:
+            qemu_log("IPV6_RECVPATHMTU,");
+            goto print_optint;
+#endif
+#ifdef IPV6_TRANSPARENT
+        case IPV6_TRANSPARENT:
+            qemu_log("IPV6_TRANSPARENT,");
+            goto print_optint;
+#endif
+#ifdef IPV6_FREEBIND
+        case IPV6_FREEBIND:
+            qemu_log("IPV6_FREEBIND,");
+            goto print_optint;
+#endif
+#ifdef IPV6_RECVORIGDSTADDR
+        case IPV6_RECVORIGDSTADDR:
+            qemu_log("IPV6_RECVORIGDSTADDR,");
+            goto print_optint;
+#endif
+        case IPV6_PKTINFO:
+            qemu_log("IPV6_PKTINFO,");
+            print_pointer(optval, 0);
+            break;
+        case IPV6_ADD_MEMBERSHIP:
+            qemu_log("IPV6_ADD_MEMBERSHIP,");
+            print_pointer(optval, 0);
+            break;
+        case IPV6_DROP_MEMBERSHIP:
+            qemu_log("IPV6_DROP_MEMBERSHIP,");
+            print_pointer(optval, 0);
+            break;
+        default:
+            print_raw_param(TARGET_ABI_FMT_ld, optname, 0);
+            print_pointer(optval, 0);
+            break;
+        }
+        break;
     default:
         print_raw_param(TARGET_ABI_FMT_ld, level, 0);
         print_raw_param(TARGET_ABI_FMT_ld, optname, 0);