type Connection … // Create and bind a new netlink socket. func newConnection() (*Connection, error) { … } func (c *Connection) Read(b []byte) (n int, err error) { … } func (c *Connection) Write(b []byte) (n int, err error) { … } func (c *Connection) Close() error { … } func (c *Connection) WriteMessage(msg syscall.NetlinkMessage) error { … } func (c *Connection) ReadMessage() (msg syscall.NetlinkMessage, err error) { … }