On 07/29/17 01:12 PM, Tom Herbert wrote: > On Wed, Jun 14, 2017 at 11:37 AM, Dave Watson <davejwatson@xxxxxx> wrote: > > Add the infrustructure for attaching Upper Layer Protocols (ULPs) over TCP > > sockets. Based on a similar infrastructure in tcp_cong. The idea is that any > > ULP can add its own logic by changing the TCP proto_ops structure to its own > > methods. > > > > Example usage: > > > > setsockopt(sock, SOL_TCP, TCP_ULP, "tls", sizeof("tls")); > > > One question: is there a good reason why the ULP infrastructure should > just be for TCP sockets. For example, I'd really like to be able > something like: > > setsockopt(sock, SOL_SOCKET, SO_ULP, &ulp_param, sizeof(ulp_param)); > > Where ulp_param is a structure containing the ULP name as well as some > ULP specific parameters that are passed to init_ulp. ulp_init could > determine whether the socket family is appropriate for the ULP being > requested. Using SOL_SOCKET instead seems reasonable to me. I can see how ulp_params could have some use, perhaps at a slight loss in clarity. TLS needs its own setsockopts anyway though, for renegotiate for example.