Je sais pas. A première vue il n'y a pas d'équivent à in_aton() pour l'ipv6:
__u32 in_aton(char*) dans net/ipv4/utils.c convertit une adresse au format ascii ("129.168.0.11") en int.
Il faudrait d'abord un net/ipv6/utils.c avec
in6_addr *inv6_aton(char *)
voir dans inet_pton6() dans le fichier resolv/inet_pton.c de la glibc pour l'algo, il est pas tout simple.
Le reste a l'air plus trivial:
-ajouter deux champs in6_addr *local_ipv6, *remote_ipv6 à la structure netpoll (include/linux/netpoll.h)
-modifier net/core/netpoll.c::netpoll_parse_options() : si "np->local_ip=ntohl(in_aton(cur));" rate (adresse non ipv4), setter np->local_ipv6 grâce à inv6_aton() (attention au byte order aussi).
-Ensuite en fonction de la non-nullité de np->local_ipv6, l'utiliser en lieu et place de np->local_ip. (changer aussi iph->version et tout ça).
-Et pareil pour remote_ip/remote_ipv6...
[^] # Re: IPv6
Posté par Colin Leroy (site web personnel) . En réponse à la dépêche Netconsole, log de messages noyaux via UDP. Évalué à 4.
__u32 in_aton(char*) dans net/ipv4/utils.c convertit une adresse au format ascii ("129.168.0.11") en int.
Il faudrait d'abord un net/ipv6/utils.c avec
in6_addr *inv6_aton(char *)
voir dans inet_pton6() dans le fichier resolv/inet_pton.c de la glibc pour l'algo, il est pas tout simple.
Le reste a l'air plus trivial:
-ajouter deux champs in6_addr *local_ipv6, *remote_ipv6 à la structure netpoll (include/linux/netpoll.h)
-modifier net/core/netpoll.c::netpoll_parse_options() : si "np->local_ip=ntohl(in_aton(cur));" rate (adresse non ipv4), setter np->local_ipv6 grâce à inv6_aton() (attention au byte order aussi).
-Ensuite en fonction de la non-nullité de np->local_ipv6, l'utiliser en lieu et place de np->local_ip. (changer aussi iph->version et tout ça).
-Et pareil pour remote_ip/remote_ipv6...
Bref, un patch qui attend un courageux :)