code: func (s *Stack) RegisterRawTransportEndpoint(nicID tcpip.NICID, netProto tcpip.NetworkProtocolNumber, transProto tcpip.TransportProtocolNumber, ep RawTransportEndpoint) *tcpip.Error {
  	if nicID == 0 {
  		return s.demux.registerRawEndpoint(netProto, transProto, ep)
  	}
  
  	s.mu.RLock()
  	defer s.mu.RUnlock()
  
  	nic := s.nics[nicID]
  	if nic == nil {
  		return tcpip.ErrUnknownNICID
  	}
  
  	return nic.demux.registerRawEndpoint(netProto, transProto, ep)
  }
docs: // RegisterRawTransportEndpoint registers the given endpoint with the stack
  // transport dispatcher. Received packets that match the provided transport
  // protocol will be delivered to the given endpoint.