func (a Endpoint) LessThan(b Endpoint) bool {
	return a.typ < b.typ || (a.typ == b.typ && bytes.Compare(a.raw[:a.len], b.raw[:b.len]) < 0)
}
LessThan provides a stable ordering for all endpoints.  It sorts first based
on the EndpointType of an endpoint, then based on the raw bytes of that
endpoint.

For some endpoints, the actual comparison may not make sense, however this
ordering does provide useful information for most Endpoint types.
Ordering is based first on endpoint type, then on raw endpoint bytes.
Endpoint bytes are sorted lexicographically.
package gopacket
import (
	"bytes"
	"fmt"
	"strconv"
)
const MaxEndpointSize = 16
type Endpoint struct {
	typ EndpointType
	len int
	raw [MaxEndpointSize]byte
}
func (a Endpoint) EndpointType() EndpointType { return a.typ }
func (a Endpoint) Raw() []byte { return a.raw[:a.len] }