code: func (p *Prefix) MarshalBinary() ([]byte, error) {
  	ip := p.IP
  	if p.IP.To4() != nil {
  		ip = p.IP.To4()
  	}
  	var b [1 + net.IPv6len]byte
  	n := p.Len()
  	l := ((n + 8 - 1) &^ (8 - 1)) / 8
  	b[0] = byte(n)
  	l++
  	copy(b[1:l], ip)
  	return b[:l], nil
  }
docs: // MarshalBinary returns a BGP NLRI binary form of p.