On Mon,  4 Nov 2024 10:14:24 -0800 Stanislav Fomichev wrote:
> -static int configure_flow_steering(void)
> +static int configure_flow_steering(struct sockaddr_in6 *server_sin)
>  {
> -     return run_command("sudo ethtool -N %s flow-type tcp4 %s %s dst-ip %s 
> %s %s dst-port %s queue %d >&2",
> +     const char *type = "tcp6";
> +     const char *server_addr;
> +     char buf[256];
> +
> +     inet_ntop(AF_INET6, &server_sin->sin6_addr, buf, sizeof(buf));
> +     server_addr = buf;
> +
> +     if (IN6_IS_ADDR_V4MAPPED(&server_sin->sin6_addr)) {
> +             type = "tcp4";
> +             server_addr = strrchr(server_addr, ':') + 1;
> +     }
> +
> +     return run_command("sudo ethtool -N %s flow-type %s %s %s dst-ip %s %s 
> %s dst-port %s queue %d >&2",
>                          ifname,
> +                        type,
>                          client_ip ? "src-ip" : "",
>                          client_ip ?: "",
> -                        server_ip,
> +                        server_addr,
>                          client_ip ? "src-port" : "",
>                          client_ip ? port : "",
>                          port, start_queue);

nit: I think this generate a truncation warning, not sure if it's easy
to fix:

ncdevmem.c:259:28: warning: ā€˜%sā€™ directive output may be truncated writing up 
to 255 bytes into a region of size between 209 and 215 [-Wformat-truncation=]
  259 |         return run_command("sudo ethtool -N %s flow-type %s %s %s 
dst-ip %s %s %s dst-port %s queue %d >&2",
      |                            
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

maybe make buf smaller? šŸ¤”ļø

Reply via email to