State of protocols (what backs socket(2)) in CURRENT

This page is to track work on various protocols. ATM, it is focused to track what protocols depend on soreceive_generic() and sosend_generic() with the goal to separate different protocols from each other.

protosw

file

type

sockbuf

pr_so(receive|send)

notes

TCP, TCP6

netinet/tcp_usrreq.c

stream

generic

generic + pr_rcvd

SCTP

netinet/sctp_usrreq.c

stream

generic + private

private

the sockbuf can actually be made 100%, the generic part is a fake

UDP

netinet/udp_usrreq.c

dgram

generic

so(receive|send)_dgram

can we just rename the methods to UDP and copy them? Or better share with other dgram protos?

raw IPv4

netinet/raw_ip.c

dgram

generic

generic + pr_send

raw IPv6

netinet6/raw_ip6.c

dgram

generic

generic + pr_send

IPv6 SeND

netinet6/send.c

dgram

generic

generic + pr_send

seems similar to raw at first glance

netgraph(4)

netgraph/ng_socket.c

dgram

generic

generic + pr_send

route(4)

net/rtsock.c

dgram

generic

generic + pr_send

Key

netipsec/keysock.c

dgram

generic

generic

HyperV

dev/hyperv/hvsock/hv_sock.c

stream

generic

private

Infiniband

ofed/drivers/infiniband/ulp/sdp/sdp_main.c

stream

generic

private + pr_send???

Bluetooth

netgraph/bluetooth/socket/ng_btsocket.c

raw, stream

generic

generic + pr_send

the stream socket seems to be for accept(2) only

ToE, ToE6

dev/cxgbe/tom/t4_tom.c

stream

generic

generic

is a gross hack over TCP protosw, should be fine once TCP is done

unix(4)

kern/uipc_usrreq.c

stream, dgram

private

private

Netlink

netlink/netlink_domain.c

dgram

private

private

Networking/protosw (last edited 2026-02-17T00:35:04+0000 by glebius)