diff --git a/src/syscall/types_freebsd.go b/src/syscall/types_freebsd.go
index d7dd70e8cd2ee7a2e855ea17d079da1b5cd5615b..278475ac24c91318f030c4db6a2061f0ead6d92a 100644
--- a/src/syscall/types_freebsd.go
+++ b/src/syscall/types_freebsd.go
@@ -56,6 +56,7 @@ union sockaddr_all {
 	struct sockaddr_in6 s3;
 	struct sockaddr_un s4;
 	struct sockaddr_dl s5;
+	struct sockaddr_nl s6; // check of necessary here
 };
 
 struct sockaddr_any {
@@ -199,6 +200,8 @@ type RawSockaddr C.struct_sockaddr
 
 type RawSockaddrAny C.struct_sockaddr_any
 
+type RawSockaddrNetlink C.struct_sockaddr_nl
+
 type _Socklen C.socklen_t
 
 type Linger C.struct_linger
@@ -227,6 +230,7 @@ const (
 	SizeofSockaddrAny      = C.sizeof_struct_sockaddr_any
 	SizeofSockaddrUnix     = C.sizeof_struct_sockaddr_un
 	SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
+	SizeofSockaddrNetlink   = C.sizeof_struct_sockaddr_nl
 	SizeofLinger           = C.sizeof_struct_linger
 	SizeofIPMreq           = C.sizeof_struct_ip_mreq
 	SizeofIPMreqn          = C.sizeof_struct_ip_mreqn
diff --git a/src/syscall/ztypes_freebsd_amd64.go b/src/syscall/ztypes_freebsd_amd64.go
index 7f1fcdb7cd77810febb668d12ccd732749fb2d88..105a73d2ed9d6abf49716be973cc13f711c21bbf 100644
--- a/src/syscall/ztypes_freebsd_amd64.go
+++ b/src/syscall/ztypes_freebsd_amd64.go
@@ -201,6 +201,14 @@ type RawSockaddrAny struct {
 	Pad  [92]int8
 }
 
+type RawSockaddrNetlink struct {
+	Len    uint8
+	Family uint8
+	Pad    uint16
+	Pid    uint32
+	Groups uint32
+}
+
 type _Socklen uint32
 
 type Linger struct {
@@ -265,6 +273,7 @@ const (
 	SizeofSockaddrAny      = 0x6c
 	SizeofSockaddrUnix     = 0x6a
 	SizeofSockaddrDatalink = 0x36
+	SizeofSockaddrNetlink  = 0xc
 	SizeofLinger           = 0x8
 	SizeofIPMreq           = 0x8
 	SizeofIPMreqn          = 0xc