[SRU][F:linux-bluefield][PATCH v2 2/5] Revert "UBUNTU: SAUCE: netfilter: flowtable: Control flow timeout interval"
Bodong Wang
bodong at nvidia.com
Wed Jul 7 15:12:55 UTC 2021
From: Oz Shlomo <ozsh at nvidia.com>
BugLink: https://launchpad.net/bugs/1934401
This reverts commit ceec84149d95890b4a78039437b6832e6c345bba.
Replaced with upstream series:
https://lore.kernel.org/netdev/20210609214523.1678-1-pablo@netfilter.org/
Signed-off-by: Oz Shlomo <ozsh at nvidia.com>
Signed-off-by: Bodong Wang <bodong at nvidia.com>
---
include/net/netfilter/nf_flow_table.h | 8 +-------
net/netfilter/nf_flow_table_core.c | 10 ++--------
net/netfilter/nf_flow_table_offload.c | 5 ++---
3 files changed, 5 insertions(+), 18 deletions(-)
diff --git a/include/net/netfilter/nf_flow_table.h b/include/net/netfilter/nf_flow_table.h
index ba3b58a..acd8507 100644
--- a/include/net/netfilter/nf_flow_table.h
+++ b/include/net/netfilter/nf_flow_table.h
@@ -74,7 +74,6 @@ struct nf_flowtable {
unsigned int flags;
struct flow_block flow_block;
struct rw_semaphore flow_block_lock; /* Guards flow_block */
- u32 flow_timeout;
possible_net_t net;
};
@@ -143,7 +142,7 @@ struct flow_offload {
struct rcu_head rcu_head;
};
-#define NF_DEFAULT_FLOW_TIMEOUT (30 * HZ)
+#define NF_FLOW_TIMEOUT (30 * HZ)
#define nf_flowtable_time_stamp (u32)jiffies
static inline __s32 nf_flow_timeout_delta(unsigned int timeout)
@@ -151,11 +150,6 @@ static inline __s32 nf_flow_timeout_delta(unsigned int timeout)
return (__s32)(timeout - nf_flowtable_time_stamp);
}
-static inline __s32 nf_flow_offload_timeout(struct nf_flowtable *flow_table)
-{
- return flow_table->flow_timeout;
-}
-
struct nf_flow_route {
struct {
struct dst_entry *dst;
diff --git a/net/netfilter/nf_flow_table_core.c b/net/netfilter/nf_flow_table_core.c
index 2405eac..080dfea 100644
--- a/net/netfilter/nf_flow_table_core.c
+++ b/net/netfilter/nf_flow_table_core.c
@@ -225,8 +225,7 @@ int flow_offload_add(struct nf_flowtable *flow_table, struct flow_offload *flow)
{
int err;
- flow->timeout = nf_flowtable_time_stamp +
- nf_flow_offload_timeout(flow_table);
+ flow->timeout = nf_flowtable_time_stamp + NF_FLOW_TIMEOUT;
err = rhashtable_insert_fast(&flow_table->rhashtable,
&flow->tuplehash[0].node,
@@ -258,8 +257,7 @@ int flow_offload_add(struct nf_flowtable *flow_table, struct flow_offload *flow)
void flow_offload_refresh(struct nf_flowtable *flow_table,
struct flow_offload *flow)
{
- flow->timeout = nf_flowtable_time_stamp +
- nf_flow_offload_timeout(flow_table);
+ flow->timeout = nf_flowtable_time_stamp + NF_FLOW_TIMEOUT;
if (likely(!nf_flowtable_hw_offload(flow_table)))
return;
@@ -511,10 +509,6 @@ int nf_flow_table_init(struct nf_flowtable *flowtable)
{
int err;
- flowtable->flow_timeout = flowtable->flow_timeout ?
- flowtable->flow_timeout * HZ :
- NF_DEFAULT_FLOW_TIMEOUT;
-
INIT_DEFERRABLE_WORK(&flowtable->gc_work, nf_flow_offload_work_gc);
flow_block_init(&flowtable->flow_block);
init_rwsem(&flowtable->flow_block_lock);
diff --git a/net/netfilter/nf_flow_table_offload.c b/net/netfilter/nf_flow_table_offload.c
index ad705ca..afc6cd1 100644
--- a/net/netfilter/nf_flow_table_offload.c
+++ b/net/netfilter/nf_flow_table_offload.c
@@ -786,7 +786,6 @@ static void flow_offload_tuple_stats(struct flow_offload_work *offload,
static void flow_offload_work_stats(struct flow_offload_work *offload)
{
- u64 flow_timeout = nf_flow_offload_timeout(offload->flowtable);
struct flow_stats stats[FLOW_OFFLOAD_DIR_MAX] = {};
u64 lastused;
@@ -795,7 +794,7 @@ static void flow_offload_work_stats(struct flow_offload_work *offload)
lastused = max_t(u64, stats[0].lastused, stats[1].lastused);
offload->flow->timeout = max_t(u64, offload->flow->timeout,
- lastused + flow_timeout);
+ lastused + NF_FLOW_TIMEOUT);
/* Clear HW_OFFLOAD right away when hw module is removed. */
if (!lastused)
clear_bit(IPS_HW_OFFLOAD_BIT, &offload->flow->ct->status);
@@ -897,7 +896,7 @@ void nf_flow_offload_stats(struct nf_flowtable *flowtable,
__s32 delta;
delta = nf_flow_timeout_delta(flow->timeout);
- if ((delta >= (9 * nf_flow_offload_timeout(flowtable)) / 10))
+ if ((delta >= (9 * NF_FLOW_TIMEOUT) / 10))
return;
offload = nf_flow_offload_work_alloc(flowtable, flow, FLOW_CLS_STATS);
--
1.8.3.1
More information about the kernel-team
mailing list