Bläddra i källkod

unix: implement AF_TIPC sockets on Linux

Adds initial constants and types to use with SockaddrTIPC. For more
information on TIPC, see: http://tipc.sourceforge.net/.

Because the C struct sockaddr_tipc makes use of a union for its addr
field, I have created a wrapping layer in SockaddrTIPC that uses
an interface to determine which variant is in use.

Tests accompany this change due to the complexity of this code. There
is currently little test coverage in the Sockaddr-related code, but
perhaps this is something that could be picked up as a relatively
straightforward task for a new contributor.

Change-Id: I5033a0685cb7128d4b1a23d18aca71c202d0c0aa
Reviewed-on: https://go-review.googlesource.com/c/sys/+/187960
Run-TryBot: Matt Layher <mdlayher@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Matt Layher 6 år sedan
förälder
incheckning
43c01164e9

+ 37 - 0
unix/linux/types.go

@@ -107,6 +107,7 @@ struct termios2 {
 #include <linux/if_xdp.h>
 #include <linux/ncsi.h>
 #include <linux/cryptouser.h>
+#include <linux/tipc.h>
 
 // abi/abi.h generated by mkall.go.
 #include "abi/abi.h"
@@ -357,6 +358,16 @@ struct my_blkpg_partition {
 	unsigned char volname[BLKPG_VOLNAMELTH];
 };
 
+// tipc_service_name is a copied and slightly modified form of the "name"
+// variant in sockaddr_tipc's union in tipc.h, so it can be exported as part of
+// SockaddrTIPC's API.
+struct tipc_service_name {
+	// From tipc_service_addr.
+	__u32 type;
+	__u32 instance;
+	// From the union.
+	__u32 domain;
+};
 */
 import "C"
 
@@ -465,6 +476,8 @@ type RawSockaddrXDP C.struct_sockaddr_xdp
 
 type RawSockaddrPPPoX [C.sizeof_struct_sockaddr_pppox]byte
 
+type RawSockaddrTIPC C.struct_sockaddr_tipc
+
 type RawSockaddr C.struct_sockaddr
 
 type RawSockaddrAny C.struct_sockaddr_any
@@ -516,6 +529,7 @@ const (
 	SizeofSockaddrVM        = C.sizeof_struct_sockaddr_vm
 	SizeofSockaddrXDP       = C.sizeof_struct_sockaddr_xdp
 	SizeofSockaddrPPPoX     = C.sizeof_struct_sockaddr_pppox
+	SizeofSockaddrTIPC      = C.sizeof_struct_sockaddr_tipc
 	SizeofLinger            = C.sizeof_struct_linger
 	SizeofIovec             = C.sizeof_struct_iovec
 	SizeofIPMreq            = C.sizeof_struct_ip_mreq
@@ -2017,3 +2031,26 @@ const (
 
 type LoopInfo C.struct_loop_info
 type LoopInfo64 C.struct_loop_info64
+
+// AF_TIPC
+
+type TIPCSocketAddr C.struct_tipc_socket_addr
+
+type TIPCServiceRange C.struct_tipc_service_range
+
+type TIPCServiceName C.struct_tipc_service_name
+
+type TIPCSubscr C.struct_tipc_subscr
+
+type TIPCEvent C.struct_tipc_event
+
+type TIPCGroupReq C.struct_tipc_group_req
+
+type TIPCSIOCLNReq C.struct_tipc_sioc_ln_req
+
+type TIPCSIOCNodeIDReq C.struct_tipc_sioc_nodeid_req
+
+const (
+	TIPC_CLUSTER_SCOPE = C.TIPC_CLUSTER_SCOPE
+	TIPC_NODE_SCOPE    = C.TIPC_NODE_SCOPE
+)

+ 2 - 0
unix/mkerrors.sh

@@ -227,6 +227,7 @@ struct ltchars {
 #include <linux/rtc.h>
 #include <linux/if_xdp.h>
 #include <linux/cryptouser.h>
+#include <linux/tipc.h>
 #include <mtd/ubi-user.h>
 #include <net/route.h>
 
@@ -508,6 +509,7 @@ ccflags="$@"
 		$2 ~ /^XDP_/ ||
 		$2 ~ /^(HDIO|WIN|SMART)_/ ||
 		$2 ~ /^CRYPTO_/ ||
+		$2 ~ /^TIPC_/ ||
 		$2 !~ "WMESGLEN" &&
 		$2 ~ /^W[A-Z0-9]+$/ ||
 		$2 ~/^PPPIOC/ ||

+ 216 - 0
unix/syscall_internal_linux_test.go

@@ -0,0 +1,216 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+
+package unix
+
+import (
+	"reflect"
+	"testing"
+	"unsafe"
+)
+
+func Test_anyToSockaddr(t *testing.T) {
+	tests := []struct {
+		name string
+		rsa  *RawSockaddrAny
+		sa   Sockaddr
+		err  error
+	}{
+		{
+			name: "AF_TIPC bad addrtype",
+			rsa: &RawSockaddrAny{
+				Addr: RawSockaddr{
+					Family: AF_TIPC,
+				},
+			},
+			err: EINVAL,
+		},
+		{
+			name: "AF_TIPC NameSeq",
+			rsa: (*RawSockaddrAny)(unsafe.Pointer(&RawSockaddrTIPC{
+				Family:   AF_TIPC,
+				Addrtype: TIPC_SERVICE_RANGE,
+				Scope:    1,
+				Addr: (&TIPCServiceRange{
+					Type:  1,
+					Lower: 2,
+					Upper: 3,
+				}).tipcAddr(),
+			})),
+			sa: &SockaddrTIPC{
+				Scope: 1,
+				Addr: &TIPCServiceRange{
+					Type:  1,
+					Lower: 2,
+					Upper: 3,
+				},
+			},
+		},
+		{
+			name: "AF_TIPC Name",
+			rsa: (*RawSockaddrAny)(unsafe.Pointer(&RawSockaddrTIPC{
+				Family:   AF_TIPC,
+				Addrtype: TIPC_SERVICE_ADDR,
+				Scope:    2,
+				Addr: (&TIPCServiceName{
+					Type:     1,
+					Instance: 2,
+					Domain:   3,
+				}).tipcAddr(),
+			})),
+			sa: &SockaddrTIPC{
+				Scope: 2,
+				Addr: &TIPCServiceName{
+					Type:     1,
+					Instance: 2,
+					Domain:   3,
+				},
+			},
+		},
+		{
+			name: "AF_TIPC ID",
+			rsa: (*RawSockaddrAny)(unsafe.Pointer(&RawSockaddrTIPC{
+				Family:   AF_TIPC,
+				Addrtype: TIPC_SOCKET_ADDR,
+				Scope:    3,
+				Addr: (&TIPCSocketAddr{
+					Ref:  1,
+					Node: 2,
+				}).tipcAddr(),
+			})),
+			sa: &SockaddrTIPC{
+				Scope: 3,
+				Addr: &TIPCSocketAddr{
+					Ref:  1,
+					Node: 2,
+				},
+			},
+		},
+		{
+			name: "AF_MAX EAFNOSUPPORT",
+			rsa: &RawSockaddrAny{
+				Addr: RawSockaddr{
+					Family: AF_MAX,
+				},
+			},
+			err: EAFNOSUPPORT,
+		},
+		// TODO: expand to support other families.
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			// TODO: parameterize fd (and its setup) when needed.
+			sa, err := anyToSockaddr(0, tt.rsa)
+			if err != tt.err {
+				t.Fatalf("unexpected error: %v, want: %v", err, tt.err)
+			}
+
+			if !reflect.DeepEqual(sa, tt.sa) {
+				t.Fatalf("unexpected Sockaddr:\n got: %#v\nwant: %#v", sa, tt.sa)
+			}
+		})
+	}
+}
+
+func TestSockaddrTIPC_sockaddr(t *testing.T) {
+	tests := []struct {
+		name string
+		sa   *SockaddrTIPC
+		raw  *RawSockaddrTIPC
+		err  error
+	}{
+		{
+			name: "no fields set",
+			sa:   &SockaddrTIPC{},
+			err:  EINVAL,
+		},
+		{
+			name: "ID",
+			sa: &SockaddrTIPC{
+				Scope: 1,
+				Addr: &TIPCSocketAddr{
+					Ref:  1,
+					Node: 2,
+				},
+			},
+			raw: &RawSockaddrTIPC{
+				Family:   AF_TIPC,
+				Addrtype: TIPC_SOCKET_ADDR,
+				Scope:    1,
+				Addr: (&TIPCSocketAddr{
+					Ref:  1,
+					Node: 2,
+				}).tipcAddr(),
+			},
+		},
+		{
+			name: "NameSeq",
+			sa: &SockaddrTIPC{
+				Scope: 2,
+				Addr: &TIPCServiceRange{
+					Type:  1,
+					Lower: 2,
+					Upper: 3,
+				},
+			},
+			raw: &RawSockaddrTIPC{
+				Family:   AF_TIPC,
+				Addrtype: TIPC_SERVICE_RANGE,
+				Scope:    2,
+				Addr: (&TIPCServiceRange{
+					Type:  1,
+					Lower: 2,
+					Upper: 3,
+				}).tipcAddr(),
+			},
+		},
+		{
+			name: "Name",
+			sa: &SockaddrTIPC{
+				Scope: 3,
+				Addr: &TIPCServiceName{
+					Type:     1,
+					Instance: 2,
+					Domain:   3,
+				},
+			},
+			raw: &RawSockaddrTIPC{
+				Family:   AF_TIPC,
+				Addrtype: TIPC_SERVICE_ADDR,
+				Scope:    3,
+				Addr: (&TIPCServiceName{
+					Type:     1,
+					Instance: 2,
+					Domain:   3,
+				}).tipcAddr(),
+			},
+		},
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			out, l, err := tt.sa.sockaddr()
+			if err != tt.err {
+				t.Fatalf("unexpected error: %v, want: %v", err, tt.err)
+			}
+
+			// Must be 0 on error or a fixed size otherwise.
+			if (tt.err != nil && l != 0) || (tt.raw != nil && l != SizeofSockaddrTIPC) {
+				t.Fatalf("unexpected Socklen: %d", l)
+			}
+			if out == nil {
+				// No pointer to cast, return early.
+				return
+			}
+
+			raw := (*RawSockaddrTIPC)(out)
+			if !reflect.DeepEqual(raw, tt.raw) {
+				t.Fatalf("unexpected RawSockaddrTIPC:\n got: %#v\nwant: %#v", raw, tt.raw)
+			}
+		})
+	}
+}

+ 85 - 0
unix/syscall_linux.go

@@ -775,6 +775,70 @@ func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) {
 	return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil
 }
 
+// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets.
+// For more information on TIPC, see: http://tipc.sourceforge.net/.
+type SockaddrTIPC struct {
+	// Scope is the publication scopes when binding service/service range.
+	// Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE.
+	Scope int
+
+	// Addr is the type of address used to manipulate a socket. Addr must be
+	// one of:
+	//  - *TIPCSocketAddr: "id" variant in the C addr union
+	//  - *TIPCServiceRange: "nameseq" variant in the C addr union
+	//  - *TIPCServiceName: "name" variant in the C addr union
+	//
+	// If nil, EINVAL will be returned when the structure is used.
+	Addr TIPCAddr
+
+	raw RawSockaddrTIPC
+}
+
+// TIPCAddr is implemented by types that can be used as an address for
+// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange,
+// and *TIPCServiceName.
+type TIPCAddr interface {
+	tipcAddrtype() uint8
+	tipcAddr() [12]byte
+}
+
+func (sa *TIPCSocketAddr) tipcAddr() [12]byte {
+	var out [12]byte
+	copy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:])
+	return out
+}
+
+func (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR }
+
+func (sa *TIPCServiceRange) tipcAddr() [12]byte {
+	var out [12]byte
+	copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:])
+	return out
+}
+
+func (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE }
+
+func (sa *TIPCServiceName) tipcAddr() [12]byte {
+	var out [12]byte
+	copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:])
+	return out
+}
+
+func (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR }
+
+func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) {
+	if sa.Addr == nil {
+		return nil, 0, EINVAL
+	}
+
+	sa.raw.Family = AF_TIPC
+	sa.raw.Scope = int8(sa.Scope)
+	sa.raw.Addrtype = sa.Addr.tipcAddrtype()
+	sa.raw.Addr = sa.Addr.tipcAddr()
+
+	return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil
+}
+
 func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
 	switch rsa.Addr.Family {
 	case AF_NETLINK:
@@ -900,6 +964,27 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
 				break
 			}
 		}
+		return sa, nil
+	case AF_TIPC:
+		pp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa))
+
+		sa := &SockaddrTIPC{
+			Scope: int(pp.Scope),
+		}
+
+		// Determine which union variant is present in pp.Addr by checking
+		// pp.Addrtype.
+		switch pp.Addrtype {
+		case TIPC_SERVICE_RANGE:
+			sa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr))
+		case TIPC_SERVICE_ADDR:
+			sa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr))
+		case TIPC_SOCKET_ADDR:
+			sa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr))
+		default:
+			return nil, EINVAL
+		}
+
 		return sa, nil
 	}
 	return nil, EAFNOSUPPORT

+ 67 - 0
unix/zerrors_linux_386.go

@@ -2000,6 +2000,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2438,6 +2440,71 @@ const (
 	TIOCSTI                              = 0x5412
 	TIOCSWINSZ                           = 0x5414
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x100
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_amd64.go

@@ -2001,6 +2001,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2439,6 +2441,71 @@ const (
 	TIOCSTI                              = 0x5412
 	TIOCSWINSZ                           = 0x5414
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x100
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_arm.go

@@ -2007,6 +2007,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2445,6 +2447,71 @@ const (
 	TIOCSTI                              = 0x5412
 	TIOCSWINSZ                           = 0x5414
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x100
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_arm64.go

@@ -1991,6 +1991,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2430,6 +2432,71 @@ const (
 	TIOCSTI                              = 0x5412
 	TIOCSWINSZ                           = 0x5414
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x100
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_mips.go

@@ -2000,6 +2000,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2440,6 +2442,71 @@ const (
 	TIOCSTI                              = 0x5472
 	TIOCSWINSZ                           = 0x80087467
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x8000
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_mips64.go

@@ -2000,6 +2000,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2440,6 +2442,71 @@ const (
 	TIOCSTI                              = 0x5472
 	TIOCSWINSZ                           = 0x80087467
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x8000
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_mips64le.go

@@ -2000,6 +2000,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2440,6 +2442,71 @@ const (
 	TIOCSTI                              = 0x5472
 	TIOCSWINSZ                           = 0x80087467
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x8000
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_mipsle.go

@@ -2000,6 +2000,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2440,6 +2442,71 @@ const (
 	TIOCSTI                              = 0x5472
 	TIOCSWINSZ                           = 0x80087467
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x8000
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_ppc64.go

@@ -2058,6 +2058,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2500,6 +2502,71 @@ const (
 	TIOCSTOP                             = 0x2000746f
 	TIOCSWINSZ                           = 0x80087467
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x400000
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_ppc64le.go

@@ -2058,6 +2058,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2500,6 +2502,71 @@ const (
 	TIOCSTOP                             = 0x2000746f
 	TIOCSWINSZ                           = 0x80087467
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x400000
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_riscv64.go

@@ -1988,6 +1988,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2426,6 +2428,71 @@ const (
 	TIOCSTI                              = 0x5412
 	TIOCSWINSZ                           = 0x5414
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x100
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_s390x.go

@@ -2061,6 +2061,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2499,6 +2501,71 @@ const (
 	TIOCSTI                              = 0x5412
 	TIOCSWINSZ                           = 0x5414
 	TIOCVHANGUP                          = 0x5437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x100
 	TPACKET_ALIGNMENT                    = 0x10

+ 67 - 0
unix/zerrors_linux_sparc64.go

@@ -2053,6 +2053,8 @@ const (
 	SIOCDRARP                            = 0x8960
 	SIOCETHTOOL                          = 0x8946
 	SIOCGARP                             = 0x8954
+	SIOCGETLINKNAME                      = 0x89e0
+	SIOCGETNODEID                        = 0x89e1
 	SIOCGHWTSTAMP                        = 0x89b1
 	SIOCGIFADDR                          = 0x8915
 	SIOCGIFBR                            = 0x8940
@@ -2488,6 +2490,71 @@ const (
 	TIOCSTOP                             = 0x2000746f
 	TIOCSWINSZ                           = 0x80087467
 	TIOCVHANGUP                          = 0x20005437
+	TIPC_ADDR_ID                         = 0x3
+	TIPC_ADDR_MCAST                      = 0x1
+	TIPC_ADDR_NAME                       = 0x2
+	TIPC_ADDR_NAMESEQ                    = 0x1
+	TIPC_CFG_SRV                         = 0x0
+	TIPC_CLUSTER_BITS                    = 0xc
+	TIPC_CLUSTER_MASK                    = 0xfff000
+	TIPC_CLUSTER_OFFSET                  = 0xc
+	TIPC_CLUSTER_SIZE                    = 0xfff
+	TIPC_CONN_SHUTDOWN                   = 0x5
+	TIPC_CONN_TIMEOUT                    = 0x82
+	TIPC_CRITICAL_IMPORTANCE             = 0x3
+	TIPC_DESTNAME                        = 0x3
+	TIPC_DEST_DROPPABLE                  = 0x81
+	TIPC_ERRINFO                         = 0x1
+	TIPC_ERR_NO_NAME                     = 0x1
+	TIPC_ERR_NO_NODE                     = 0x3
+	TIPC_ERR_NO_PORT                     = 0x2
+	TIPC_ERR_OVERLOAD                    = 0x4
+	TIPC_GROUP_JOIN                      = 0x87
+	TIPC_GROUP_LEAVE                     = 0x88
+	TIPC_GROUP_LOOPBACK                  = 0x1
+	TIPC_GROUP_MEMBER_EVTS               = 0x2
+	TIPC_HIGH_IMPORTANCE                 = 0x2
+	TIPC_IMPORTANCE                      = 0x7f
+	TIPC_LINK_STATE                      = 0x2
+	TIPC_LOW_IMPORTANCE                  = 0x0
+	TIPC_MAX_BEARER_NAME                 = 0x20
+	TIPC_MAX_IF_NAME                     = 0x10
+	TIPC_MAX_LINK_NAME                   = 0x44
+	TIPC_MAX_MEDIA_NAME                  = 0x10
+	TIPC_MAX_USER_MSG_SIZE               = 0x101d0
+	TIPC_MCAST_BROADCAST                 = 0x85
+	TIPC_MCAST_REPLICAST                 = 0x86
+	TIPC_MEDIUM_IMPORTANCE               = 0x1
+	TIPC_NODEID_LEN                      = 0x10
+	TIPC_NODE_BITS                       = 0xc
+	TIPC_NODE_MASK                       = 0xfff
+	TIPC_NODE_OFFSET                     = 0x0
+	TIPC_NODE_RECVQ_DEPTH                = 0x83
+	TIPC_NODE_SIZE                       = 0xfff
+	TIPC_NODE_STATE                      = 0x0
+	TIPC_OK                              = 0x0
+	TIPC_PUBLISHED                       = 0x1
+	TIPC_RESERVED_TYPES                  = 0x40
+	TIPC_RETDATA                         = 0x2
+	TIPC_SERVICE_ADDR                    = 0x2
+	TIPC_SERVICE_RANGE                   = 0x1
+	TIPC_SOCKET_ADDR                     = 0x3
+	TIPC_SOCK_RECVQ_DEPTH                = 0x84
+	TIPC_SOCK_RECVQ_USED                 = 0x89
+	TIPC_SRC_DROPPABLE                   = 0x80
+	TIPC_SUBSCR_TIMEOUT                  = 0x3
+	TIPC_SUB_CANCEL                      = 0x4
+	TIPC_SUB_PORTS                       = 0x1
+	TIPC_SUB_SERVICE                     = 0x2
+	TIPC_TOP_SRV                         = 0x1
+	TIPC_WAIT_FOREVER                    = -0x1
+	TIPC_WITHDRAWN                       = 0x2
+	TIPC_ZONE_BITS                       = 0x8
+	TIPC_ZONE_CLUSTER_MASK               = 0xfffff000
+	TIPC_ZONE_MASK                       = 0xff000000
+	TIPC_ZONE_OFFSET                     = 0x18
+	TIPC_ZONE_SCOPE                      = 0x1
+	TIPC_ZONE_SIZE                       = 0xff
 	TMPFS_MAGIC                          = 0x1021994
 	TOSTOP                               = 0x100
 	TPACKET_ALIGNMENT                    = 0x10

+ 63 - 0
unix/ztypes_linux_386.go

@@ -285,6 +285,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
@@ -425,6 +432,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x8
 	SizeofIPMreq            = 0x8
@@ -2521,3 +2529,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]int8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]int8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]int8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_amd64.go

@@ -285,6 +285,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
@@ -426,6 +433,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x10
 	SizeofIPMreq            = 0x8
@@ -2535,3 +2543,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]int8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]int8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]int8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_arm.go

@@ -289,6 +289,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]uint8
@@ -429,6 +436,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x8
 	SizeofIPMreq            = 0x8
@@ -2512,3 +2520,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]uint8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]uint8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]uint8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_arm64.go

@@ -286,6 +286,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
@@ -427,6 +434,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x10
 	SizeofIPMreq            = 0x8
@@ -2514,3 +2522,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]int8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]int8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]int8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_mips.go

@@ -288,6 +288,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
@@ -428,6 +435,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x8
 	SizeofIPMreq            = 0x8
@@ -2518,3 +2526,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]int8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]int8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]int8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_mips64.go

@@ -286,6 +286,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
@@ -427,6 +434,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x10
 	SizeofIPMreq            = 0x8
@@ -2516,3 +2524,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]int8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]int8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]int8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_mips64le.go

@@ -286,6 +286,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
@@ -427,6 +434,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x10
 	SizeofIPMreq            = 0x8
@@ -2516,3 +2524,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]int8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]int8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]int8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_mipsle.go

@@ -288,6 +288,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
@@ -428,6 +435,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x8
 	SizeofIPMreq            = 0x8
@@ -2518,3 +2526,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]int8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]int8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]int8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_ppc64.go

@@ -287,6 +287,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]uint8
@@ -428,6 +435,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x10
 	SizeofIPMreq            = 0x8
@@ -2524,3 +2532,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]uint8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]uint8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]uint8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_ppc64le.go

@@ -287,6 +287,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]uint8
@@ -428,6 +435,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x10
 	SizeofIPMreq            = 0x8
@@ -2524,3 +2532,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]uint8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]uint8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]uint8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_riscv64.go

@@ -286,6 +286,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]uint8
@@ -427,6 +434,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x10
 	SizeofIPMreq            = 0x8
@@ -2542,3 +2550,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]uint8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]uint8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]uint8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_s390x.go

@@ -285,6 +285,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
@@ -426,6 +433,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x10
 	SizeofIPMreq            = 0x8
@@ -2538,3 +2546,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]int8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]int8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]int8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)

+ 63 - 0
unix/ztypes_linux_sparc64.go

@@ -289,6 +289,13 @@ type RawSockaddrXDP struct {
 
 type RawSockaddrPPPoX [0x1e]byte
 
+type RawSockaddrTIPC struct {
+	Family   uint16
+	Addrtype uint8
+	Scope    int8
+	Addr     [12]byte
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
@@ -430,6 +437,7 @@ const (
 	SizeofSockaddrVM        = 0x10
 	SizeofSockaddrXDP       = 0x10
 	SizeofSockaddrPPPoX     = 0x1e
+	SizeofSockaddrTIPC      = 0x10
 	SizeofLinger            = 0x8
 	SizeofIovec             = 0x10
 	SizeofIPMreq            = 0x8
@@ -2519,3 +2527,58 @@ type LoopInfo64 struct {
 	Encrypt_key      [32]uint8
 	Init             [2]uint64
 }
+
+type TIPCSocketAddr struct {
+	Ref  uint32
+	Node uint32
+}
+
+type TIPCServiceRange struct {
+	Type  uint32
+	Lower uint32
+	Upper uint32
+}
+
+type TIPCServiceName struct {
+	Type     uint32
+	Instance uint32
+	Domain   uint32
+}
+
+type TIPCSubscr struct {
+	Seq     TIPCServiceRange
+	Timeout uint32
+	Filter  uint32
+	Handle  [8]int8
+}
+
+type TIPCEvent struct {
+	Event uint32
+	Lower uint32
+	Upper uint32
+	Port  TIPCSocketAddr
+	S     TIPCSubscr
+}
+
+type TIPCGroupReq struct {
+	Type     uint32
+	Instance uint32
+	Scope    uint32
+	Flags    uint32
+}
+
+type TIPCSIOCLNReq struct {
+	Peer     uint32
+	Id       uint32
+	Linkname [68]int8
+}
+
+type TIPCSIOCNodeIDReq struct {
+	Peer uint32
+	Id   [16]int8
+}
+
+const (
+	TIPC_CLUSTER_SCOPE = 0x2
+	TIPC_NODE_SCOPE    = 0x3
+)