Re: [PATCH net-next v4 02/15] net: build socket infrastructure for QUIC protocol

Xin Long <[email protected]> Thu, 30 Oct 2025 10:28:01 -0400
Newsgroups dev.linux.lists.quic,dev.linux.lists.kernel-tls-handshake,org.kernel.vger.linux-cifs,org.kernel.vger.netdev
Message-ID <CADvbK_cPEnNfcUXaHm3Aub0dkerqnwG4NB_EJ_eQZTc80c28_Q@mail.gmail.com>
On Thu, Oct 30, 2025 at 10:17 AM Stefan Metzmacher <[email protected]> wrote:
>
> Am 30.10.25 um 15:13 schrieb Xin Long:
> > On Thu, Oct 30, 2025 at 7:29 AM Stefan Metzmacher <[email protected]> wrote:
> >>
> >> Am 29.10.25 um 20:57 schrieb Xin Long:
> >>> On Wed, Oct 29, 2025 at 12:22 PM Stefan Metzmacher <[email protected]> wrote:
> >>>>
> >>>> Hi Xin,
> >>>>
> >>>>> This patch lays the groundwork for QUIC socket support in the kernel.
> >>>>> It defines the core structures and protocol hooks needed to create
> >>>>> QUIC sockets, without implementing any protocol behavior at this stage.
> >>>>>
> >>>>> Basic integration is included to allow building the module via
> >>>>> CONFIG_IP_QUIC=m.
> >>>>>
> >>>>> This provides the scaffolding necessary for adding actual QUIC socket
> >>>>> behavior in follow-up patches.
> >>>>>
> >>>>> Signed-off-by: Pengtao He <[email protected]>
> >>>>> Signed-off-by: Xin Long <[email protected]>
> >>>>
> >>>> ...
> >>>>
> >>>>> +module_init(quic_init);
> >>>>> +module_exit(quic_exit);
> >>>>> +
> >>>>> +MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-261");
> >>>>> +MODULE_ALIAS("net-pf-" __stringify(PF_INET6) "-proto-261");
> >>>>
> >>>> Shouldn't this use MODULE_ALIAS_NET_PF_PROTO(PF_INET, IPPROTO_QUIC)
> >>>> instead?
> >>>>
> >>> Hi, Stefan,
> >>>
> >>> If we switch to using MODULE_ALIAS_NET_PF_PROTO(), we still need to
> >>> keep using the numeric value 261:
> >>>
> >>>     MODULE_ALIAS_NET_PF_PROTO(PF_INET, 261);
> >>>     MODULE_ALIAS_NET_PF_PROTO(PF_INET6, 261);
> >>>
> >>> IPPROTO_QUIC is defined as an enum, not a macro. Since
> >>> MODULE_ALIAS_NET_PF_PROTO() relies on __stringify(proto), it can’t
> >>> stringify enum values correctly, and it would generate:
> >>>
> >>>     alias:          net-pf-10-proto-IPPROTO_QUIC
> >>>     alias:          net-pf-2-proto-IPPROTO_QUIC
> >>
> >> Yes, now I remember...
> >>
> >> Maybe we can use something like this:
> >>
> >> -  IPPROTO_QUIC = 261,          /* A UDP-Based Multiplexed and Secure Transport */
> >> +#define __IPPROTO_QUIC 261     /* A UDP-Based Multiplexed and Secure Transport */
> >> +  IPPROTO_QUIC = __IPPROTO_QUIC,
> >>
> >> and then
> >>
> >> MODULE_ALIAS_NET_PF_PROTO(PF_INET, __IPPROTO_QUIC)
> >>
> >> In order to make things clearer.
> >>
> >> What do you think?
> >>
> > That might be a good idea to make things clearer later on.
> >
> > But for now, I’d prefer not to add something special just for QUIC in
> > include/uapi/linux/in.h.  We can revisit it later together with SCTP,
> > L2TP, and SMC to keep things consistent.
>
> Ok, maybe this would do it for now?
>
> MODULE_ALIAS_NET_PF_PROTO(PF_INET, 261); /* IPPROTO_QUIC == 261 */
>
Yep, fine by me. :-)

> I'll do the same for IPPROTO_SMBDIRECT...
>
> metze