Fix issue #17996: expose socket.AF_LINK constant on BSD and OSX.
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index aa59f7f..edd196a 100644
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -293,6 +293,11 @@
TIPC related constants, matching the ones exported by the C socket API. See
the TIPC documentation for more information.
+.. data:: AF_LINK
+
+ Availability: BSD, OSX.
+
+ .. versionadded:: 3.4
.. data:: has_ipv6
diff --git a/Misc/NEWS b/Misc/NEWS
index 2027e65..a025c70 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -99,6 +99,8 @@
Library
-------
+- Issue #17996: socket module now exposes AF_LINK constant on BSD and OSX.
+
- Issue #17900: Allowed pickling of recursive OrderedDicts. Decreased pickled
size and pickling time.
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 20db3d9..fa75a10 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -5658,6 +5658,9 @@
/* Alias to emulate 4.4BSD */
PyModule_AddIntMacro(m, AF_ROUTE);
#endif
+#ifdef AF_LINK
+ PyModule_AddIntMacro(m, AF_LINK);
+#endif
#ifdef AF_ASH
/* Ash */
PyModule_AddIntMacro(m, AF_ASH);