code: func (p *protocol) Option(option interface{}) *tcpip.Error {
  	switch v := option.(type) {
  	case *SACKEnabled:
  		p.mu.Lock()
  		*v = SACKEnabled(p.sackEnabled)
  		p.mu.Unlock()
  		return nil
  
  	case *SendBufferSizeOption:
  		p.mu.Lock()
  		*v = p.sendBufferSize
  		p.mu.Unlock()
  		return nil
  
  	case *ReceiveBufferSizeOption:
  		p.mu.Lock()
  		*v = p.recvBufferSize
  		p.mu.Unlock()
  		return nil
  	case *CongestionControlOption:
  		p.mu.Lock()
  		*v = CongestionControlOption(p.congestionControl)
  		p.mu.Unlock()
  		return nil
  	case *AvailableCongestionControlOption:
  		p.mu.Lock()
  		*v = AvailableCongestionControlOption(strings.Join(p.availableCongestionControl, " "))
  		p.mu.Unlock()
  		return nil
  	default:
  		return tcpip.ErrUnknownProtocolOption
  	}
  }
docs: // Option implements TransportProtocol.Option.