code: func (r *Request) Size() int {
  	if r.size != 0 {
  		return r.size
  	}
  
  	size := 0
  	if o := r.Req.IsEdns0(); o != nil {
  		if o.Do() {
  			r.do = doTrue
  		} else {
  			r.do = doFalse
  		}
  		size = int(o.UDPSize())
  	}
  	// TODO(miek) move edns.Size to dnsutil?
  	size = edns.Size(r.Proto(), size)
  	r.size = size
  	return size
  }
docs: // Size returns if buffer size *advertised* in the requests OPT record.
  // Or when the request was over TCP, we return the maximum allowed size of 64K.