Module Name: src Committed By: yamaguchi Date: Wed May 19 03:44:46 UTC 2021
Modified Files: src/sys/conf: files src/sys/net: if_pppoe.c Log Message: Added a kernel option to change the number of processing packets at one pppoeintr() To generate a diff of this commit: cvs rdiff -u -r1.1283 -r1.1284 src/sys/conf/files cvs rdiff -u -r1.175 -r1.176 src/sys/net/if_pppoe.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/conf/files diff -u src/sys/conf/files:1.1283 src/sys/conf/files:1.1284 --- src/sys/conf/files:1.1283 Mon May 17 04:07:43 2021 +++ src/sys/conf/files Wed May 19 03:44:46 2021 @@ -1,4 +1,4 @@ -# $NetBSD: files,v 1.1283 2021/05/17 04:07:43 yamaguchi Exp $ +# $NetBSD: files,v 1.1284 2021/05/19 03:44:46 yamaguchi Exp $ # @(#)files.newconf 7.5 (Berkeley) 5/10/93 version 20171118 @@ -289,6 +289,7 @@ defflag opt_ppp.h PPP_DEFLATE PPP_BSDCO # compression, enable pppd # packet filtering support defflag opt_pppoe.h PPPOE_SERVER PPPOE_DEBUG +defparam opt_pppoe.h PPPOE_DEQUEUE_MAXLEN defparam opt_sppp.h SPPP_KEEPALIVE_INTERVAL SPPP_NORECV_TIME Index: src/sys/net/if_pppoe.c diff -u src/sys/net/if_pppoe.c:1.175 src/sys/net/if_pppoe.c:1.176 --- src/sys/net/if_pppoe.c:1.175 Wed May 19 03:35:27 2021 +++ src/sys/net/if_pppoe.c Wed May 19 03:44:46 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: if_pppoe.c,v 1.175 2021/05/19 03:35:27 yamaguchi Exp $ */ +/* $NetBSD: if_pppoe.c,v 1.176 2021/05/19 03:44:46 yamaguchi Exp $ */ /* * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_pppoe.c,v 1.175 2021/05/19 03:35:27 yamaguchi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_pppoe.c,v 1.176 2021/05/19 03:44:46 yamaguchi Exp $"); #ifdef _KERNEL_OPT #include "pppoe.h" @@ -76,6 +76,10 @@ __KERNEL_RCSID(0, "$NetBSD: if_pppoe.c,v #define PPPOE_MPSAFE 1 #endif +#ifndef PPPOE_DEQUEUE_MAXLEN +#define PPPOE_DEQUEUE_MAXLEN IFQ_MAXLEN +#endif + struct pppoehdr { uint8_t vertype; uint8_t code; @@ -598,7 +602,7 @@ pppoeintr(void) SOFTNET_LOCK_UNLESS_NET_MPSAFE(); - for (i = 0; i < IFQ_MAXLEN; i++) { + for (i = 0; i < PPPOE_DEQUEUE_MAXLEN; i++) { IFQ_LOCK(&ppoediscinq); IF_DEQUEUE(&ppoediscinq, m); IFQ_UNLOCK(&ppoediscinq); @@ -607,7 +611,7 @@ pppoeintr(void) pppoe_disc_input(m); } - for (i = 0; i < IFQ_MAXLEN; i++) { + for (i = 0; i < PPPOE_DEQUEUE_MAXLEN; i++) { IFQ_LOCK(&ppoeinq); IF_DEQUEUE(&ppoeinq, m); IFQ_UNLOCK(&ppoeinq); @@ -616,6 +620,11 @@ pppoeintr(void) pppoe_data_input(m); } +#if PPPOE_DEQUEUE_MAXLEN < IFQ_MAXLEN + if (!IF_IS_EMPTY(&ppoediscinq) || !IF_IS_EMPTY(&ppoeinq)) + softint_schedule(pppoe_softintr); +#endif + SOFTNET_UNLOCK_UNLESS_NET_MPSAFE(); }