Add comment explaining about limit of 20 joined groups on a socket.
diff --git a/lib/sockopt.c b/lib/sockopt.c
index f136615..d755746 100644
--- a/lib/sockopt.c
+++ b/lib/sockopt.c
@@ -152,10 +152,17 @@
 #endif /* HAVE_IPV6 */
 
 
-/* Set up a multicast socket options for IPv4
-   This is here so that people only have to do their OS multicast mess 
-   in one place rather than all through zebra, ospfd, and ripd 
-   NB: This is a hookpoint for specific OS functionality */
+/*
+ * Process multicast socket options for IPv4 in an OS-dependent manner.
+ * Supported options are IP_MULTICAST_IF and IP_{ADD,DROP}_MEMBERSHIP.
+ *
+ * Many operating systems have a limit on the number of groups that
+ * can be joined per socket (where each group and local address
+ * counts).  This impacts OSPF, which joins groups on each interface
+ * using a single socket.  The limit is typically 20, derived from the
+ * original BSD multicast implementation.  Some systems have
+ * mechanisms for increasing this limit.
+ */
 int
 setsockopt_multicast_ipv4(int sock, 
 			int optname, 
@@ -200,7 +207,7 @@
   /* Add your favourite OS here! */
 
 #else /* #if OS_TYPE */ 
-  /* default OS support */
+  /* standard BSD API */
 
   struct in_addr m;
   struct ip_mreq mreq;