From 3f442273ce152c7b1b8c30d1b49a26efb2f65616 Mon Sep 17 00:00:00 2001 From: Dimitris Aragiorgis Date: Thu, 4 Oct 2012 16:33:47 +0300 Subject: [PATCH] process_pending(num) depending on nfqueue dhcp - process_pending(5000) rs - process_pending(10) ns - process_pending(10) Signed-off-by: Dimitris Aragiorgis --- nfdhcpd | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/nfdhcpd b/nfdhcpd index 79fa674..e1fda4f 100755 --- a/nfdhcpd +++ b/nfdhcpd @@ -376,14 +376,14 @@ class VMNetProxy(object): # pylint: disable=R0902 # NFQUEUE setup if dhcp_queue_num is not None: - self._setup_nfqueue(dhcp_queue_num, AF_INET, self.dhcp_response) + self._setup_nfqueue(dhcp_queue_num, AF_INET, self.dhcp_response, 5000) if rs_queue_num is not None: - self._setup_nfqueue(rs_queue_num, AF_INET6, self.rs_response) + self._setup_nfqueue(rs_queue_num, AF_INET6, self.rs_response, 10) self.ipv6_enabled = True if ns_queue_num is not None: - self._setup_nfqueue(ns_queue_num, AF_INET6, self.ns_response) + self._setup_nfqueue(ns_queue_num, AF_INET6, self.ns_response, 10) self.ipv6_enabled = True def _socket(self): @@ -413,7 +413,7 @@ class VMNetProxy(object): # pylint: disable=R0902 logging.info(" - Cleanup finished") - def _setup_nfqueue(self, queue_num, family, callback): + def _setup_nfqueue(self, queue_num, family, callback, pending): logging.info("Setting up NFQUEUE for queue %d, AF %s", queue_num, family) q = nfqueue.queue() @@ -422,7 +422,7 @@ class VMNetProxy(object): # pylint: disable=R0902 q.set_queue_maxlen(5000) # This is mandatory for the queue to operate q.set_mode(nfqueue.NFQNL_COPY_PACKET) - self.nfq[q.get_fd()] = q + self.nfq[q.get_fd()] = (q, pending) logging.debug(" - Successfully set up NFQUEUE %d", queue_num) def sendp(self, data, dev): @@ -898,7 +898,8 @@ class VMNetProxy(object): # pylint: disable=R0902 for fd in rlist: try: - cnt = self.nfq[fd].process_pending(10) + q, num = self.nfq[fd] + cnt = q.process_pending(num) logging.debug(" * Processed %d requests on NFQUEUE" " with fd %d", cnt, fd) except RuntimeError, e: -- 1.7.10.4