Thanks for the feedback. >IIUC Paolo's suggestion was to create a new header file under net/ipv4, >if you consider addrconf.h unsuitable. There is no need to expose this >argument struct in kernel-wide headers. Currently the structure is like follows: IPv4: `struct inet_fill_args` in igmp.h and use it in igmp.c/devinet.c IPv6: `struct inet6_fill_args` in addrconf.h and use it in mld.c/addrconf.c We could move `struct inet_fill_args` to a separate header file, but this would cause the IPv4 and IPv6 code to diverge. Therefore, we may need to modify the IPv6 header structure slightly as well. I propose moving `struct inet_fill_args` to `igmp_internal.h` and, in a separate patch, moving struct inet6_fill_args to addrconf_internal.h. Please let me know if you have any other suggestions. Thanks, Yuyang On Tue, Jan 21, 2025 at 9:46 AM Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > > On Fri, 17 Jan 2025 17:15:58 +0900 Yuyang Huang wrote: > > include/linux/igmp.h | 12 +++++++ > > net/ipv4/devinet.c | 76 ++++++++++++++++++++++++++++++++++++-------- > > net/ipv4/igmp.c | 13 +++++--- > > IIUC Paolo's suggestion was to create a new header file under net/ipv4, > if you consider addrconf.h unsuitable. There is no need to expose this > argument struct in kernel-wide headers.