[Babel-users] Bucket full, dropping packet

Juliusz Chroboczek jch at pps.univ-paris-diderot.fr
Thu Dec 10 11:06:12 UTC 2015


> netlink_read: recvmsg(): No buffer space available

Could you please test the attached patch and let me know if it fixes this
particular issue?  (Completely untested, sorry, no time right now.)

-- Juliusz
diff --git a/kernel_netlink.c b/kernel_netlink.c
index d32a5d8..b2683cb 100644
--- a/kernel_netlink.c
+++ b/kernel_netlink.c
@@ -232,6 +232,7 @@ static int
 netlink_socket(struct netlink *nl, uint32_t groups)
 {
     int rc;
+    int rcvsize = 256 * 1024;
 
     nl->sock = socket(PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
     if(nl->sock < 0)
@@ -252,6 +253,20 @@ netlink_socket(struct netlink *nl, uint32_t groups)
     if(rc < 0)
         goto fail;
 
+#ifdef SO_RCVBUFFORCE
+    rc = setsockopt(nl->sock, SOL_SOCKET, SO_RCVBUFFORCE,
+                    &rcvsize, sizeof(rcvsize));
+#else
+    rc = -1;
+#endif
+    if(rc < 0) {
+        rc = setsockopt(nl->sock, SOL_SOCKET, SO_RCVBUF,
+                        &rcvsize, sizeof(rcvsize));
+        if(rc < 0) {
+            perror("setsockopt(SO_RCVBUF)");
+        }
+    }
+
     rc = bind(nl->sock, (struct sockaddr *)&nl->sockaddr, nl->socklen);
     if(rc < 0)
         goto fail;



More information about the Babel-users mailing list