On Mon, Jul 31, 2017 at 3:16 PM, Dave Watson <davejwatson@xxxxxx> wrote: > 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. I'll post the changes shortly. The reason to include parameters with the setsockopt is so that we can push the ULP and start operations in one shot. Tom