func (c *Conn) Receive() ([]Message, []netlink.Message, error) {
	msgs, err := c.c.Receive()
	if err != nil {
		return nil, nil, err
	}
	gmsgs, err := unpackMessages(msgs)
	if err != nil {
		return nil, nil, err
	}
	return gmsgs, msgs, nil
}
Receive receives one or more Messages from netlink.  The netlink.Messages
used to wrap each Message are available for later validation.
package genetlink
import (
	"syscall"
	"time"
	"github.com/mdlayher/netlink"
	"golang.org/x/net/bpf"
)
const Protocol = 0x10  
type Conn struct {
	c *netlink.Conn
}
func Dial(config *netlink.Config) (*Conn, error) {
	c, err := netlink.Dial(Protocol, config)
	if err != nil {
		return nil, err
	}
	return NewConn(c), nil
}
func NewConn(c *netlink.Conn) *Conn {
	return &Conn{c: c}
}
func (c *Conn) Close() error {
	return c.c.Close()
}
func (c *Conn) GetFamily(name string) (Family, error) {
	return c.getFamily(name)
}
func (c *Conn) ListFamilies() ([]Family, error) {
	return c.listFamilies()
}
func (c *Conn) JoinGroup(group uint32) error {
	return c.c.JoinGroup(group)
}
func (c *Conn) LeaveGroup(group uint32) error {
	return c.c.LeaveGroup(group)
}
func (c *Conn) SetBPF(filter []bpf.RawInstruction) error {
	return c.c.SetBPF(filter)
}
func (c *Conn) RemoveBPF() error {
	return c.c.RemoveBPF()
}
func (c *Conn) SetOption(option netlink.ConnOption, enable bool) error {
	return c.c.SetOption(option, enable)
}
func (c *Conn) SetReadBuffer(bytes int) error {
	return c.c.SetReadBuffer(bytes)
}
func (c *Conn) SetWriteBuffer(bytes int) error {
	return c.c.SetWriteBuffer(bytes)
}
func (c *Conn) SyscallConn() (syscall.RawConn, error) {
	return c.c.SyscallConn()
}
func (c *Conn) SetDeadline(t time.Time) error {
	return c.c.SetDeadline(t)
}
func (c *Conn) SetReadDeadline(t time.Time) error {
	return c.c.SetReadDeadline(t)
}
func (c *Conn) SetWriteDeadline(t time.Time) error {
	return c.c.SetWriteDeadline(t)
}
func (c *Conn) Send(m Message, family uint16, flags netlink.HeaderFlags) (netlink.Message, error) {
	nm, err := packMessage(m, family, flags)
	if err != nil {
		return netlink.Message{}, err
	}
	reqnm, err := c.c.Send(nm)
	if err != nil {
		return netlink.Message{}, err
	}
	return reqnm, nil
}