code: func (oro *OptionRequestOption) UnmarshalBinary(p []byte) error {
  	b := buffer.New(p)
  	// Length must be divisible by 2.
  	if b.Len()%2 != 0 {
  		return io.ErrUnexpectedEOF
  	}
  
  	// Fill slice by parsing every two bytes using index i.
  	*oro = make(OptionRequestOption, 0, b.Len()/2)
  	for b.Len() > 1 {
  		*oro = append(*oro, dhcp6.OptionCode(b.Read16()))
  	}
  	return nil
  }
docs: // UnmarshalBinary unmarshals a raw byte slice into a OptionRequestOption.
  //
  // If the length of byte slice is not be be divisible by 2,
  // errInvalidOptionRequest is returned.