bpo-43571: Add IPPROTO_MPTCP macro (GH-24946)

Add IPPROTO_MPTCP constant when defined in the system headers.
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index 2255b82..31d804c 100755
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -610,6 +610,9 @@
    .. versionchanged:: 3.9
        The CAN_J1939 protocol was added.
 
+   .. versionchanged:: 3.10
+       The IPPROTO_MPTCP protocol was added.
+
 .. function:: socketpair([family[, type[, proto]]])
 
    Build a pair of connected socket objects using the given address family, socket
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index 51b3331..b5e4252 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -800,6 +800,9 @@
 The exception :exc:`socket.timeout` is now an alias of :exc:`TimeoutError`.
 (Contributed by Christian Heimes in :issue:`42413`.)
 
+Added option to create MPTCP sockets with ``IPPROTO_MPTCP``
+(Contributed by Rui Cunha in :issue:`43571`.)
+
 sys
 ---
 
diff --git a/Misc/NEWS.d/next/Library/2021-03-20-17-40-35.bpo-43571.acAL0W.rst b/Misc/NEWS.d/next/Library/2021-03-20-17-40-35.bpo-43571.acAL0W.rst
new file mode 100644
index 0000000..56714dc
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-03-20-17-40-35.bpo-43571.acAL0W.rst
@@ -0,0 +1 @@
+It's now possible to create MPTCP sockets with IPPROTO_MPTCP
\ No newline at end of file
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 0f56d94..23aab59 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -7927,6 +7927,9 @@ PyInit__socket(void)
 #ifdef  IPPROTO_BIP
     PyModule_AddIntMacro(m, IPPROTO_BIP);
 #endif
+#ifdef  IPPROTO_MPTCP
+    PyModule_AddIntMacro(m, IPPROTO_MPTCP);
+#endif
 /**/
 #ifdef  IPPROTO_RAW
     PyModule_AddIntMacro(m, IPPROTO_RAW);